mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Fix logic of app unlock (#7569)
This commit is contained in:
		@@ -55,6 +55,7 @@ import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
import uy.kohesive.injekt.injectLazy
 | 
			
		||||
import java.security.Security
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 | 
			
		||||
class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 | 
			
		||||
 | 
			
		||||
@@ -156,6 +157,7 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onStop(owner: LifecycleOwner) {
 | 
			
		||||
        preferences.lastAppClosed().set(Date().time)
 | 
			
		||||
        if (!AuthenticatorUtil.isAuthenticating && preferences.lockAppAfter().get() >= 0) {
 | 
			
		||||
            SecureActivityDelegate.locked = true
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ class PreferencesHelper(val context: Context) {
 | 
			
		||||
 | 
			
		||||
    fun lockAppAfter() = flowPrefs.getInt("lock_app_after", 0)
 | 
			
		||||
 | 
			
		||||
    fun lastAppUnlock() = flowPrefs.getLong("last_app_unlock", 0)
 | 
			
		||||
    fun lastAppClosed() = flowPrefs.getLong("last_app_closed", 0)
 | 
			
		||||
 | 
			
		||||
    fun secureScreen() = flowPrefs.getEnum("secure_screen_v2", Values.SecureScreenMode.INCOGNITO)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,6 @@ class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObser
 | 
			
		||||
    private fun isAppLocked(): Boolean {
 | 
			
		||||
        if (!SecureActivityDelegate.locked) return false
 | 
			
		||||
        return preferences.lockAppAfter().get() <= 0 ||
 | 
			
		||||
            Date().time >= preferences.lastAppUnlock().get() + 60 * 1000 * preferences.lockAppAfter().get()
 | 
			
		||||
            Date().time >= preferences.lastAppClosed().get() + 60 * 1000 * preferences.lockAppAfter().get()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,6 @@ import eu.kanade.tachiyomi.util.system.AuthenticatorUtil
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.startAuthentication
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
import java.util.Date
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Blank activity with a BiometricPrompt.
 | 
			
		||||
@@ -39,7 +38,6 @@ class UnlockActivity : BaseActivity() {
 | 
			
		||||
                ) {
 | 
			
		||||
                    super.onAuthenticationSucceeded(activity, result)
 | 
			
		||||
                    SecureActivityDelegate.locked = false
 | 
			
		||||
                    preferences.lastAppUnlock().set(Date().time)
 | 
			
		||||
                    finish()
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user