From 13415d756644d957f89f2cbadc9d6f6e7c1a38a4 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 7 Sep 2022 11:10:49 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/CollectActivity.java | 17 +++++++++-------- .../android/tv/ui/activity/HomeActivity.java | 2 +- .../fongmi/android/tv/model/SiteViewModel.java | 12 ++++++------ .../com/fongmi/android/tv/utils/Updater.java | 5 ++++- 4 files changed, 20 insertions(+), 16 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 406b92732..8c0ac7f00 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 @@ -37,7 +37,7 @@ public class CollectActivity extends BaseActivity { private ActivityCollectBinding mBinding; private ArrayObjectAdapter mAdapter; - private ExecutorService mService; + private ExecutorService mExecutor; private SiteViewModel mViewModel; private PageAdapter mPageAdapter; private List mSites; @@ -61,6 +61,7 @@ public class CollectActivity extends BaseActivity { @Override protected void initView() { + mExecutor = Executors.newFixedThreadPool(5); setRecyclerView(); setViewModel(); setPager(); @@ -97,6 +98,7 @@ public class CollectActivity extends BaseActivity { private void setViewModel() { mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); mViewModel.result.observe(this, result -> { + if (mExecutor == null) return; mAdapter.add(Collect.create(result.getList())); getFragment().addVideo(result.getList()); mPageAdapter.notifyDataSetChanged(); @@ -119,9 +121,8 @@ public class CollectActivity extends BaseActivity { private void search() { mAdapter.add(Collect.all()); mPageAdapter.notifyDataSetChanged(); - mService = Executors.newFixedThreadPool(5); mBinding.result.setText(getString(R.string.collect_result, getKeyword())); - for (Site site : mSites) mService.execute(() -> mViewModel.searchContent(site, getKeyword())); + for (Site site : mSites) mExecutor.execute(() -> mViewModel.searchContent(site, getKeyword())); } private CollectFragment getFragment() { @@ -129,11 +130,11 @@ public class CollectActivity extends BaseActivity { } @Override - protected void onDestroy() { - super.onDestroy(); - if (mService == null) return; - mService.shutdownNow(); - mService = null; + public void onBackPressed() { + super.onBackPressed(); + if (mExecutor == null) return; + mExecutor.shutdownNow(); + mExecutor = null; } class PageAdapter extends FragmentStatePagerAdapter { 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 f8af6c615..4337641a8 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 @@ -64,7 +64,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen public static void start(Activity activity) { activity.startActivity(new Intent(activity, HomeActivity.class)); activity.finish(); - Updater.check(); } @Override @@ -78,6 +77,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen Clock.start(mBinding.time); Server.get().start(); Players.get().init(); + Updater.check(this); setRecyclerView(); setViewModel(); setAdapter(); 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 f97b50d6c..964638c4b 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 @@ -28,7 +28,7 @@ public class SiteViewModel extends ViewModel { public MutableLiveData result; public MutableLiveData player; - public ExecutorService service; + public ExecutorService executor; public SiteViewModel() { this.result = new MutableLiveData<>(); @@ -180,11 +180,11 @@ public class SiteViewModel extends ViewModel { } private void execute(MutableLiveData result, Callable callable) { - if (service != null) service.shutdownNow(); - service = Executors.newFixedThreadPool(2); - service.execute(() -> { + if (executor != null) executor.shutdownNow(); + executor = Executors.newFixedThreadPool(2); + executor.execute(() -> { try { - if (!Thread.interrupted()) result.postValue(service.submit(callable).get(15, TimeUnit.SECONDS)); + if (!Thread.interrupted()) result.postValue(executor.submit(callable).get(15, TimeUnit.SECONDS)); } catch (Throwable e) { e.printStackTrace(); if (e instanceof InterruptedException) return; @@ -195,6 +195,6 @@ public class SiteViewModel extends ViewModel { @Override protected void onCleared() { - if (service != null) service.shutdownNow(); + if (executor != null) executor.shutdownNow(); } } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Updater.java b/app/src/main/java/com/fongmi/android/tv/utils/Updater.java index 17125aa9c..9650a11b5 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Updater.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Updater.java @@ -1,5 +1,7 @@ package com.fongmi.android.tv.utils; +import android.app.Activity; + import com.fongmi.android.tv.BuildConfig; import com.fongmi.android.tv.net.OKHttp; @@ -12,7 +14,7 @@ public class Updater { private static final String URL = "https://github.com/FongMi/TV/raw/main/release/leanback.json"; private static final String PROXY = "https://ghproxy.com/"; - public static void check() { + public static void check(Activity activity) { new Thread(() -> new Updater().connect(URL, 0)).start(); } @@ -25,6 +27,7 @@ public class Updater { JSONObject object = new JSONObject(OKHttp.newCall(target).execute().body().string()); int version = object.optInt("version"); String url = object.optString("url"); + String desc = object.optString("desc"); if (retry > 0) url = PROXY + url; if (version <= BuildConfig.VERSION_CODE) FileUtil.clearDir(getApk()); else FileUtil.openFile(FileUtil.write(getApk(), OKHttp.newCall(url).execute().body().bytes()));