diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-04 11:28:40 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-04 11:28:40 +0100 |
| commit | 1d564b91ecb1b52c585e21f10596e80bc69292d4 (patch) | |
| tree | e7cfa8bfe4ec23b11f81613d67125130c4932c1c /app/src/main/res | |
| parent | e573a321d982341f2940868cb80da8d1eccc6981 (diff) | |
| download | HardenedPass-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.xml | 35 | ||||
| -rw-r--r-- | app/src/main/res/values/dimens.xml | 9 |
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> |
