From 3f9c57ad2decc438228174794cd54ab6b95950c3 Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 1 May 2023 12:17:12 +0800 Subject: [PATCH] Don't keep all activity reference --- app/src/main/java/com/hippo/ehviewer/Crash.kt | 5 ----- .../java/com/hippo/ehviewer/EhApplication.kt | 22 ------------------- .../java/com/hippo/ehviewer/ui/EhActivity.kt | 6 ----- .../hippo/ehviewer/ui/fragment/EhFragment.kt | 6 +++-- 4 files changed, 4 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/Crash.kt b/app/src/main/java/com/hippo/ehviewer/Crash.kt index 500867ecd..4ddd6bc6a 100644 --- a/app/src/main/java/com/hippo/ehviewer/Crash.kt +++ b/app/src/main/java/com/hippo/ehviewer/Crash.kt @@ -44,11 +44,6 @@ object Crash { fw.write("BuildTime=${BuildConfig.BUILD_TIME}\n") fw.write("\n") - // Runtime - fw.write("======== Runtime ========\n") - fw.write("TopActivity=${EhApplication.application.topActivity?.javaClass?.name}\n") - fw.write("\n") - // Device info fw.write("======== DeviceInfo ========\n") fw.write("${collectClassStaticInfo(Build::class.java)}\n") diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index f20294fdf..75357333c 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -16,7 +16,6 @@ package com.hippo.ehviewer -import android.app.Activity import android.app.Application import android.content.ComponentCallbacks2 import androidx.appcompat.app.AppCompatDelegate @@ -38,7 +37,6 @@ import com.hippo.ehviewer.dailycheck.checkDawn import com.hippo.ehviewer.dao.buildMainDB import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.legacy.cleanObsoleteCache -import com.hippo.ehviewer.ui.EhActivity import com.hippo.ehviewer.ui.keepNoMediaFileStatus import com.hippo.util.ReadableTime import com.hippo.yorozuya.FileUtils @@ -58,18 +56,6 @@ import javax.net.ssl.TrustManagerFactory import javax.net.ssl.X509TrustManager class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactory { - private val mActivityList = ArrayList() - val topActivity: EhActivity? - get() = if (mActivityList.isNotEmpty()) { - mActivityList[mActivityList.size - 1] as EhActivity - } else { - null - } - - fun recreateAllActivity() { - mActivityList.forEach { it.recreate() } - } - @OptIn(DelicateCoroutinesApi::class) override fun onCreate() { ProcessLifecycleOwner.get().lifecycle.addObserver(this) @@ -143,14 +129,6 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor } } - fun registerActivity(activity: Activity) { - mActivityList.add(activity) - } - - fun unregisterActivity(activity: Activity) { - mActivityList.remove(activity) - } - override fun onPause(owner: LifecycleOwner) { if (!locked) { locked_last_leave_time = System.currentTimeMillis() / 1000 diff --git a/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt b/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt index 3dcea6d16..48da68511 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt @@ -47,12 +47,6 @@ abstract class EhActivity : AppCompatActivity() { layoutInflater.factory2 = LayoutInflaterFactory(delegate).addOnViewCreatedListener(WindowInsetsHelper.LISTENER) super.onCreate(savedInstanceState) - (application as EhApplication).registerActivity(this) - } - - override fun onDestroy() { - super.onDestroy() - (application as EhApplication).unregisterActivity(this) } override fun onResume() { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt index 5d1de006e..c0f4b8d1c 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt @@ -28,7 +28,6 @@ import com.google.android.material.timepicker.MaterialTimePicker import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK import com.google.android.material.timepicker.TimeFormat.CLOCK_12H import com.google.android.material.timepicker.TimeFormat.CLOCK_24H -import com.hippo.ehviewer.EhApplication import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhCookieStore @@ -133,7 +132,10 @@ class EhFragment : BasePreferenceFragment() { } } else if (Settings.KEY_BLACK_DARK_THEME == key) { if (requireActivity().resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES > 0) { - EhApplication.application.recreateAllActivity() + val nightMode = AppCompatDelegate.getDefaultNightMode() + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_TIME) + AppCompatDelegate.setDefaultNightMode(nightMode) + requireActivity().recreate() } return true } else if (Settings.KEY_REQUEST_NEWS == key) {