79 lines
2.8 KiB
Markdown
79 lines
2.8 KiB
Markdown
# Android Autofill
|
|
|
|
## App Target Matching
|
|
|
|
User story:
|
|
|
|
- When an entry carries an Android-specific target such as
|
|
`androidapp://com.blinknetwork.mobile2`, KeePassGO should treat that as a
|
|
first-class autofill target on Android.
|
|
- If an exact app target exists, Android autofill should resolve that entry
|
|
directly instead of falling back to a generic chooser for the whole cache.
|
|
|
|
Expected behavior:
|
|
|
|
- `AndroidApp*` custom fields exported into the autofill cache must match the
|
|
Android package target used by the autofill and accessibility services.
|
|
- The Android-side matcher must normalize `androidapp://...` targets the same
|
|
way the Go cache builder does.
|
|
- The chooser path should still collapse to a single direct result when there
|
|
is one exact app-target match.
|
|
|
|
## Accessibility Fallback
|
|
|
|
User story:
|
|
|
|
- When Android accessibility fallback is needed, KeePassGO should not be
|
|
limited to Chrome-only URL bar parsing.
|
|
- Apps with stable package identities should still be fillable when an entry
|
|
carries a matching `AndroidApp*` target.
|
|
|
|
Expected behavior:
|
|
|
|
- Accessibility fallback derives its match target from the web domain when one
|
|
is available.
|
|
- If no web domain is available, accessibility fallback uses the active app
|
|
package as `androidapp://<package>`.
|
|
- The fallback path can therefore fill supported apps that never expose a
|
|
browser-style URL bar.
|
|
|
|
## Share-Driven Lookup
|
|
|
|
User story:
|
|
|
|
- When Android shares a login URL or a text snippet containing a login URL into
|
|
KeePassGO, the app should open into a credential lookup flow instead of only
|
|
supporting shared `.kdbx` imports.
|
|
- If the vault is already open, the shared target should immediately narrow the
|
|
entries view.
|
|
- If the vault is not open yet, the shared target should survive startup and
|
|
apply as soon as the vault is unlocked.
|
|
|
|
Expected behavior:
|
|
|
|
- Android share intents can queue a pending lookup target in addition to shared
|
|
vault file imports.
|
|
- KeePassGO normalizes the shared value into a search query that users can
|
|
immediately act on.
|
|
- The pending lookup is consumed once and does not keep reappearing on later
|
|
launches.
|
|
|
|
## Chooser Relevance
|
|
|
|
User story:
|
|
|
|
- When Android autofill cannot resolve a single direct match, KeePassGO should
|
|
still keep the chooser focused on entries that are relevant to the current
|
|
site or app.
|
|
- The picker should not fall back to an alphabetized dump of unrelated vault
|
|
entries when KeePassGO already knows the current host or package target.
|
|
|
|
Expected behavior:
|
|
|
|
- If multiple entries exactly match the current web host or Android app target,
|
|
the chooser shows only those relevant entries.
|
|
- If there are no exact matches but there are parent-host matches, the chooser
|
|
shows only those related entries.
|
|
- KeePassGO falls back to the full chooser list only when it has no related
|
|
host or app-target candidates at all.
|