Merge "Trigger re-inflation when configuration changed" into udc-dev

This commit is contained in:
Candice Lo
2023-03-08 22:58:06 +00:00
committed by Android (Google) Code Review
8 changed files with 39 additions and 59 deletions

View File

@@ -14,8 +14,8 @@
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:width="32dp"
android:height="32dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/colorControlNormal">

View File

@@ -14,8 +14,8 @@
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:width="32dp"
android:height="32dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/colorControlNormal">

View File

@@ -14,8 +14,8 @@
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:width="32dp"
android:height="32dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/colorControlNormal">

View File

@@ -14,8 +14,8 @@
~ limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:width="24dp"
android:height="24dp"
android:viewportWidth="48"
android:viewportHeight="48"
android:tint="?attr/colorControlNormal">

View File

@@ -35,7 +35,7 @@
android:text="@string/accessibility_magnifier_size"
android:textAppearance="@style/TextAppearance.MagnificationSetting.Title"
android:focusable="true"
android:layout_gravity="center_vertical|left" />
android:layout_gravity="center_vertical" />
<Button
android:id="@+id/magnifier_edit_button"
@@ -45,25 +45,22 @@
android:text="@string/accessibility_magnifier_edit"
android:textAppearance="@style/TextAppearance.MagnificationSetting.EditButton"
android:focusable="true"
android:layout_gravity="right" />
android:layout_gravity="center_vertical" />
</LinearLayout>
<LinearLayout
android:background="@drawable/accessibility_magnification_setting_view_image_btn_layout_bg"
android:layout_width="@dimen/magnification_setting_image_button_background_width"
android:layout_width="match_parent"
android:layout_height="@dimen/magnification_setting_image_button_height"
android:minWidth="@dimen/magnification_setting_image_button_background_width"
android:orientation="horizontal">
<ImageButton
android:id="@+id/magnifier_small_button"
android:layout_width="0dp"
android:layout_height="@dimen/magnification_setting_image_button_height"
android:layout_weight="1"
android:scaleType="fitCenter"
android:scaleType="center"
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:paddingLeft="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingRight="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingTop="@dimen/magnification_setting_image_button_padding_vertical"
android:paddingBottom="@dimen/magnification_setting_image_button_padding_vertical"
android:src="@drawable/ic_magnification_menu_small"
android:tint="@color/accessibility_magnification_image_button_tint"
android:tintMode="src_atop" />
@@ -73,12 +70,8 @@
android:layout_width="0dp"
android:layout_height="@dimen/magnification_setting_image_button_height"
android:layout_weight="1"
android:scaleType="fitCenter"
android:scaleType="center"
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:paddingLeft="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingRight="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingTop="@dimen/magnification_setting_image_button_padding_vertical"
android:paddingBottom="@dimen/magnification_setting_image_button_padding_vertical"
android:src="@drawable/ic_magnification_menu_medium"
android:tint="@color/accessibility_magnification_image_button_tint"
android:tintMode="src_atop" />
@@ -88,12 +81,8 @@
android:layout_width="0dp"
android:layout_height="@dimen/magnification_setting_image_button_height"
android:layout_weight="1"
android:scaleType="fitCenter"
android:scaleType="center"
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:paddingLeft="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingRight="@dimen/magnification_setting_image_button_padding_horizontal"
android:paddingTop="@dimen/magnification_setting_image_button_padding_vertical"
android:paddingBottom="@dimen/magnification_setting_image_button_padding_vertical"
android:src="@drawable/ic_magnification_menu_large"
android:tint="@color/accessibility_magnification_image_button_tint"
android:tintMode="src_atop" />
@@ -103,16 +92,8 @@
android:layout_width="0dp"
android:layout_height="@dimen/magnification_setting_image_button_height"
android:layout_weight="1"
android:scaleType="fitCenter"
android:scaleType="center"
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:paddingLeft
="@dimen/magnification_setting_image_button_open_in_full_padding_horizontal"
android:paddingRight
="@dimen/magnification_setting_image_button_open_in_full_padding_horizontal"
android:paddingTop
="@dimen/magnification_setting_image_button_open_in_full_padding_vertical"
android:paddingBottom
="@dimen/magnification_setting_image_button_open_in_full_padding_vertical"
android:src="@drawable/ic_open_in_full"
android:tint="@color/accessibility_magnification_image_button_tint"
android:tintMode="src_atop" />
@@ -130,7 +111,6 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:text="@string/accessibility_allow_diagonal_scrolling"
android:textAppearance="@style/TextAppearance.MagnificationSetting.Title"
android:layout_gravity="center_vertical" />
@@ -166,16 +146,11 @@
<Button
android:id="@+id/magnifier_done_button"
android:background="@drawable/accessibility_window_magnification_button_done_bg"
android:minHeight="@dimen/magnification_setting_button_done_height"
android:layout_width="@dimen/magnification_setting_button_done_width"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/accessibility_magnification_done"
android:textAppearance="@style/TextAppearance.MagnificationSetting.DoneButton"
android:focusable="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/magnification_setting_view_margin"
android:paddingLeft="@dimen/magnification_setting_button_done_padding_horizontal"
android:paddingRight="@dimen/magnification_setting_button_done_padding_horizontal"
android:paddingTop="@dimen/magnification_setting_button_done_padding_vertical"
android:paddingBottom="@dimen/magnification_setting_button_done_padding_vertical" />
android:layout_marginTop="@dimen/magnification_setting_view_margin"/>
</LinearLayout>

View File

@@ -1358,6 +1358,7 @@
<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">

View File

@@ -403,15 +403,21 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
mAnimationController.deleteWindowMagnification(animationCallback);
}
void deleteWindowMagnification() {
deleteWindowMagnification(/* closeSettingPanel= */ true);
}
/**
* Deletes the magnification window.
*/
void deleteWindowMagnification() {
void deleteWindowMagnification(boolean closeSettingPanel) {
if (!isWindowVisible()) {
return;
}
closeMagnificationSettings();
if (closeSettingPanel) {
closeMagnificationSettings();
}
if (mMirrorSurface != null) {
mTransaction.remove(mMirrorSurface).apply();
@@ -489,7 +495,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
// Recreate the window again to correct the window appearance due to density or
// window size changed not caused by rotation.
if (isWindowVisible() && reCreateWindow) {
deleteWindowMagnification();
deleteWindowMagnification(/* closeSettingPanel= */ false);
enableWindowMagnificationInternal(Float.NaN, Float.NaN, Float.NaN);
}
}

View File

@@ -230,14 +230,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
}
};
private void applyResourcesValuesWithDensityChanged() {
if (mIsVisible) {
// Reset button to make its window layer always above the mirror window.
hideSettingPanel();
showSettingPanel(false);
}
}
private boolean onTouch(View v, MotionEvent event) {
if (!mIsVisible) {
return false;
@@ -441,7 +433,15 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
void onConfigurationChanged(int configDiff) {
if ((configDiff & ActivityInfo.CONFIG_UI_MODE) != 0
|| (configDiff & ActivityInfo.CONFIG_ASSETS_PATHS) != 0) {
|| (configDiff & ActivityInfo.CONFIG_ASSETS_PATHS) != 0
|| (configDiff & ActivityInfo.CONFIG_FONT_SCALE) != 0
|| (configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
// We listen to following config changes to trigger layout inflation:
// CONFIG_UI_MODE: theme change
// CONFIG_ASSETS_PATHS: wallpaper change
// CONFIG_FONT_SCALE: font size change
// CONFIG_DENSITY: display size change
boolean showSettingPanelAfterThemeChange = mIsVisible;
hideSettingPanel(/* resetPosition= */ false);
inflateView();
@@ -450,6 +450,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
}
return;
}
if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) {
final Rect previousDraggableBounds = new Rect(mDraggableWindowBounds);
mDraggableWindowBounds.set(getDraggableWindowBounds());
@@ -461,10 +462,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
+ mDraggableWindowBounds.top;
return;
}
if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
applyResourcesValuesWithDensityChanged();
return;
}
if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) {
updateAccessibilityWindowTitle();
return;