Don't keep all activity reference
This commit is contained in:
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) {
|
||||
|
||||
Reference in new issue
Block a user