From 19295e1d30d4f9e5ad1ffa546f51bb9b3d596619 Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 2 Jun 2023 13:46:15 +0800 Subject: [PATCH] Refactor out lockObserver --- .../java/com/hippo/ehviewer/EhApplication.kt | 19 ++++--------------- .../java/com/hippo/ehviewer/ui/EhActivity.kt | 10 ++++------ .../com/hippo/ehviewer/ui/SecurityActivity.kt | 18 ++++++++++++++---- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index c82be76fb..2e535f44d 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -20,8 +20,6 @@ import android.app.Application import android.content.ComponentCallbacks2 import androidx.appcompat.app.AppCompatDelegate import androidx.collection.LruCache -import androidx.lifecycle.DefaultLifecycleObserver -import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner import coil.ImageLoaderFactory import coil.decode.ImageDecoderDecoder @@ -42,6 +40,7 @@ import com.hippo.ehviewer.legacy.cleanObsoleteCache import com.hippo.ehviewer.okhttp.cache import com.hippo.ehviewer.okhttp.httpClient import com.hippo.ehviewer.ui.keepNoMediaFileStatus +import com.hippo.ehviewer.ui.lockObserver import com.hippo.ehviewer.util.ReadableTime import com.hippo.ehviewer.yorozuya.FileUtils import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore @@ -53,10 +52,10 @@ import splitties.arch.room.roomDb import splitties.init.appCtx import java.net.Proxy -class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactory { +class EhApplication : Application(), ImageLoaderFactory { @OptIn(DelicateCoroutinesApi::class) override fun onCreate() { - ProcessLifecycleOwner.get().lifecycle.addObserver(this) + ProcessLifecycleOwner.get().lifecycle.addObserver(lockObserver) val handler = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler { t, e -> try { @@ -67,7 +66,7 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor } handler?.uncaughtException(t, e) } - super.onCreate() + super.onCreate() System.loadLibrary("ehviewer") Settings.initialize() ReadableTime.initialize(this) @@ -126,13 +125,6 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor } } - override fun onPause(owner: LifecycleOwner) { - if (!locked) { - locked_last_leave_time = System.currentTimeMillis() / 1000 - } - locked = true - } - override fun newImageLoader() = imageLoader { okHttpClient(nonCacheOkHttpClient) components { @@ -146,9 +138,6 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor } companion object { - var locked = true - var locked_last_leave_time: Long = 0 - val ehProxySelector by lazy { EhProxySelector() } val nonCacheOkHttpClient by lazy { 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 48da68511..dbfa03489 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/EhActivity.kt @@ -20,7 +20,6 @@ import android.content.res.Resources.Theme import android.os.Bundle import androidx.annotation.StyleRes import androidx.appcompat.app.AppCompatActivity -import com.hippo.ehviewer.EhApplication import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import eu.kanade.tachiyomi.util.system.isNightMode @@ -44,17 +43,16 @@ abstract class EhActivity : AppCompatActivity() { } override fun onCreate(savedInstanceState: Bundle?) { - layoutInflater.factory2 = - LayoutInflaterFactory(delegate).addOnViewCreatedListener(WindowInsetsHelper.LISTENER) + layoutInflater.factory2 = LayoutInflaterFactory(delegate).addOnViewCreatedListener(WindowInsetsHelper.LISTENER) super.onCreate(savedInstanceState) } override fun onResume() { val lockedResumeTime = System.currentTimeMillis() / 1000 - val lockedDelayTime = lockedResumeTime - EhApplication.locked_last_leave_time + val lockedDelayTime = lockedResumeTime - locked_last_leave_time if (lockedDelayTime < Settings.securityDelay * 60) { - EhApplication.locked = false - } else if (Settings.security && isAuthenticationSupported() && EhApplication.locked) { + locked = false + } else if (Settings.security && isAuthenticationSupported() && locked) { startActivity(Intent(this, SecurityActivity::class.java)) } super.onResume() diff --git a/app/src/main/java/com/hippo/ehviewer/ui/SecurityActivity.kt b/app/src/main/java/com/hippo/ehviewer/ui/SecurityActivity.kt index 32ae5e6f8..cd7b840f5 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/SecurityActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/SecurityActivity.kt @@ -27,7 +27,8 @@ import androidx.biometric.auth.AuthPromptCallback import androidx.biometric.auth.startClass2BiometricOrCredentialAuthentication import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity -import com.hippo.ehviewer.EhApplication +import androidx.lifecycle.DefaultLifecycleObserver +import androidx.lifecycle.LifecycleOwner import com.hippo.ehviewer.R fun Context.isAuthenticationSupported(): Boolean { @@ -97,7 +98,7 @@ class SecurityActivity : AppCompatActivity() { private fun onSuccess() { isAuthenticating = false - EhApplication.locked = false + locked = false finish() } @@ -105,8 +106,17 @@ class SecurityActivity : AppCompatActivity() { moveTaskToBack(true) isAuthenticating = false } +} - companion object { - private var isAuthenticating = false +private var isAuthenticating = false +var locked = true +var locked_last_leave_time: Long = 0 + +val lockObserver = object : DefaultLifecycleObserver { + override fun onPause(owner: LifecycleOwner) { + if (!locked) { + locked_last_leave_time = System.currentTimeMillis() / 1000 + } + locked = true } }