aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/res
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-04 11:28:40 +0100
committerDanilo M. <danix@danix.xyz>2026-11-04 11:28:40 +0100
commit1d564b91ecb1b52c585e21f10596e80bc69292d4 (patch)
treee7cfa8bfe4ec23b11f81613d67125130c4932c1c /app/src/main/res
parente573a321d982341f2940868cb80da8d1eccc6981 (diff)
downloadHardenedPass-1d564b91ecb1b52c585e21f10596e80bc69292d4.tar.gz
HardenedPass-1d564b91ecb1b52c585e21f10596e80bc69292d4.zip
feat(app): move the autofill decryption prompts to Compose
AutofillDecryptActivity shows the no keys dialog and the entry view's passphrase dialog in Compose over its transparent FLAG_SECURE window. The flow starts once, on the first window focus, instead of on every onStart: Android 14 evicts a screen lock prompt shown before the activity is on top, and a restart showed a second passphrase dialog. After a key import it restarts on the next focus. Dismissing the no keys dialog now finishes instead of leaving an invisible window. Rotation and resizing no longer recreate the activity; other recreations cancel the fill. The passphrase is now cached only after a successful screen lock prompt, as the entry view does: a passphrase typed after a cancelled or unavailable prompt was cached whenever the cache feature was on. PasswordDialog, its layout, dimens.xml and requireKeysExist lose their last user and go. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/main/res')
-rw-r--r--app/src/main/res/layout/dialog_password_entry.xml35
-rw-r--r--app/src/main/res/values/dimens.xml9
2 files changed, 0 insertions, 44 deletions
diff --git a/app/src/main/res/layout/dialog_password_entry.xml b/app/src/main/res/layout/dialog_password_entry.xml
deleted file mode 100644
index bbfbc506..00000000
--- a/app/src/main/res/layout/dialog_password_entry.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:padding="@dimen/activity_horizontal_margin">
-
- <com.google.android.material.textfield.TextInputLayout
- android:id="@+id/password_field"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/password"
- app:endIconMode="password_toggle"
- app:hintAnimationEnabled="true"
- app:hintEnabled="true">
-
- <com.google.android.material.textfield.TextInputEditText
- android:id="@+id/password_edit_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:inputType="textPassword" />
- <requestFocus />
- </com.google.android.material.textfield.TextInputLayout>
-
- <com.google.android.material.checkbox.MaterialCheckBox
- android:id="@+id/auto_clear_cache"
- android:layout_width="match_parent"
- android:text="@string/clear_cached_password_on_screen_off"
- android:layout_height="wrap_content" />
-</LinearLayout>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
deleted file mode 100644
index de2ac854..00000000
--- a/app/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<!--
- ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
- ~ SPDX-License-Identifier: GPL-3.0-only
- -->
-
-<resources>
- <!-- Default screen margins, per the Android Design guidelines. -->
- <dimen name="activity_horizontal_margin">16dp</dimen>
-</resources>