Set max dialog width on landscape and foldables

Both fill and save dialogs should have max width=640dp

Bug: 258077031
Test: Tested locally on phone, foldable, and tablet devices; also ran atest CtsAutoFillServiceTestCases on tablet and passed
Change-Id: Icab9c5437fb5b717f800dfc659ba54c0b50132d8
This commit is contained in:
skxu
2023-05-08 21:58:52 +00:00
committed by Kate Xu
parent 1ec5701a09
commit 9ff02b9245
4 changed files with 22 additions and 2 deletions

View File

@@ -892,6 +892,9 @@
<!-- The max height of an icon in the Autofill fill dialog. -->
<dimen name="autofill_dialog_icon_max_height">56dp</dimen>
<!-- The max width of the Autofill fill dialog. -->
<dimen name="autofill_dialog_max_width">640dp</dimen>
<!-- Size of a slice shortcut view -->
<dimen name="slice_shortcut_size">56dp</dimen>
<!-- Size of action icons in a slice -->

View File

@@ -3655,6 +3655,7 @@
<java-symbol type="dimen" name="autofill_dataset_picker_max_height"/>
<java-symbol type="dimen" name="autofill_save_custom_subtitle_max_height"/>
<java-symbol type="integer" name="autofill_max_visible_datasets" />
<java-symbol type="dimen" name="autofill_dialog_max_width" />
<java-symbol type="style" name="Theme.DeviceDefault.Autofill" />
<java-symbol type="style" name="Theme.DeviceDefault.Light.Autofill" />

View File

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

View File

@@ -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();