Fix update crash

pull/123/head
FongMi 3 years ago
parent d198c346be
commit c1e46f0112
  1. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  3. 37
      app/src/main/java/com/fongmi/android/tv/api/Updater.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java

@ -69,7 +69,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override @Override
protected void initView() { protected void initView() {
mBinding.progressLayout.showProgress(); mBinding.progressLayout.showProgress();
Updater.get().start(this); Updater.get().start();
Server.get().start(); Server.get().start();
setRecyclerView(); setRecyclerView();
setViewModel(); setViewModel();
@ -299,7 +299,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
CollectActivity.start(this, event.getText(), true); CollectActivity.start(this, event.getText(), true);
break; break;
case UPDATE: case UPDATE:
Updater.get().force().branch(event.getText()).start(this); Updater.get().force().branch(event.getText()).start();
break; break;
case PUSH: case PUSH:
if (ApiConfig.get().getSite("push_agent") == null) return; if (ApiConfig.get().getSite("push_agent") == null) return;

@ -68,7 +68,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show()); mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show());
mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show()); mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show());
mBinding.liveHistory.setOnClickListener(view -> HistoryDialog.create(this).type(1).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.wallDefault.setOnClickListener(view -> setWallDefault());
mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh()); mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh());
mBinding.quality.setOnClickListener(view -> setQuality()); mBinding.quality.setOnClickListener(view -> setQuality());

@ -29,7 +29,6 @@ public class Updater implements Download.Callback {
private DialogUpdateBinding binding; private DialogUpdateBinding binding;
private AlertDialog dialog; private AlertDialog dialog;
private String branch; private String branch;
private boolean force;
private static class Loader { private static class Loader {
static volatile Updater INSTANCE = new Updater(); static volatile Updater INSTANCE = new Updater();
@ -55,14 +54,9 @@ public class Updater implements Download.Callback {
this.branch = Github.RELEASE; this.branch = Github.RELEASE;
} }
public Updater reset() {
Prefers.putUpdate(true);
return this;
}
public Updater force() { public Updater force() {
Notify.show(R.string.update_check); Notify.show(R.string.update_check);
this.force = true; Prefers.putUpdate(true);
return this; return this;
} }
@ -71,21 +65,26 @@ public class Updater implements Download.Callback {
return this; return this;
} }
public void start(Activity activity) { private Updater check() {
App.execute(() -> doInBackground(activity)); dismiss();
return this;
}
public void start() {
App.execute(this::doInBackground);
} }
private boolean need(int code, String name) { private boolean need(int code, String name) {
return (branch.equals(Github.DEV) ? !name.equals(BuildConfig.VERSION_NAME) : code > BuildConfig.VERSION_CODE) && Prefers.getUpdate(); 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 { try {
JSONObject object = new JSONObject(OkHttp.newCall(getJson()).execute().body().string()); JSONObject object = new JSONObject(OkHttp.newCall(getJson()).execute().body().string());
String name = object.optString("name"); String name = object.optString("name");
String desc = object.optString("desc"); String desc = object.optString("desc");
int code = object.optInt("code"); 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) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -97,20 +96,13 @@ public class Updater implements Download.Callback {
binding.confirm.setOnClickListener(this::confirm); binding.confirm.setOnClickListener(this::confirm);
binding.cancel.setOnClickListener(this::cancel); binding.cancel.setOnClickListener(this::cancel);
binding.desc.setText(desc); binding.desc.setText(desc);
create(activity).show(); check().create(activity).show();
} }
private AlertDialog create(Activity activity) { private AlertDialog create(Activity activity) {
if (dialog != null) dialog.dismiss();
return dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).setCancelable(false).create(); 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) { private void cancel(View view) {
Prefers.putUpdate(false); Prefers.putUpdate(false);
dismiss(); dismiss();
@ -121,6 +113,13 @@ public class Updater implements Download.Callback {
Download.create(getApk(), getFile(), this).start(); Download.create(getApk(), getFile(), this).start();
} }
private void dismiss() {
try {
if (dialog != null) dialog.dismiss();
} catch (Exception ignored) {
}
}
@Override @Override
public void progress(int progress) { public void progress(int progress) {
binding.confirm.setText(String.format(Locale.getDefault(), "%1$d%%", progress)); binding.confirm.setText(String.format(Locale.getDefault(), "%1$d%%", progress));

@ -35,7 +35,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
@Override @Override
protected void initView() { protected void initView() {
Updater.get().start(this); Updater.get().start();
Server.get().start(); Server.get().start();
initFragment(); initFragment();
initConfig(); initConfig();

@ -70,7 +70,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show()); mBinding.wall.setOnClickListener(view -> ConfigDialog.create(this).type(2).show());
mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show()); mBinding.vodHistory.setOnClickListener(view -> HistoryDialog.create(this).type(0).show());
mBinding.liveHistory.setOnClickListener(view -> HistoryDialog.create(this).type(1).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.wallDefault.setOnClickListener(view -> setWallDefault());
mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh()); mBinding.wallRefresh.setOnClickListener(view -> setWallRefresh());
mBinding.quality.setOnClickListener(view -> setQuality()); mBinding.quality.setOnClickListener(view -> setQuality());

Loading…
Cancel
Save