# 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://`. - 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.