aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/AndroidManifest.xml2
-rw-r--r--app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt13
2 files changed, 12 insertions, 3 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 677321c7..bcddf4c3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -37,7 +37,7 @@
android:name=".ui.main.LaunchActivity"
android:configChanges="orientation|screenSize"
android:exported="true"
- android:theme="@style/NoBackgroundThemeM3">
+ android:theme="@style/NoActionBarThemeM3">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
diff --git a/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt b/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
index 66b5cf1f..6f07a51a 100644
--- a/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/main/LaunchActivity.kt
@@ -22,10 +22,21 @@ import java.io.File
@SuppressLint("CustomSplashScreen")
class LaunchActivity : AppCompatActivity() {
+ private var prompted = false
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ if (!sharedPrefs.getBoolean(PreferenceKeys.BIOMETRIC_AUTH_2, false)) startTargetActivity(true)
+ }
+
+ // The prompt waits for window focus: Android 14's SystemUI dismisses a prompt shown while its
+ // activity is not yet on top (shown from onCreate), with ERROR_CANCELED, closing the app at once.
+ override fun onWindowFocusChanged(hasFocus: Boolean) {
+ super.onWindowFocusChanged(hasFocus)
+ if (!hasFocus || prompted || isFinishing) return
val prefs = sharedPrefs
if (prefs.getBoolean(PreferenceKeys.BIOMETRIC_AUTH_2, false)) {
+ prompted = true
BiometricAuthenticator.authenticate(this) { result ->
when (result) {
is Result.Success -> {
@@ -43,8 +54,6 @@ class LaunchActivity : AppCompatActivity() {
is Result.Retry -> {}
}
}
- } else {
- startTargetActivity(true)
}
}