diff --git a/app/libs/thunder-release.aar b/app/libs/thunder-release.aar index 2efdaa3fc..d38bb51c4 100644 Binary files a/app/libs/thunder-release.aar and b/app/libs/thunder-release.aar differ diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index c667233b1..77b619603 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -26,7 +26,6 @@ import com.fongmi.android.tv.impl.ConfigCallback; import com.fongmi.android.tv.impl.DohCallback; import com.fongmi.android.tv.impl.LiveCallback; import com.fongmi.android.tv.impl.SiteCallback; -import com.fongmi.android.tv.player.Source; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.ui.dialog.ConfigDialog; import com.fongmi.android.tv.ui.dialog.DohDialog; @@ -281,7 +280,6 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit @Override public void setDoh(Doh doh) { - Source.get().stop(); Notify.progress(this); OkHttp.get().setDoh(doh); Setting.putDoh(doh.toString()); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java index 5f30cc331..8fd5e3713 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java @@ -83,14 +83,14 @@ public class TVBus implements Source.Extractor, Listener { @Override public void exit() { - if (tvcore != null) tvcore.quit(); - tvcore = null; + if (tvcore != null) tvcore.stop(); + hls = null; } @Override public void onPrepared(String result) { JsonObject json = App.gson().fromJson(result, JsonObject.class); - if (json.get("hls") == null) return; + if (!json.has("hls")) return; hls = json.get("hls").getAsString(); latch.countDown(); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java index 28cdac666..b139e388f 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Thunder.java @@ -60,6 +60,7 @@ public class Thunder implements Source.Extractor { public void stop() { if (taskId == null) return; XLTaskHelper.get().deleteTask(taskId); + XLTaskHelper.get().release(); taskId = null; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index c02233bcd..3df2ba04f 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -30,7 +30,6 @@ import com.fongmi.android.tv.impl.Callback; import com.fongmi.android.tv.impl.ConfigCallback; import com.fongmi.android.tv.impl.LiveCallback; import com.fongmi.android.tv.impl.SiteCallback; -import com.fongmi.android.tv.player.Source; import com.fongmi.android.tv.ui.activity.HomeActivity; import com.fongmi.android.tv.ui.base.BaseFragment; import com.fongmi.android.tv.ui.dialog.ConfigDialog; @@ -293,7 +292,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit } private void setDoh(Doh doh) { - Source.get().stop(); OkHttp.get().setDoh(doh); Notify.progress(requireActivity()); Setting.putDoh(doh.toString()); diff --git a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java index 24031f088..3be64de46 100644 --- a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java +++ b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java @@ -46,6 +46,11 @@ public class XLTaskHelper { return taskId; } + private void deleteFile(File file) { + if (file.isDirectory()) for (File f : Path.list(file)) deleteFile(f); + if (file.isFile() && !file.getAbsolutePath().endsWith(".torrent")) Path.clear(file); + } + public synchronized GetTaskId parse(String url, File savePath) { if (url.startsWith("file://")) return new GetTaskId(url, savePath); if (url.startsWith("thunder://")) url = getManager().parserThunderUrl(url); @@ -131,13 +136,8 @@ public class XLTaskHelper { } public synchronized void deleteTask(GetTaskId taskId) { - new Thread(() -> deleteFile(taskId.getSavePath())).start(); stopTask(taskId); - } - - private synchronized void deleteFile(File file) { - if (file.isDirectory()) for (File f : Path.list(file)) deleteFile(f); - if (file.isFile() && !file.getAbsolutePath().endsWith(".torrent")) Path.clear(file); + deleteFile(taskId.getSavePath()); } public synchronized void stopTask(GetTaskId taskId) {