diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 5240b57a952e6..24da59a378f81 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -892,6 +892,9 @@
56dp
+
+ 640dp
+
56dp
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index c5af6b1ab07e0..3f2a989587913 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3655,6 +3655,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 a2b08405ab366..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();