aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-05-01 16:41:52 -0700
committerAllan Wang <me@allanwang.ca>2019-05-01 16:41:52 -0700
commit984a4a7bf1d08c0d3143ea6d3ea637d7e674f0c2 (patch)
tree1eaddf006bef618f134bf197762896d21267e952 /app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt
parent58f4f9298b09081b3c937227828824849057a835 (diff)
downloadfrost-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.kt11
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)
}