From: Debayan Sutradhar Date: Tue, 25 May 2021 21:25:57 +0530 Subject: Added inbuilt restart function to restart the app. --- Added inbuilt restart function to restart the app. --- --- 'a/src/main/java/com/stream_pi/server/connection/ServerListener.java' +++ b/src/main/java/com/stream_pi/server/connection/ServerListener.java @@ -17,6 +17,8 @@ public interface ServerListener void init(); + void restart(); + void othInit(); Stage getStage(); --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -238,13 +238,27 @@ public class Controller extends Base imp public void onQuitApp() { + stopServerAndAllConnections(); + executor.shutdown(); + getLogger().info("Shutting down ..."); + closeLogger(); + } + + private void stopServerAndAllConnections() + { if(mainServer!=null) mainServer.stopListeningForConnections(); ClientConnections.getInstance().disconnectAll(); - executor.shutdown(); - getLogger().info("Shutting down ..."); - closeLogger(); + } + + @Override + public void restart() + { + getLogger().info("Restarting ..."); + + stopServerAndAllConnections(); + Platform.runLater(this::init); } public void minimiseApp() throws MinorException --- 'a/src/main/java/com/stream_pi/server/window/Base.java' +++ b/src/main/java/com/stream_pi/server/window/Base.java @@ -105,6 +105,7 @@ public abstract class Base extends Stack { stage = (Stage) getScene().getWindow(); + getStage().getIcons().clear(); getStage().getIcons().add(new Image(Objects.requireNonNull(Main.class.getResourceAsStream("app_icon.png")))); getStage().setMinWidth(710); --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnSaveActionTask.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/OnSaveActionTask.java @@ -143,7 +143,9 @@ public class OnSaveActionTask extends Ta logger.info("isHideDEfaultIcon : "+isHideToggleOffIcon); logger.info("isHideDEfaultIcon : "+isHideToggleOnIcon); - if(action.getActionType() == ActionType.NORMAL) + if(action.getActionType() == ActionType.NORMAL || + action.getActionType() == ActionType.FOLDER || + action.getActionType() == ActionType.COMBINE) { if(isHideDefaultIcon) { --- 'a/src/main/java/com/stream_pi/server/window/settings/GeneralSettings.java' +++ b/src/main/java/com/stream_pi/server/window/settings/GeneralSettings.java @@ -7,6 +7,7 @@ import com.stream_pi.server.info.ServerI import com.stream_pi.theme_api.Themes; import com.stream_pi.util.alert.StreamPiAlert; +import com.stream_pi.util.alert.StreamPiAlertListener; import com.stream_pi.util.alert.StreamPiAlertType; import com.stream_pi.util.checkforupdates.CheckForUpdates; import com.stream_pi.util.checkforupdates.UpdateHyperlinkOnClick; @@ -373,7 +374,29 @@ public class GeneralSettings extends VBo if(toBeReloaded) { - new StreamPiAlert("Restart","Restart to see changes", StreamPiAlertType.INFORMATION).show(); + StreamPiAlert restartPrompt = new StreamPiAlert( + "Warning", + "Stream-Pi Server needs to be restarted for these changes to take effect. Restart?\n" + + "All your current connections will be disconnected.", + StreamPiAlertType.WARNING + ); + + String yesOption = "Yes"; + String noOption = "No"; + + restartPrompt.setButtons(yesOption, noOption); + + restartPrompt.setOnClicked(new StreamPiAlertListener() { + @Override + public void onClick(String s) { + if(s.equals(yesOption)) + { + serverListener.restart(); + } + } + }); + + restartPrompt.show(); } if(dashToBeReRendered)