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;
             }