From ab7e24d0fc4be681c06ca67506e91aea2efab522 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 23 Jan 2024 15:36:35 +0800 Subject: [PATCH] Add null check for activity --- .../java/com/fongmi/android/tv/player/extractor/Push.java | 2 +- .../com/fongmi/android/tv/ui/custom/CustomWebView.java | 2 +- app/src/mobile/java/com/fongmi/android/tv/Updater.java | 8 ++++---- .../com/fongmi/android/tv/ui/activity/MainActivity.java | 2 +- .../java/com/fongmi/android/tv/ui/dialog/LinkDialog.java | 3 +-- .../fongmi/android/tv/ui/fragment/SettingFragment.java | 4 ++-- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java index 2716ee1cf..08a532e19 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Push.java @@ -15,7 +15,7 @@ public class Push implements Source.Extractor { @Override public String fetch(String url) throws Exception { - VideoActivity.start(App.activity(), url.substring(7)); + if (App.activity() != null) VideoActivity.start(App.activity(), url.substring(7)); SystemClock.sleep(500); return ""; } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index f81ff6338..fd6a6c36f 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -140,7 +140,7 @@ public class CustomWebView extends WebView { } private void showDialog() { - if (dialog != null) return; + if (dialog != null || App.activity() == null) return; if (getParent() != null) ((ViewGroup) getParent()).removeView(this); dialog = new AlertDialog.Builder(App.activity()).setView(this).show(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/Updater.java b/app/src/mobile/java/com/fongmi/android/tv/Updater.java index 4c510d2a9..4edde65b2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Updater.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Updater.java @@ -69,21 +69,21 @@ public class Updater implements Download.Callback { return this; } - public void start() { - App.execute(this::doInBackground); + public void start(Activity activity) { + App.execute(() -> doInBackground(activity)); } private boolean need(int code, String name) { return Setting.getUpdate() && (dev ? !name.equals(BuildConfig.VERSION_NAME) && code >= BuildConfig.VERSION_CODE : code > BuildConfig.VERSION_CODE); } - private void doInBackground() { + private void doInBackground(Activity activity) { try { JSONObject object = new JSONObject(OkHttp.string(getJson())); String name = object.optString("name"); String desc = object.optString("desc"); int code = object.optInt("code"); - if (need(code, name)) App.post(() -> show(App.activity(), name, desc)); + if (need(code, name)) App.post(() -> show(activity, name, desc)); } catch (Exception e) { e.printStackTrace(); } 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 1a8c5f85f..549a8922d 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 @@ -64,8 +64,8 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt @Override protected void initView(Bundle savedInstanceState) { + Updater.get().release().start(this); initFragment(savedInstanceState); - Updater.get().release().start(); Server.get().start(); initConfig(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LinkDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LinkDialog.java index c0c77a856..cb1655e43 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LinkDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LinkDialog.java @@ -9,7 +9,6 @@ import android.view.inputmethod.EditorInfo; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; -import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.DialogLinkBinding; import com.fongmi.android.tv.ui.activity.VideoActivity; @@ -65,7 +64,7 @@ public class LinkDialog { private void onPositive(DialogInterface dialog, int which) { String text = binding.text.getText().toString().trim(); - if (!text.isEmpty()) VideoActivity.start(App.activity(), text); + if (!text.isEmpty()) VideoActivity.start(fragment.getActivity(), text); dialog.dismiss(); } 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 476dcfd74..1eb2bd1bb 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 @@ -259,11 +259,11 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit } private void onVersion(View view) { - Updater.get().force().release().start(); + Updater.get().force().release().start(getActivity()); } private boolean onVersionDev(View view) { - Updater.get().force().dev().start(); + Updater.get().force().dev().start(getActivity()); return true; }