diff options
author | Allan Wang <me@allanwang.ca> | 2019-05-01 16:41:52 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2019-05-01 16:41:52 -0700 |
commit | 984a4a7bf1d08c0d3143ea6d3ea637d7e674f0c2 (patch) | |
tree | 1eaddf006bef618f134bf197762896d21267e952 /app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt | |
parent | 58f4f9298b09081b3c937227828824849057a835 (diff) | |
download | frost-984a4a7bf1d08c0d3143ea6d3ea637d7e674f0c2.tar.gz frost-984a4a7bf1d08c0d3143ea6d3ea637d7e674f0c2.tar.bz2 frost-984a4a7bf1d08c0d3143ea6d3ea637d7e674f0c2.zip |
Add security settings for biometrics
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt index 476e490d..9a9f4082 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt @@ -26,6 +26,10 @@ object BiometricUtils { @Volatile private var pool: ExecutorService? = null + private var lastUnlockTime = -1L + + private const val UNLOCK_TIME_INTERVAL = 15 * 60 * 1000 + /** * Checks if biometric authentication is possible * Currently, this means checking for enrolled fingerprints @@ -41,12 +45,12 @@ object BiometricUtils { pool ?: Executors.newSingleThreadExecutor().also { pool = it } private fun shouldPrompt(context: Context): Boolean { - return true + return Prefs.biometricsEnabled && System.currentTimeMillis() - lastUnlockTime > UNLOCK_TIME_INTERVAL } - fun authenticate(activity: FragmentActivity): BiometricDeferred { + fun authenticate(activity: FragmentActivity, force: Boolean = false): BiometricDeferred { val deferred: BiometricDeferred = CompletableDeferred() - if (!shouldPrompt(activity)) { + if (!force && !shouldPrompt(activity)) { deferred.complete(null) return deferred } @@ -66,6 +70,7 @@ object BiometricUtils { } override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { + lastUnlockTime = System.currentTimeMillis() deferred.complete(result.cryptoObject) } |