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 13aed917d..ecfed6238 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 @@ -69,7 +69,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override protected void initView() { mBinding.progressLayout.showProgress(); - Updater.get().start(this); + Updater.get().start(); Server.get().start(); setRecyclerView(); setViewModel(); @@ -299,7 +299,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen CollectActivity.start(this, event.getText(), true); break; case UPDATE: - Updater.get().force().branch(event.getText()).start(this); + Updater.get().force().branch(event.getText()).start(); break; case PUSH: if (ApiConfig.get().getSite("push_agent") == null) return; 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 bf626b0ff..ea2460429 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 @@ -68,7 +68,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show()); mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show()); mBinding.liveHistory.setOnClickListener(view -> HistoryDialog.create(this).type(1).show()); - mBinding.version.setOnClickListener(view -> Updater.get().reset().start(this)); + mBinding.version.setOnClickListener(view -> Updater.get().force().start()); mBinding.wallDefault.setOnClickListener(view -> setWallDefault()); mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh()); mBinding.quality.setOnClickListener(view -> setQuality()); diff --git a/app/src/main/java/com/fongmi/android/tv/api/Updater.java b/app/src/main/java/com/fongmi/android/tv/api/Updater.java index fd15ac95b..43b20cc40 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Updater.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Updater.java @@ -29,7 +29,6 @@ public class Updater implements Download.Callback { private DialogUpdateBinding binding; private AlertDialog dialog; private String branch; - private boolean force; private static class Loader { static volatile Updater INSTANCE = new Updater(); @@ -55,14 +54,9 @@ public class Updater implements Download.Callback { this.branch = Github.RELEASE; } - public Updater reset() { - Prefers.putUpdate(true); - return this; - } - public Updater force() { Notify.show(R.string.update_check); - this.force = true; + Prefers.putUpdate(true); return this; } @@ -71,21 +65,26 @@ public class Updater implements Download.Callback { return this; } - public void start(Activity activity) { - App.execute(() -> doInBackground(activity)); + private Updater check() { + dismiss(); + return this; + } + + public void start() { + App.execute(this::doInBackground); } private boolean need(int code, String name) { return (branch.equals(Github.DEV) ? !name.equals(BuildConfig.VERSION_NAME) : code > BuildConfig.VERSION_CODE) && Prefers.getUpdate(); } - private void doInBackground(Activity activity) { + private void doInBackground() { try { JSONObject object = new JSONObject(OkHttp.newCall(getJson()).execute().body().string()); String name = object.optString("name"); String desc = object.optString("desc"); int code = object.optInt("code"); - if (need(code, name) || force) App.post(() -> show(activity, name, desc)); + if (need(code, name)) App.post(() -> show(App.activity(), name, desc)); } catch (Exception e) { e.printStackTrace(); } @@ -97,20 +96,13 @@ public class Updater implements Download.Callback { binding.confirm.setOnClickListener(this::confirm); binding.cancel.setOnClickListener(this::cancel); binding.desc.setText(desc); - create(activity).show(); + check().create(activity).show(); } private AlertDialog create(Activity activity) { - if (dialog != null) dialog.dismiss(); return dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).setCancelable(false).create(); } - private void dismiss() { - if (dialog != null) dialog.dismiss(); - this.branch = Github.RELEASE; - this.force = false; - } - private void cancel(View view) { Prefers.putUpdate(false); dismiss(); @@ -121,6 +113,13 @@ public class Updater implements Download.Callback { Download.create(getApk(), getFile(), this).start(); } + private void dismiss() { + try { + if (dialog != null) dialog.dismiss(); + } catch (Exception ignored) { + } + } + @Override public void progress(int progress) { binding.confirm.setText(String.format(Locale.getDefault(), "%1$d%%", progress)); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index 4fa861a33..8c61d18e7 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -35,7 +35,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt @Override protected void initView() { - Updater.get().start(this); + Updater.get().start(); Server.get().start(); initFragment(); initConfig(); 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 6362f3ef4..205af1434 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 @@ -70,7 +70,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show()); mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show()); mBinding.liveHistory.setOnClickListener(view -> HistoryDialog.create(this).type(1).show()); - mBinding.version.setOnClickListener(view -> Updater.get().reset().start(getActivity())); + mBinding.version.setOnClickListener(view -> Updater.get().force().start()); mBinding.wallDefault.setOnClickListener(view -> setWallDefault()); mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh()); mBinding.quality.setOnClickListener(view -> setQuality());