Merge "Provide support for optimized ACTION_REQUEST_SET_AUTOFILL_SERVICE." into oc-dev
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 64489b4..34aecdc 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -1159,7 +1159,7 @@
     public static final int IMPORTANT_FOR_AUTOFILL_YES = 0x1;
 
     /**
-     * The view is not important for autofill, and its children (if any) will be traversed.
+     * The view is not important for autofill, but its children (if any) will be traversed.
      */
     public static final int IMPORTANT_FOR_AUTOFILL_NO = 0x2;
 
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java
index caf188d..6e02a84 100644
--- a/core/java/android/view/autofill/AutofillManager.java
+++ b/core/java/android/view/autofill/AutofillManager.java
@@ -1081,7 +1081,8 @@
         return view;
     }
 
-    private boolean hasAutofillFeature() {
+    /** @hide */
+    public boolean hasAutofillFeature() {
         return mService != null;
     }
 
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
index 88adbf4..d424d38 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
@@ -220,24 +220,6 @@
     }
 
     // Called by Shell command.
-    void requestSaveForUser(int userId) {
-        Slog.i(TAG, "requestSaveForUser(): " + userId);
-        mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
-        final IBinder activityToken = getTopActivityForUser();
-        if (activityToken != null) {
-            synchronized (mLock) {
-                final AutofillManagerServiceImpl service = peekServiceForUserLocked(userId);
-                if (service == null) {
-                    Log.w(TAG, "handleSaveForUser(): no cached service for userId " + userId);
-                    return;
-                }
-
-                service.requestSaveForUserLocked(activityToken);
-            }
-        }
-    }
-
-    // Called by Shell command.
     void destroySessions(int userId, IResultReceiver receiver) {
         Slog.i(TAG, "destroySessions() for userId " + userId);
         mContext.enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java
index 6debc2f..62226e3 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceShellCommand.java
@@ -45,8 +45,6 @@
         }
         final PrintWriter pw = getOutPrintWriter();
         switch (cmd) {
-            case "save":
-                return requestSave();
             case "list":
                 return requestList(pw);
             case "destroy":
@@ -71,21 +69,12 @@
             pw.println("  destroy sessions [--user USER_ID]");
             pw.println("    Destroy all pending sessions.");
             pw.println("");
-            pw.println("  save [--user USER_ID]");
-            pw.println("    Request provider to save contents of the top activity.");
-            pw.println("");
             pw.println("  reset");
             pw.println("    Reset all pending sessions and cached service connections.");
             pw.println("");
         }
     }
 
-    private int requestSave() {
-        final int userId = getUserIdFromArgsOrCurrentUser();
-        mService.requestSaveForUser(userId);
-        return 0;
-    }
-
     private int requestDestroy(PrintWriter pw) {
         if (!isNextArgSessions(pw)) {
             return -1;