From fbcfd88e900589e7e52c3f7e33b810c1051a86a5 Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Fri, 31 Oct 2025 21:00:34 +0800 Subject: [PATCH] Clean code --- .../tv/ui/activity/CollectActivity.java | 20 +++++++++---------- .../android/tv/ui/activity/HomeActivity.java | 3 +-- .../android/tv/ui/activity/VideoActivity.java | 2 +- .../android/tv/model/SiteViewModel.java | 12 +++++------ .../android/tv/utils/PermissionUtil.java | 4 ---- .../android/tv/ui/activity/HomeActivity.java | 3 +-- .../android/tv/ui/activity/VideoActivity.java | 2 +- .../tv/ui/fragment/CollectFragment.java | 4 ++-- 8 files changed, 21 insertions(+), 29 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java index 18c6bfdf2..7946ccd71 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java @@ -105,12 +105,21 @@ public class CollectActivity extends BaseActivity { private void setViewModel() { mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); mViewModel.search.observe(this, result -> { + if (result.getList().isEmpty()) return; getFragment().addVideo(result.getList()); mAdapter.add(Collect.create(result.getList())); mBinding.pager.getAdapter().notifyDataSetChanged(); }); } + private void saveKeyword() { + List items = Setting.getKeyword().isEmpty() ? new ArrayList<>() : App.gson().fromJson(Setting.getKeyword(), new TypeToken>() {}.getType()); + items.remove(getKeyword()); + items.add(0, getKeyword()); + if (items.size() > 8) items.remove(8); + Setting.putKeyword(App.gson().toJson(items)); + } + private void setPager() { mBinding.pager.setAdapter(new PageAdapter(getSupportFragmentManager())); } @@ -130,15 +139,6 @@ public class CollectActivity extends BaseActivity { mViewModel.searchContent(sites, getKeyword(), false); } - private void saveKeyword() { - List items = Setting.getKeyword().isEmpty() ? new ArrayList<>() : App.gson().fromJson(Setting.getKeyword(), new TypeToken>() { - }.getType()); - items.remove(getKeyword()); - items.add(0, getKeyword()); - if (items.size() > 8) items.remove(8); - Setting.putKeyword(App.gson().toJson(items)); - } - private void onChildSelected(@Nullable RecyclerView.ViewHolder child) { if (mOldView != null) mOldView.setActivated(false); if (child == null) return; @@ -156,7 +156,7 @@ public class CollectActivity extends BaseActivity { @Override protected void onBackInvoked() { - mViewModel.cancelAll(); + mViewModel.stopSearch(); super.onBackInvoked(); } 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 8bfd3f14a..01bfa8192 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 @@ -60,7 +60,6 @@ import com.fongmi.android.tv.utils.FileChooser; import com.fongmi.android.tv.utils.ImgUtil; import com.fongmi.android.tv.utils.KeyUtil; import com.fongmi.android.tv.utils.Notify; -import com.fongmi.android.tv.utils.PermissionUtil; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; @@ -200,7 +199,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public void success() { - PermissionUtil.requestNotify(getActivity()); mBinding.progressLayout.showContent(); checkAction(getIntent()); getHistory(); @@ -213,6 +211,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public void error(String msg) { mBinding.progressLayout.showContent(); + checkAction(getIntent()); Notify.show(msg); setFocus(); setFunc(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 7a6a9687f..e34813bf4 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1407,7 +1407,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } else if (isFullscreen()) { exitFullscreen(); } else { - mViewModel.cancelAll(); + mViewModel.stopSearch(); super.onBackInvoked(); } } diff --git a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java index 6720971e1..8d23255ec 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java @@ -209,7 +209,7 @@ public class SiteViewModel extends ViewModel { } public void searchContent(List sites, String keyword, boolean quick) { - for (Future f : searchFutures) f.cancel(true); + stopSearch(); for (Site site : sites) searchContent(site, keyword, quick, "1"); } @@ -218,8 +218,7 @@ public class SiteViewModel extends ViewModel { if (!page.equals("1")) execute(result, callable); else searchFutures.add(App.submit(() -> { try { - Result taskResult = callable.call(); - if (!taskResult.getList().isEmpty()) search.postValue(taskResult); + search.postValue(callable.call()); } catch (Throwable ignored) { } })); @@ -277,9 +276,7 @@ public class SiteViewModel extends ViewModel { }); } - public void cancelAll() { - if (future != null) future.cancel(true); - if (executor != null) executor.shutdownNow(); + public void stopSearch() { for (Future f : searchFutures) f.cancel(true); searchFutures.clear(); } @@ -287,6 +284,7 @@ public class SiteViewModel extends ViewModel { @Override protected void onCleared() { super.onCleared(); - cancelAll(); + if (future != null) future.cancel(true); + if (executor != null) executor.shutdownNow(); } } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/PermissionUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/PermissionUtil.java index 52fb18679..5f73dc496 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/PermissionUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/PermissionUtil.java @@ -23,8 +23,4 @@ public class PermissionUtil { public static void requestFile(Fragment fragment, Consumer callback) { PermissionX.init(fragment).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request(new PermissionCallback(callback)); } - - public static void requestNotify(FragmentActivity activity) { - PermissionX.init(activity).permissions(PermissionX.permission.POST_NOTIFICATIONS).request(new PermissionCallback()); - } } 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 93ed2cb9b..a3350bcf0 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 @@ -39,7 +39,6 @@ import com.fongmi.android.tv.ui.fragment.SettingPlayerFragment; import com.fongmi.android.tv.ui.fragment.VodFragment; import com.fongmi.android.tv.utils.FileChooser; import com.fongmi.android.tv.utils.Notify; -import com.fongmi.android.tv.utils.PermissionUtil; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; import com.google.android.material.navigation.NavigationBarView; @@ -125,7 +124,6 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt @Override public void success() { - PermissionUtil.requestNotify(getActivity()); checkAction(getIntent()); RefreshEvent.config(); RefreshEvent.video(); @@ -133,6 +131,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt @Override public void error(String msg) { + checkAction(getIntent()); RefreshEvent.config(); StateEvent.empty(); Notify.show(msg); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 0b4f6f636..204541439 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1652,7 +1652,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } else if (isFullscreen() && !isLock()) { exitFullscreen(); } else if (!isLock()) { - mViewModel.cancelAll(); + mViewModel.stopSearch(); super.onBackInvoked(); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java index da4d46b31..9dd2e39f4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java @@ -125,7 +125,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle } private void setCollect(Result result) { - if (result == null) return; + if (result == null || result.getList().isEmpty()) return; if (mCollectAdapter.getPosition() == 0) mSearchAdapter.addAll(result.getList()); mCollectAdapter.add(Collect.create(result.getList())); mCollectAdapter.add(result.getList()); @@ -180,7 +180,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle @Override public void onDestroyView() { super.onDestroyView(); - mViewModel.cancelAll(); + mViewModel.stopSearch(); requireActivity().removeMenuProvider(this); } }