From b0bddd6ac92b941a64683a0c677b29ed2a017708 Mon Sep 17 00:00:00 2001 From: Ahaan Ugale Date: Sun, 28 Feb 2021 21:59:00 -0800 Subject: [PATCH] AF: Add a passwordsActivity attribute. This is used to link directly to passwords settings for each autofill service from system settings. Bug: 169455298 Test: manual Change-Id: Id989601203a87d95d443a23b694b6c21785ee549 --- core/api/current.txt | 1 + .../service/autofill/AutofillServiceInfo.java | 16 ++++++++++++++++ core/res/res/values/attrs.xml | 3 +++ core/res/res/values/public.xml | 1 + 4 files changed, 21 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index 8a543de40b183..6f40051443ac7 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -1074,6 +1074,7 @@ package android { field public static final int panelTextAppearance = 16842850; // 0x1010062 field public static final int parentActivityName = 16843687; // 0x10103a7 field @Deprecated public static final int password = 16843100; // 0x101015c + field public static final int passwordsActivity = 16844351; // 0x101063f field public static final int path = 16842794; // 0x101002a field public static final int pathAdvancedPattern = 16844320; // 0x1010620 field public static final int pathData = 16843781; // 0x1010405 diff --git a/core/java/android/service/autofill/AutofillServiceInfo.java b/core/java/android/service/autofill/AutofillServiceInfo.java index fbc25a6aaf749..4f7839ce2ce97 100644 --- a/core/java/android/service/autofill/AutofillServiceInfo.java +++ b/core/java/android/service/autofill/AutofillServiceInfo.java @@ -76,6 +76,8 @@ public final class AutofillServiceInfo { @Nullable private final String mSettingsActivity; + @Nullable + private final String mPasswordsActivity; @Nullable private final ArrayMap mCompatibilityPackages; @@ -113,12 +115,14 @@ public final class AutofillServiceInfo { AutofillService.SERVICE_META_DATA); if (parser == null) { mSettingsActivity = null; + mPasswordsActivity = null; mCompatibilityPackages = null; mInlineSuggestionsEnabled = false; return; } String settingsActivity = null; + String passwordsActivity = null; ArrayMap compatibilityPackages = null; boolean inlineSuggestionsEnabled = false; // false by default. @@ -139,6 +143,8 @@ public final class AutofillServiceInfo { com.android.internal.R.styleable.AutofillService); settingsActivity = afsAttributes.getString( R.styleable.AutofillService_settingsActivity); + passwordsActivity = afsAttributes.getString( + R.styleable.AutofillService_passwordsActivity); inlineSuggestionsEnabled = afsAttributes.getBoolean( R.styleable.AutofillService_supportsInlineSuggestions, false); } finally { @@ -155,6 +161,7 @@ public final class AutofillServiceInfo { } mSettingsActivity = settingsActivity; + mPasswordsActivity = passwordsActivity; mCompatibilityPackages = compatibilityPackages; mInlineSuggestionsEnabled = inlineSuggestionsEnabled; } @@ -221,6 +228,7 @@ public final class AutofillServiceInfo { return compatibilityPackages; } + @NonNull public ServiceInfo getServiceInfo() { return mServiceInfo; } @@ -230,6 +238,12 @@ public final class AutofillServiceInfo { return mSettingsActivity; } + @Nullable + public String getPasswordsActivity() { + return mPasswordsActivity; + } + + @Nullable public ArrayMap getCompatibilityPackages() { return mCompatibilityPackages; } @@ -244,6 +258,7 @@ public final class AutofillServiceInfo { builder.append(getClass().getSimpleName()); builder.append("[").append(mServiceInfo); builder.append(", settings:").append(mSettingsActivity); + builder.append(", passwords activity:").append(mPasswordsActivity); builder.append(", hasCompatPckgs:").append(mCompatibilityPackages != null && !mCompatibilityPackages.isEmpty()).append("]"); builder.append(", inline suggestions enabled:").append(mInlineSuggestionsEnabled); @@ -256,6 +271,7 @@ public final class AutofillServiceInfo { public void dump(String prefix, PrintWriter pw) { pw.print(prefix); pw.print("Component: "); pw.println(getServiceInfo().getComponentName()); pw.print(prefix); pw.print("Settings: "); pw.println(mSettingsActivity); + pw.print(prefix); pw.print("Passwords activity: "); pw.println(mPasswordsActivity); pw.print(prefix); pw.print("Compat packages: "); pw.println(mCompatibilityPackages); pw.print(prefix); pw.print("Inline Suggestions Enabled: "); pw.println(mInlineSuggestionsEnabled); diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 735e122444ef5..1e96e0ee7c02d 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -8434,6 +8434,9 @@ + + diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 9b2573f3d62f8..a75a8f7b13455 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -3085,6 +3085,7 @@ +