Merge "Trigger re-inflation when configuration changed" into udc-dev
diff --git a/packages/SystemUI/res/drawable/ic_magnification_menu_large.xml b/packages/SystemUI/res/drawable/ic_magnification_menu_large.xml
index 92c9527..401ac73 100644
--- a/packages/SystemUI/res/drawable/ic_magnification_menu_large.xml
+++ b/packages/SystemUI/res/drawable/ic_magnification_menu_large.xml
@@ -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">
diff --git a/packages/SystemUI/res/drawable/ic_magnification_menu_medium.xml b/packages/SystemUI/res/drawable/ic_magnification_menu_medium.xml
index 209681f..9a850e8 100644
--- a/packages/SystemUI/res/drawable/ic_magnification_menu_medium.xml
+++ b/packages/SystemUI/res/drawable/ic_magnification_menu_medium.xml
@@ -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">
diff --git a/packages/SystemUI/res/drawable/ic_magnification_menu_small.xml b/packages/SystemUI/res/drawable/ic_magnification_menu_small.xml
index a3dc816..54322c5 100644
--- a/packages/SystemUI/res/drawable/ic_magnification_menu_small.xml
+++ b/packages/SystemUI/res/drawable/ic_magnification_menu_small.xml
@@ -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">
diff --git a/packages/SystemUI/res/drawable/ic_open_in_full.xml b/packages/SystemUI/res/drawable/ic_open_in_full.xml
index c7f3236..7081c4b 100644
--- a/packages/SystemUI/res/drawable/ic_open_in_full.xml
+++ b/packages/SystemUI/res/drawable/ic_open_in_full.xml
@@ -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">
diff --git a/packages/SystemUI/res/layout/window_magnification_settings_view.xml b/packages/SystemUI/res/layout/window_magnification_settings_view.xml
index ae0f8f4..3d0741c 100644
--- a/packages/SystemUI/res/layout/window_magnification_settings_view.xml
+++ b/packages/SystemUI/res/layout/window_magnification_settings_view.xml
@@ -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>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 2cd2173..6596ed2 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -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">
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index d811d30..57c9918 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -403,15 +403,21 @@
         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 @@
         // 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);
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
index fb701ae..d9f5544 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
@@ -230,14 +230,6 @@
         }
     };
 
-    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 @@
 
     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 @@
             }
             return;
         }
+
         if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) {
             final Rect previousDraggableBounds = new Rect(mDraggableWindowBounds);
             mDraggableWindowBounds.set(getDraggableWindowBounds());
@@ -461,10 +462,7 @@
                     + mDraggableWindowBounds.top;
             return;
         }
-        if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) {
-            applyResourcesValuesWithDensityChanged();
-            return;
-        }
+
         if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) {
             updateAccessibilityWindowTitle();
             return;