client
Clone or download
Modified Files
--- 'a/src/main/java/com/stream_pi/client/connection/Client.java'
+++ b/src/main/java/com/stream_pi/client/connection/Client.java
@@ -64,7 +64,7 @@ public class Client extends Thread
logger = Logger.getLogger(Client.class.getName());
- new Thread(new Task<Void>() {
+ clientListener.getExecutor().submit(new Task<Void>() {
@Override
protected Void call()
{
@@ -107,7 +107,7 @@ public class Client extends Thread
}
return null;
}
- }).start();
+ });
}
public synchronized void exit()
--- 'a/src/main/java/com/stream_pi/client/controller/ClientListener.java'
+++ b/src/main/java/com/stream_pi/client/controller/ClientListener.java
@@ -10,6 +10,8 @@ import com.stream_pi.theme_api.Theme;
import com.stream_pi.theme_api.Themes;
import com.stream_pi.util.exception.SevereException;
+import java.util.concurrent.ExecutorService;
+
public interface ClientListener
{
void onActionFailed(String profileID, String actionID);
@@ -69,4 +71,6 @@ public interface ClientListener
void factoryReset();
void exitApp();
+
+ ExecutorService getExecutor();
}
--- 'a/src/main/java/com/stream_pi/client/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/client/controller/Controller.java
@@ -39,6 +39,8 @@ import javafx.stage.Screen;
import javafx.util.Duration;
import java.io.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.logging.Level;
@@ -268,6 +270,7 @@ public class Controller extends Base
@Override
public void exitApp()
{
+ getExecutor().shutdown();
if (ClientInfo.getInstance().getPlatform() == com.stream_pi.util.platform.Platform.ANDROID)
{
Services.get(LifecycleService.class).ifPresent(LifecycleService::shutdown);
--- 'a/src/main/java/com/stream_pi/client/window/Base.java'
+++ b/src/main/java/com/stream_pi/client/window/Base.java
@@ -8,6 +8,8 @@ import com.stream_pi.client.info.ClientI
import java.io.File;
import java.util.Objects;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.logging.Logger;
import com.stream_pi.client.Main;
@@ -36,7 +38,9 @@ import javafx.scene.text.Font;
import javafx.stage.Screen;
import javafx.stage.Stage;
-public abstract class Base extends StackPane implements ExceptionAndAlertHandler, ClientListener {
+public abstract class Base extends StackPane implements ExceptionAndAlertHandler, ClientListener
+{
+ private final ExecutorService executor = Executors.newCachedThreadPool();
private Config config;
@@ -226,6 +230,12 @@ public abstract class Base extends Stack
}
@Override
+ public ExecutorService getExecutor()
+ {
+ return executor;
+ }
+
+ @Override
public double getStageWidth()
{
if(getClientInfo().isPhone())