diff --git a/core/res/res/layout/autofill_fill_dialog.xml b/core/res/res/layout/autofill_fill_dialog.xml
index 2e65800d5abbc..d1a4935633cbb 100644
--- a/core/res/res/layout/autofill_fill_dialog.xml
+++ b/core/res/res/layout/autofill_fill_dialog.xml
@@ -35,10 +35,10 @@
+ android:layout_height="@dimen/autofill_dialog_icon_max_height"
+ android:layout_width="fill_parent"/>
+ android:layout_height="@dimen/autofill_save_icon_max_height"
+ android:layout_width="fill_parent"/>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index bc0af12e95690..24da59a378f81 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -874,6 +874,7 @@
32dp
16dp
32dp
+ 56dp
8dp
16dp
16dp
@@ -882,19 +883,18 @@
20%
-
- 300dp
-
3
-
+
32dp
+
+ 56dp
+
+
+ 640dp
+
56dp
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index b592dc027e244..f35e32b126ba8 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3660,8 +3660,8 @@
-
+
@@ -5018,7 +5018,7 @@
-
+
diff --git a/services/autofill/java/com/android/server/autofill/ui/DialogFillUi.java b/services/autofill/java/com/android/server/autofill/ui/DialogFillUi.java
index dec0e7666b1b8..dbeb624bd202c 100644
--- a/services/autofill/java/com/android/server/autofill/ui/DialogFillUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/DialogFillUi.java
@@ -29,6 +29,7 @@ import android.graphics.drawable.Drawable;
import android.service.autofill.Dataset;
import android.service.autofill.FillResponse;
import android.text.TextUtils;
+import android.util.DisplayMetrics;
import android.util.PluralsMessageFormatter;
import android.util.Slog;
import android.view.ContextThemeWrapper;
@@ -177,7 +178,14 @@ final class DialogFillUi {
window.setGravity(Gravity.BOTTOM | Gravity.CENTER);
window.setCloseOnTouchOutside(true);
final WindowManager.LayoutParams params = window.getAttributes();
- params.width = WindowManager.LayoutParams.MATCH_PARENT;
+
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ window.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ final int screenWidth = displayMetrics.widthPixels;
+ final int maxWidth =
+ mContext.getResources().getDimensionPixelSize(R.dimen.autofill_dialog_max_width);
+ params.width = Math.min(screenWidth, maxWidth);
+
params.accessibilityTitle =
mContext.getString(R.string.autofill_picker_accessibility_title);
params.windowAnimations = R.style.AutofillSaveAnimation;
diff --git a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
index 12042594fefbd..f035d07642790 100644
--- a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
@@ -48,6 +48,7 @@ import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.ArraySet;
+import android.util.DisplayMetrics;
import android.util.Pair;
import android.util.Slog;
import android.util.SparseArray;
@@ -361,7 +362,14 @@ final class SaveUi {
window.setGravity(Gravity.BOTTOM | Gravity.CENTER);
window.setCloseOnTouchOutside(true);
final WindowManager.LayoutParams params = window.getAttributes();
- params.width = WindowManager.LayoutParams.MATCH_PARENT;
+
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ window.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ final int screenWidth = displayMetrics.widthPixels;
+ final int maxWidth =
+ context.getResources().getDimensionPixelSize(R.dimen.autofill_dialog_max_width);
+ params.width = Math.min(screenWidth, maxWidth);
+
params.accessibilityTitle = context.getString(R.string.autofill_save_accessibility_title);
params.windowAnimations = R.style.AutofillSaveAnimation;
params.setTrustedOverlay();
@@ -563,25 +571,7 @@ final class SaveUi {
private void setServiceIcon(Context context, View view, Drawable serviceIcon) {
final ImageView iconView = view.findViewById(R.id.autofill_save_icon);
final Resources res = context.getResources();
-
- final int maxWidth = res.getDimensionPixelSize(R.dimen.autofill_save_icon_max_size);
- final int maxHeight = maxWidth;
- final int actualWidth = serviceIcon.getMinimumWidth();
- final int actualHeight = serviceIcon.getMinimumHeight();
-
- if (actualWidth <= maxWidth && actualHeight <= maxHeight) {
- if (sDebug) {
- Slog.d(TAG, "Adding service icon "
- + "(" + actualWidth + "x" + actualHeight + ") as it's less than maximum "
- + "(" + maxWidth + "x" + maxHeight + ").");
- }
- iconView.setImageDrawable(serviceIcon);
- } else {
- Slog.w(TAG, "Not adding service icon of size "
- + "(" + actualWidth + "x" + actualHeight + ") because maximum is "
- + "(" + maxWidth + "x" + maxHeight + ").");
- ((ViewGroup)iconView.getParent()).removeView(iconView);
- }
+ iconView.setImageDrawable(serviceIcon);
}
private static boolean isValidLink(PendingIntent pendingIntent, Intent intent) {