From 0132f246767f9ee8dd61092462ac164a0dbe09e8 Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Tue, 4 Nov 2025 01:36:10 +0800 Subject: [PATCH] Optimize server start --- .../fongmi/android/tv/ui/activity/HomeActivity.java | 1 - .../fongmi/android/tv/ui/activity/LiveActivity.java | 2 -- .../com/fongmi/android/tv/api/config/LiveConfig.java | 2 ++ .../com/fongmi/android/tv/api/config/VodConfig.java | 2 ++ .../main/java/com/fongmi/android/tv/server/Server.java | 10 +++++++--- .../fongmi/android/tv/ui/activity/HomeActivity.java | 1 - .../fongmi/android/tv/ui/activity/LiveActivity.java | 2 -- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 7fe3020d4..d716abd9e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -117,7 +117,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen mClock = Clock.create(mBinding.clock); mBinding.progressLayout.showProgress(); Updater.create().start(this); - Server.get().start(); setRecyclerView(); setViewModel(); setAdapter(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 5f7c556c6..6fe33d6e1 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -48,7 +48,6 @@ import com.fongmi.android.tv.model.LiveViewModel; import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.player.Source; import com.fongmi.android.tv.player.exo.ExoUtil; -import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.service.PlaybackService; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.ui.custom.CustomKeyDownLive; @@ -144,7 +143,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mR2 = this::setTraffic; mR3 = this::hideInfo; mR4 = this::hideUI; - Server.get().start(); setRecyclerView(); setVideoView(); setViewModel(); 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 12962fba5..0880176f4 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 @@ -18,6 +18,7 @@ import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.bean.Rule; import com.fongmi.android.tv.db.AppDatabase; import com.fongmi.android.tv.impl.Callback; +import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.activity.LiveActivity; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.UrlUtil; @@ -122,6 +123,7 @@ public class LiveConfig { private void loadConfig(Callback callback) { try { + Server.get().start(); String text = Decoder.getJson(UrlUtil.convert(config.getUrl())); if (!Json.isObj(text)) clear().parseText(text, callback); else checkJson(Json.parse(text).getAsJsonObject(), callback); 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 313ca81b4..75415e9b0 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 @@ -12,6 +12,7 @@ import com.fongmi.android.tv.bean.Parse; import com.fongmi.android.tv.bean.Rule; import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.impl.Callback; +import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.bean.Doh; @@ -123,6 +124,7 @@ public class VodConfig { private void loadConfig(Callback callback) { try { + Server.get().start(); String json = Decoder.getJson(UrlUtil.convert(config.getUrl())); JsonObject object = Json.parse(json).getAsJsonObject(); checkJson(object, callback); diff --git a/app/src/main/java/com/fongmi/android/tv/server/Server.java b/app/src/main/java/com/fongmi/android/tv/server/Server.java index 70e268bb5..8eb938488 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Server.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Server.java @@ -1,5 +1,6 @@ package com.fongmi.android.tv.server; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.player.Players; import com.github.catvod.Proxy; import com.github.catvod.utils.Util; @@ -41,7 +42,7 @@ public class Server { return "http://" + (local ? "127.0.0.1" : Util.getIp()) + ":" + Proxy.getPort(); } - public void start() { + public synchronized void start() { if (nano != null) return; for (int i = 9978; i < 9999; i++) { try { @@ -56,7 +57,10 @@ public class Server { } public void stop() { - if (nano != null) nano.stop(); - nano = null; + App.execute(() -> { + if (nano != null) nano.stop(); + player = null; + nano = null; + }); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 367861026..1a8dda68f 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -75,7 +75,6 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt orientation = getResources().getConfiguration().orientation; initFragment(savedInstanceState); Updater.create().start(this); - Server.get().start(); initConfig(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index f9db806bc..b1ecaa755 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -49,7 +49,6 @@ import com.fongmi.android.tv.model.LiveViewModel; import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.player.Source; import com.fongmi.android.tv.player.exo.ExoUtil; -import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.service.PlaybackService; import com.fongmi.android.tv.ui.adapter.ChannelAdapter; import com.fongmi.android.tv.ui.adapter.EpgDataAdapter; @@ -154,7 +153,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener mR2 = this::setTraffic; mR3 = this::hideInfo; mPiP = new PiP(); - Server.get().start(); setRecyclerView(); setVideoView(); setViewModel();