diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 1ed069b2ea029..d1c14e9760039 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -4567,22 +4567,25 @@
Switch to clock mode for the time input.
-
+
+ Autofill options
+
+
Save to %1$s?
-
+
Save %1$s to %2$s?
-
+
Save
-
+
No thanks
-
+
password
-
+
address
-
+
credit card
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 07cecbc12467f..ab978e10b7890 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2848,6 +2848,7 @@
+
diff --git a/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java b/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
index c7e59a39aeeff..4f3446d36ed2a 100644
--- a/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
+++ b/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
@@ -247,11 +247,17 @@ public final class AutoFillUI {
}
public void dump(PrintWriter pw) {
- pw.println("AufoFill UI");
+ pw.println("Autofill UI");
final String prefix = " ";
- pw.print(prefix); pw.print("showsFillUi: "); pw.println(mFillUi != null);
+ final String prefix2 = " ";
pw.print(prefix); pw.print("showsSaveUi: "); pw.println(mSaveUi != null);
pw.print(prefix); pw.print("save timeout: "); pw.println(mSaveTimeoutMs);
+ if (mFillUi != null) {
+ pw.print(prefix); pw.println("showsFillUi: true");
+ mFillUi.dump(pw, prefix2);
+ } else {
+ pw.print(prefix); pw.println("showsFillUi: false");
+ }
}
@android.annotation.UiThread
diff --git a/services/autofill/java/com/android/server/autofill/ui/FillUi.java b/services/autofill/java/com/android/server/autofill/ui/FillUi.java
index a7d9fe96d0daf..e420da2ea8390 100644
--- a/services/autofill/java/com/android/server/autofill/ui/FillUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/FillUi.java
@@ -39,6 +39,7 @@ import android.widget.ListView;
import com.android.internal.R;
import libcore.util.Objects;
+import java.io.PrintWriter;
import java.util.ArrayList;
final class FillUi {
@@ -63,6 +64,7 @@ final class FillUi {
private final @Nullable ArrayAdapter mAdapter;
private @Nullable String mFilterText;
+ private final String mAccessibilityTitle;
private int mContentWidth;
private int mContentHeight;
@@ -76,6 +78,8 @@ final class FillUi {
mAnchorBounds.set(anchorBounds);
mCallback = callback;
+ mAccessibilityTitle = context.getString(R.string.autofill_picker_accessibility_title);
+
if (response.getAuthentication() != null) {
mListView = null;
mAdapter = null;
@@ -319,6 +323,7 @@ final class FillUi {
public void show(int desiredWidth, int desiredHeight, Rect anchorBounds) {
final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
+
params.setTitle("FillUi");
params.token = mActivityToken;
params.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
@@ -327,6 +332,7 @@ final class FillUi {
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+ params.accessibilityTitle = mAccessibilityTitle;
mWm.getDefaultDisplay().getRealSize(mTempPoint);
final int screenWidth = mTempPoint.x;
@@ -377,4 +383,16 @@ final class FillUi {
}
}
}
+
+ public void dump(PrintWriter pw, String prefix) {
+ pw.print(prefix); pw.print("mAnchorBounds: "); pw.println(mAnchorBounds);
+ pw.print(prefix); pw.print("mCallback: "); pw.println(mCallback != null);
+ pw.print(prefix); pw.print("mListView: "); pw.println(mListView);
+ pw.print(prefix); pw.print("mAdapter: "); pw.println(mAdapter != null);
+ pw.print(prefix); pw.print("mFilterText: "); pw.println(mFilterText);
+ pw.print(prefix); pw.print("mAccessibilityTitle: "); pw.println(mAccessibilityTitle);
+ pw.print(prefix); pw.print("mContentWidth: "); pw.println(mContentWidth);
+ pw.print(prefix); pw.print("mContentHeight: "); pw.println(mContentHeight);
+ pw.print(prefix); pw.print("mDestroyed: "); pw.println(mDestroyed);
+ }
}