Don't keep all activity reference

This commit is contained in:
tarsin committed 2023-05-01 12:17:12 +08:00
1 parent 64e55be02f
commit 3f9c57ad2d
4 files changed
+4 -35

No files matched your search

@@ -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")
@@ -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<Activity>()
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
@@ -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() {
@@ -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) {