Search activity no longer asks for biometrics, but will ask for it to perform certain tasks Co-Authored-By: arkon <arkon@users.noreply.github.com>pull/3117/head
parent
bfec83440c
commit
243bffebf9
@ -0,0 +1,57 @@
|
||||
package eu.kanade.tachiyomi.ui.security
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.view.WindowManager
|
||||
import androidx.biometric.BiometricManager
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.util.Date
|
||||
|
||||
object SecureActivityDelegate {
|
||||
|
||||
private val preferences by injectLazy<PreferencesHelper>()
|
||||
|
||||
var locked: Boolean = true
|
||||
|
||||
fun setSecure(activity: Activity?, force:Boolean? = null) {
|
||||
val enabled = force ?: preferences.secureScreen().getOrDefault()
|
||||
if (enabled) {
|
||||
activity?.window?.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
WindowManager.LayoutParams.FLAG_SECURE
|
||||
)
|
||||
} else {
|
||||
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
|
||||
fun promptLockIfNeeded(activity: Activity?) {
|
||||
if (activity == null) return
|
||||
val lockApp = preferences.useBiometrics().getOrDefault()
|
||||
if (lockApp && BiometricManager.from(activity).canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
|
||||
if (isAppLocked()) {
|
||||
val intent = Intent(activity, BiometricActivity::class.java)
|
||||
activity.startActivity(intent)
|
||||
activity.overridePendingTransition(0, 0)
|
||||
}
|
||||
} else if (lockApp) {
|
||||
preferences.useBiometrics().set(false)
|
||||
}
|
||||
}
|
||||
|
||||
fun shouldBeLocked(): Boolean {
|
||||
val lockApp = preferences.useBiometrics().getOrDefault()
|
||||
if (lockApp && isAppLocked()) return true
|
||||
return false
|
||||
}
|
||||
|
||||
private fun isAppLocked(): Boolean {
|
||||
return locked &&
|
||||
(preferences.lockAfter().getOrDefault() <= 0
|
||||
|| Date().time >= preferences.lastUnlock().getOrDefault() + 60 * 1000 * preferences
|
||||
.lockAfter().getOrDefault())
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"/>
|
||||
</vector>
|
Loading…
Reference in new issue