Loading packages/SystemUI/res/drawable/ic_open_in_new_fullscreen.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ <shape android:shape="rectangle"> <solid android:color="@color/magnification_switch_button_color" /> <size android:width="40dp" android:height="40dp" /> android:width="48dp" android:height="48dp" /> </shape> </item> Loading packages/SystemUI/res/drawable/ic_open_in_new_window.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ <shape android:shape="rectangle"> <solid android:color="@color/magnification_switch_button_color" /> <size android:width="40dp" android:height="40dp" /> android:width="48dp" android:height="48dp" /> </shape> </item> Loading packages/SystemUI/res/values/dimens.xml +2 −2 Original line number Diff line number Diff line Loading @@ -1194,8 +1194,8 @@ <dimen name="magnification_frame_move_long">25dp</dimen> <dimen name="magnification_drag_view_size">38dp</dimen> <dimen name="magnification_controls_size">90dp</dimen> <dimen name="magnification_switch_button_size">32dp</dimen> <dimen name="magnification_switch_button_padding">8dp</dimen> <dimen name="magnification_switch_button_size">60dp</dimen> <dimen name="magnification_switch_button_padding">12dp</dimen> <dimen name="magnifier_left_right_controls_width">35dp</dimen> <dimen name="magnifier_left_right_controls_height">45dp</dimen> <dimen name="magnifier_up_down_controls_width">45dp</dimen> Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +20 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.pm.ActivityInfo; import android.graphics.PixelFormat; import android.graphics.PointF; import android.graphics.Rect; import android.os.Bundle; import android.os.UserHandle; import android.provider.Settings; Loading @@ -41,6 +42,8 @@ import android.widget.ImageView; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.R; import java.util.Collections; /** * Shows/hides a {@link android.widget.ImageView} on the screen and changes the values of * {@link Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE} when the UI is toggled. Loading Loading @@ -85,7 +88,6 @@ class MagnificationModeSwitch { mImageView = imageView; mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); mImageView.setOnTouchListener(this::onTouch); mImageView.setAccessibilityDelegate(new View.AccessibilityDelegate() { @Override Loading Loading @@ -138,6 +140,7 @@ class MagnificationModeSwitch { final int padding = mContext.getResources().getDimensionPixelSize( R.dimen.magnification_switch_button_padding); mImageView.setPadding(padding, padding, padding, padding); mImageView.setImageResource(getIconResId(mMagnificationMode)); } private boolean onTouch(View v, MotionEvent event) { Loading Loading @@ -205,6 +208,8 @@ class MagnificationModeSwitch { } if (!mIsVisible) { mWindowManager.addView(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); mIsVisible = true; mImageView.postOnAnimation(mFadeInAnimationTask); mUiTimeout = mAccessibilityManager.getRecommendedTimeoutMillis( Loading @@ -224,7 +229,11 @@ class MagnificationModeSwitch { void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) { applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); if (mIsVisible) { mWindowManager.updateViewLayout(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); } return; } if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { Loading Loading @@ -261,7 +270,6 @@ class MagnificationModeSwitch { ImageView imageView = new ImageView(context); imageView.setClickable(true); imageView.setFocusable(true); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setAlpha(0f); return imageView; } Loading @@ -288,4 +296,13 @@ class MagnificationModeSwitch { private static String getAccessibilityWindowTitle(Context context) { return context.getString(com.android.internal.R.string.android_system_label); } private void setSystemGestureExclusion() { mImageView.post(() -> { mImageView.setSystemGestureExclusionRects( Collections.singletonList( new Rect(0, 0, mImageView.getWidth(), mImageView.getHeight()))); }); } } packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +16 −1 Original line number Diff line number Diff line Loading @@ -142,6 +142,13 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertShowFadingAnimation(FADE_OUT_ALPHA); } @Test public void showButton_excludeSystemGestureArea() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW); verify(mSpyImageView).setSystemGestureExclusionRects(any(List.class)); } @Test public void showMagnificationButton_setA11yTimeout_postDelayedAnimationWithA11yTimeout() { final int a11yTimeout = 12345; Loading Loading @@ -178,14 +185,17 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { } @Test public void onConfigurationChanged_buttonIsShowing_setImageResource() { public void onConfigurationChanged_buttonIsShowing_updateResourcesAndLayout() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); resetAndStubMockImageViewAndAnimator(); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_DENSITY); verify(mSpyImageView).setPadding(anyInt(), anyInt(), anyInt(), anyInt()); verify(mSpyImageView).setImageResource( getIconResId(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN)); verify(mWindowManager).updateViewLayout(eq(mSpyImageView), any()); verify(mSpyImageView).setSystemGestureExclusionRects(any(List.class)); } @Test Loading Loading @@ -368,6 +378,11 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { private void resetAndStubMockImageViewAndAnimator() { resetAndStubMockAnimator(); Mockito.reset(mSpyImageView); doAnswer(invocation -> { final Runnable runnable = invocation.getArgument(0); runnable.run(); return null; }).when(mSpyImageView).post(any(Runnable.class)); doReturn(mViewPropertyAnimator).when(mSpyImageView).animate(); } Loading Loading
packages/SystemUI/res/drawable/ic_open_in_new_fullscreen.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ <shape android:shape="rectangle"> <solid android:color="@color/magnification_switch_button_color" /> <size android:width="40dp" android:height="40dp" /> android:width="48dp" android:height="48dp" /> </shape> </item> Loading
packages/SystemUI/res/drawable/ic_open_in_new_window.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ <shape android:shape="rectangle"> <solid android:color="@color/magnification_switch_button_color" /> <size android:width="40dp" android:height="40dp" /> android:width="48dp" android:height="48dp" /> </shape> </item> Loading
packages/SystemUI/res/values/dimens.xml +2 −2 Original line number Diff line number Diff line Loading @@ -1194,8 +1194,8 @@ <dimen name="magnification_frame_move_long">25dp</dimen> <dimen name="magnification_drag_view_size">38dp</dimen> <dimen name="magnification_controls_size">90dp</dimen> <dimen name="magnification_switch_button_size">32dp</dimen> <dimen name="magnification_switch_button_padding">8dp</dimen> <dimen name="magnification_switch_button_size">60dp</dimen> <dimen name="magnification_switch_button_padding">12dp</dimen> <dimen name="magnifier_left_right_controls_width">35dp</dimen> <dimen name="magnifier_left_right_controls_height">45dp</dimen> <dimen name="magnifier_up_down_controls_width">45dp</dimen> Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +20 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.pm.ActivityInfo; import android.graphics.PixelFormat; import android.graphics.PointF; import android.graphics.Rect; import android.os.Bundle; import android.os.UserHandle; import android.provider.Settings; Loading @@ -41,6 +42,8 @@ import android.widget.ImageView; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.R; import java.util.Collections; /** * Shows/hides a {@link android.widget.ImageView} on the screen and changes the values of * {@link Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE} when the UI is toggled. Loading Loading @@ -85,7 +88,6 @@ class MagnificationModeSwitch { mImageView = imageView; mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); mImageView.setOnTouchListener(this::onTouch); mImageView.setAccessibilityDelegate(new View.AccessibilityDelegate() { @Override Loading Loading @@ -138,6 +140,7 @@ class MagnificationModeSwitch { final int padding = mContext.getResources().getDimensionPixelSize( R.dimen.magnification_switch_button_padding); mImageView.setPadding(padding, padding, padding, padding); mImageView.setImageResource(getIconResId(mMagnificationMode)); } private boolean onTouch(View v, MotionEvent event) { Loading Loading @@ -205,6 +208,8 @@ class MagnificationModeSwitch { } if (!mIsVisible) { mWindowManager.addView(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); mIsVisible = true; mImageView.postOnAnimation(mFadeInAnimationTask); mUiTimeout = mAccessibilityManager.getRecommendedTimeoutMillis( Loading @@ -224,7 +229,11 @@ class MagnificationModeSwitch { void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) { applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); if (mIsVisible) { mWindowManager.updateViewLayout(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); } return; } if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { Loading Loading @@ -261,7 +270,6 @@ class MagnificationModeSwitch { ImageView imageView = new ImageView(context); imageView.setClickable(true); imageView.setFocusable(true); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setAlpha(0f); return imageView; } Loading @@ -288,4 +296,13 @@ class MagnificationModeSwitch { private static String getAccessibilityWindowTitle(Context context) { return context.getString(com.android.internal.R.string.android_system_label); } private void setSystemGestureExclusion() { mImageView.post(() -> { mImageView.setSystemGestureExclusionRects( Collections.singletonList( new Rect(0, 0, mImageView.getWidth(), mImageView.getHeight()))); }); } }
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +16 −1 Original line number Diff line number Diff line Loading @@ -142,6 +142,13 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertShowFadingAnimation(FADE_OUT_ALPHA); } @Test public void showButton_excludeSystemGestureArea() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW); verify(mSpyImageView).setSystemGestureExclusionRects(any(List.class)); } @Test public void showMagnificationButton_setA11yTimeout_postDelayedAnimationWithA11yTimeout() { final int a11yTimeout = 12345; Loading Loading @@ -178,14 +185,17 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { } @Test public void onConfigurationChanged_buttonIsShowing_setImageResource() { public void onConfigurationChanged_buttonIsShowing_updateResourcesAndLayout() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); resetAndStubMockImageViewAndAnimator(); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_DENSITY); verify(mSpyImageView).setPadding(anyInt(), anyInt(), anyInt(), anyInt()); verify(mSpyImageView).setImageResource( getIconResId(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN)); verify(mWindowManager).updateViewLayout(eq(mSpyImageView), any()); verify(mSpyImageView).setSystemGestureExclusionRects(any(List.class)); } @Test Loading Loading @@ -368,6 +378,11 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { private void resetAndStubMockImageViewAndAnimator() { resetAndStubMockAnimator(); Mockito.reset(mSpyImageView); doAnswer(invocation -> { final Runnable runnable = invocation.getArgument(0); runnable.run(); return null; }).when(mSpyImageView).post(any(Runnable.class)); doReturn(mViewPropertyAnimator).when(mSpyImageView).animate(); } Loading