diff options
4 files changed, 19 insertions, 17 deletions
diff --git a/packages/SystemUI/res/layout/window_magnification_settings_view.xml b/packages/SystemUI/res/layout/window_magnification_settings_view.xml index 12e226a47bb5..afd4fa7a5edd 100644 --- a/packages/SystemUI/res/layout/window_magnification_settings_view.xml +++ b/packages/SystemUI/res/layout/window_magnification_settings_view.xml @@ -33,9 +33,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:singleLine="true" - android:scrollHorizontally="true" - android:ellipsize="marquee" + android:layout_marginEnd="@dimen/magnification_setting_view_item_horizontal_spacing" android:text="@string/accessibility_magnifier_size" android:textAppearance="@style/TextAppearance.MagnificationSetting.Title" android:focusable="true" @@ -120,9 +118,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:singleLine="true" - android:scrollHorizontally="true" - android:ellipsize="marquee" + android:layout_marginEnd="@dimen/magnification_setting_view_item_horizontal_spacing" android:text="@string/accessibility_allow_diagonal_scrolling" android:textAppearance="@style/TextAppearance.MagnificationSetting.Title" android:labelFor="@id/magnifier_horizontal_lock_switch" diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 40bdc3eb50f8..eda7bb0e7f6d 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1323,6 +1323,7 @@ <dimen name="magnifier_drag_handle_padding">3dp</dimen> <!-- Magnification settings panel --> <dimen name="magnification_setting_view_margin">24dp</dimen> + <dimen name="magnification_setting_view_item_horizontal_spacing">12dp</dimen> <dimen name="magnification_setting_text_size">18sp</dimen> <dimen name="magnification_setting_background_padding">24dp</dimen> <dimen name="magnification_setting_background_corner_radius">28dp</dimen> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 73b7586f1210..6dc91f30d648 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -1602,7 +1602,6 @@ <item name="android:fontFamily">google-sans</item> <item name="android:textColor">?androidprv:attr/textColorPrimary</item> <item name="android:textSize">@dimen/magnification_setting_text_size</item> - <item name="android:singleLine">true</item> </style> <style name="TextAppearance.MagnificationSetting.EditButton"> diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java index f2a68a8d9fd7..5f6f21a6845b 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java +++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java @@ -55,7 +55,6 @@ import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.Switch; -import android.widget.TextView; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.graphics.SfVsyncFrameCallbackProvider; @@ -90,7 +89,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest private SeekBarWithIconButtonsView mZoomSeekbar; private LinearLayout mAllowDiagonalScrollingView; - private TextView mAllowDiagonalScrollingTitle; private Switch mAllowDiagonalScrollingSwitch; private LinearLayout mPanelView; private LinearLayout mSettingView; @@ -98,7 +96,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest private ImageButton mMediumButton; private ImageButton mLargeButton; private Button mDoneButton; - private TextView mSizeTitle; private Button mEditButton; private ImageButton mFullScreenButton; private int mLastSelectedButtonIndex = MagnificationSize.NONE; @@ -522,11 +519,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest mMediumButton = mSettingView.findViewById(R.id.magnifier_medium_button); mLargeButton = mSettingView.findViewById(R.id.magnifier_large_button); mDoneButton = mSettingView.findViewById(R.id.magnifier_done_button); - mSizeTitle = mSettingView.findViewById(R.id.magnifier_size_title); mEditButton = mSettingView.findViewById(R.id.magnifier_edit_button); mFullScreenButton = mSettingView.findViewById(R.id.magnifier_full_button); - mAllowDiagonalScrollingTitle = - mSettingView.findViewById(R.id.magnifier_horizontal_lock_title); mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider); mZoomSeekbar.setMax((int) (mZoomSeekbar.getChangeMagnitude() @@ -550,8 +544,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest mDoneButton.setOnClickListener(mButtonClickListener); mFullScreenButton.setOnClickListener(mButtonClickListener); mEditButton.setOnClickListener(mButtonClickListener); - mSizeTitle.setSelected(true); - mAllowDiagonalScrollingTitle.setSelected(true); mSettingView.setOnApplyWindowInsetsListener((v, insets) -> { // Adds a pending post check to avoiding redundant calculation because this callback @@ -578,6 +570,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest // CONFIG_FONT_SCALE: font size change // CONFIG_LOCALE: language change // CONFIG_DENSITY: display size change + mParams.width = getPanelWidth(mContext); mParams.accessibilityTitle = getAccessibilityWindowTitle(mContext); boolean showSettingPanelAfterConfigChange = mIsVisible; @@ -660,9 +653,22 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest mCallback.onEditMagnifierSizeMode(enable); } - private static LayoutParams createLayoutParams(Context context) { + private int getPanelWidth(Context context) { + // The magnification settings panel width is limited to the minimum of + // 1. display width + // 2. panel done button width + left and right padding + // So we can directly calculate the proper panel width at runtime + int displayWidth = mWindowManager.getCurrentWindowMetrics().getBounds().width(); + int contentWidth = context.getResources() + .getDimensionPixelSize(R.dimen.magnification_setting_button_done_width); + int padding = context.getResources() + .getDimensionPixelSize(R.dimen.magnification_setting_background_padding); + return Math.min(displayWidth, contentWidth + 2 * padding); + } + + private LayoutParams createLayoutParams(Context context) { final LayoutParams params = new LayoutParams( - LayoutParams.WRAP_CONTENT, + getPanelWidth(context), LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_NAVIGATION_BAR_PANEL, LayoutParams.FLAG_NOT_FOCUSABLE, |