From 5f397d2b8f699dd1bf8c08c3951e864d3ac14304 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 8 Sep 2019 02:06:14 -0700 Subject: Move biometric init out of coroutine launch --- app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt | 2 +- .../kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt | 2 +- app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'app/src/main/kotlin/com') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt index e5b6d49a..d03a7ea4 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt @@ -70,8 +70,8 @@ class StartActivity : KauBaseActivity() { showInvalidWebView() } + val authDefer = BiometricUtils.authenticate(this@StartActivity) launch { - val authDefer = BiometricUtils.authenticate(this@StartActivity) try { FbCookie.switchBackUser() val cookies = ArrayList(cookieDao.selectAll()) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt index d82084d5..0322a4bb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt @@ -209,8 +209,8 @@ abstract class WebOverlayActivityBase : BaseActivity(), with(web) { Prefs.prevId = Prefs.userId + val authDefer = BiometricUtils.authenticate(this@WebOverlayActivityBase) launch { - val authDefer = BiometricUtils.authenticate(this@WebOverlayActivityBase) if (userId != Prefs.userId) FbCookie.switchUser(userId) authDefer.await() 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 4ececc8b..136fe28f 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/BiometricUtils.kt @@ -65,6 +65,11 @@ object BiometricUtils { return Prefs.biometricsEnabled && System.currentTimeMillis() - lastUnlockTime > UNLOCK_TIME_INTERVAL } + /** + * Generates a prompt dialog and attempt to return an auth object. + * Note that the underlying request will call [androidx.fragment.app.FragmentTransaction.commit], + * so this cannot happen after onSaveInstanceState. + */ fun authenticate(activity: FragmentActivity, force: Boolean = false): BiometricDeferred { val deferred: BiometricDeferred = CompletableDeferred() if (!force && !shouldPrompt(activity)) { -- cgit v1.2.3