Merge "Minor autofill changes to support compat mode CTS tests."
diff --git a/api/test-current.txt b/api/test-current.txt
index 2e47e00..92251f7 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -185,6 +185,7 @@
public abstract class Context {
method public android.os.UserHandle getUser();
method public int getUserId();
+ method public void setAutofillCompatibilityEnabled(boolean);
}
}
@@ -532,6 +533,7 @@
}
public static final class Settings.Global extends android.provider.Settings.NameValueTable {
+ field public static final java.lang.String AUTOFILL_COMPAT_ALLOWED_PACKAGES = "autofill_compat_allowed_packages";
field public static final java.lang.String LOCATION_GLOBAL_KILL_SWITCH = "location_global_kill_switch";
field public static final java.lang.String LOW_POWER_MODE = "low_power";
field public static final java.lang.String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package";
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 8a9efe8..83fe4dd 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -6343,6 +6343,8 @@
final AutofillManager afm = getAutofillManager();
if (afm != null) {
+ writer.print(prefix); writer.print("Autofill Compat Mode: ");
+ writer.println(isAutofillCompatibilityEnabled());
afm.dump(prefix, writer);
} else {
writer.print(prefix); writer.println("No AutofillManager");
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index a1ba13d..99fb465 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -18,6 +18,7 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.TestApi;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentProvider;
@@ -2264,6 +2265,7 @@
}
/** @hide */
+ @TestApi
@Override
public void setAutofillCompatibilityEnabled(boolean autofillCompatEnabled) {
mIsAutofillCompatEnabled = autofillCompatEnabled;
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index a738312..f184380 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -4919,7 +4919,7 @@
/**
* @hide
*/
- public void setAutofillClient(AutofillClient client) {
+ public void setAutofillClient(@SuppressWarnings("unused") AutofillClient client) {
}
/**
@@ -4932,7 +4932,9 @@
/**
* @hide
*/
- public void setAutofillCompatibilityEnabled(boolean autofillCompatEnabled) {
+ @TestApi
+ public void setAutofillCompatibilityEnabled(
+ @SuppressWarnings("unused") boolean autofillCompatEnabled) {
}
/**
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index b072ee6..1867a6d 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -17,6 +17,7 @@
package android.content;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.app.IApplicationThread;
import android.app.IServiceConnection;
import android.content.pm.ApplicationInfo;
@@ -1006,6 +1007,7 @@
/**
* @hide
*/
+ @TestApi
@Override
public void setAutofillCompatibilityEnabled(boolean autofillCompatEnabled) {
if (mBase != null) {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 26c3732f..849dd0f 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -11373,6 +11373,7 @@
* @hide
*/
@SystemApi
+ @TestApi
public static final String AUTOFILL_COMPAT_ALLOWED_PACKAGES =
"autofill_compat_allowed_packages";
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
index 1ae61af..db62961 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
@@ -577,7 +577,7 @@
}
}
- private static class AutofillCompatState {
+ private static final class AutofillCompatState {
private final Object mLock = new Object();
@GuardedBy("mLock")
@@ -1013,6 +1013,8 @@
}
}
mUi.dump(pw);
+ pw.print("Autofill Compat State: ");
+ pw.println(mAutofillCompatState.mUserSpecs);
}
if (showHistory) {
pw.println(); pw.println("Requests history:"); pw.println();
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
index eab4d11..c201de4 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
@@ -40,7 +40,6 @@
import android.metrics.LogMaker;
import android.os.AsyncTask;
import android.os.Binder;
-import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Looper;
@@ -907,9 +906,12 @@
pw.print(prefix); pw.print("Disabled: "); pw.println(mDisabled);
pw.print(prefix); pw.print("Field classification enabled: ");
pw.println(isFieldClassificationEnabledLocked());
+ pw.print(prefix); pw.print("Compat pkgs: ");
final ArrayMap<String, Pair<Long, String>> compatPkgs = getCompatibilityPackagesLocked();
- if (compatPkgs != null) {
- pw.print(prefix); pw.print("Compat pkgs: "); pw.println(compatPkgs.keySet());
+ if (compatPkgs == null) {
+ pw.println("N/A");
+ } else {
+ pw.println(compatPkgs);
}
pw.print(prefix); pw.print("Setup complete: "); pw.println(mSetupComplete);
pw.print(prefix); pw.print("Last prune: "); pw.println(mLastPrune);
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index d047581..ef6ed08 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -376,6 +376,7 @@
/**
* Updates values of the nodes in the context's structure so that:
+ *
* - proper node is focused
* - autofillValue is sent back to service when it was previously autofilled
* - autofillValue is sent in the view used to force a request
@@ -395,7 +396,8 @@
final ViewNode node = nodes[i];
if (node == null) {
if (sVerbose) {
- Slog.v(TAG, "fillStructureWithAllowedValues(): no node for " + viewState.id);
+ Slog.v(TAG,
+ "fillContextWithAllowedValuesLocked(): no node for " + viewState.id);
}
continue;
}