From b682e26d517e9bfa758f83fe22e051a8a16d9498 Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Thu, 28 Aug 2025 02:44:05 +0800 Subject: [PATCH] Clean --- .../android/tv/api/config/LiveConfig.java | 18 ++++++++----- .../android/tv/api/config/VodConfig.java | 26 ++++++++++++------- .../android/tv/api/config/WallConfig.java | 8 +++++- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java index 1f9730dc9..485ace800 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java @@ -32,15 +32,19 @@ import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class LiveConfig { + private Live home; + private Config config; private List lives; private List rules; private List ads; - private Config config; + private ExecutorService executor; + private boolean sync; - private Live home; private static class Loader { static volatile LiveConfig INSTANCE = new LiveConfig(); @@ -79,7 +83,7 @@ public class LiveConfig { } public static void load(Config config, Callback callback) { - get().clear().config(config).load(callback); + get().config(config).load(callback); } public LiveConfig init() { @@ -110,7 +114,9 @@ public class LiveConfig { } public void load(Callback callback) { - App.execute(() -> loadConfig(callback)); + if (executor != null) executor.shutdownNow(); + executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> loadConfig(callback)); } private void loadConfig(Callback callback) { @@ -154,7 +160,7 @@ public class LiveConfig { } else if (object.has("urls")) { parseDepot(object, callback); } else { - parseConfig(object, callback); + clear().parseConfig(object, callback); } } @@ -215,7 +221,7 @@ public class LiveConfig { } public void parse(JsonObject object) { - parseConfig(object, null); + clear().parseConfig(object, null); } public void setKeep(Channel channel) { diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index fe0d583fd..e0cae50ed 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -25,20 +25,24 @@ import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class VodConfig { + private Site home; + private String wall; + private Parse parse; + private Config config; private List doh; private List rules; private List sites; - private List parses; - private List flags; private List ads; + private List flags; + private List parses; + private ExecutorService executor; + private boolean loadLive; - private Config config; - private Parse parse; - private String wall; - private Site home; private static class Loader { static volatile VodConfig INSTANCE = new VodConfig(); @@ -69,7 +73,7 @@ public class VodConfig { } public static void load(Config config, Callback callback) { - get().clear().config(config).load(callback); + get().config(config).load(callback); } public VodConfig init() { @@ -108,7 +112,9 @@ public class VodConfig { } public void load(Callback callback) { - App.execute(() -> loadConfig(callback)); + if (executor != null) executor.shutdownNow(); + executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> loadConfig(callback)); } private void loadConfig(Callback callback) { @@ -132,7 +138,7 @@ public class VodConfig { } else if (object.has("urls")) { parseDepot(object, callback); } else { - parseConfig(object, callback); + clear().parseConfig(object, callback); } } @@ -187,7 +193,7 @@ public class VodConfig { private void initLive(JsonObject object) { Config temp = Config.find(config, 1).save(); boolean sync = LiveConfig.get().needSync(config.getUrl()); - if (sync) LiveConfig.get().clear().config(temp).parse(object); + if (sync) LiveConfig.get().config(temp).parse(object); } private void initParse(JsonObject object) { diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java index abfb397ad..bf0559cda 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java @@ -20,10 +20,14 @@ import com.github.catvod.utils.Path; import java.io.File; import java.io.FileOutputStream; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class WallConfig { private Config config; + private ExecutorService executor; + private boolean sync; private static class Loader { @@ -67,7 +71,9 @@ public class WallConfig { } public void load(Callback callback) { - App.execute(() -> loadConfig(callback)); + if (executor != null) executor.shutdownNow(); + executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> loadConfig(callback)); } private void loadConfig(Callback callback) {