From d277906dee415ce34b4c41bbbd5cc9c4abd492b0 Mon Sep 17 00:00:00 2001 From: mincheli Date: Tue, 2 Jun 2020 11:55:01 +0800 Subject: [PATCH] Updates the icon of magnification button by magnification mode When the current magnification mode is fullscreen mode, magnification button will use "open in new window magnification" icon. It means that the current magnifion mode will be changed to window mode when clicking the button in full screen mode. And vice versa for the case that the current mode is window mode. Bug: 145780606 Test: none Change-Id: I4a4b082465546135afa36f1751bcf4c85e78b1c4 --- .../res/drawable/ic_open_in_new_window.xml | 77 +++++++++++++++++++ .../accessibility/ModeSwitchesController.java | 20 ++--- 2 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_open_in_new_window.xml diff --git a/packages/SystemUI/res/drawable/ic_open_in_new_window.xml b/packages/SystemUI/res/drawable/ic_open_in_new_window.xml new file mode 100644 index 0000000000000..5f571cfa01974 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_open_in_new_window.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java b/packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java index e3d8d1086d48d..812c98be9fbfd 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java +++ b/packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java @@ -145,12 +145,10 @@ public class ModeSwitchesController { void showButton(int mode) { if (mImageView == null) { - createView(); + createView(mode); mWindowManager.addView(mImageView, mParams); } else if (mMagnificationMode != mode) { - // TODO(b/145780606): wait for designer provide icon asset for window mode. - final int resId = R.drawable.ic_open_in_new_fullscreen; - mImageView.setImageResource(resId); + mImageView.setImageResource(getIconResId(mode)); } mMagnificationMode = mode; @@ -167,17 +165,13 @@ public class ModeSwitchesController { () -> removeButton()); } - private void createView() { - // TODO(b/145780606): wait for designer provide icon asset for window mode. - final int resId = R.drawable.ic_open_in_new_fullscreen; + private void createView(int mode) { mImageView = new ImageView(mContext); - mImageView.setImageResource(resId); + mImageView.setImageResource(getIconResId(mode)); mImageView.setClickable(true); mImageView.setFocusable(true); mImageView.setPadding(mPadding, mPadding, mPadding, mPadding); mImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - // TODO(b/145780606): switch magnification mode between full-screen and window by - // clicking the button. mImageView.setOnClickListener( view -> { if (view != null) { @@ -188,6 +182,12 @@ public class ModeSwitchesController { }); } + private int getIconResId(int mode) { + return (mode == Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN) + ? R.drawable.ic_open_in_new_window + : R.drawable.ic_open_in_new_fullscreen; + } + private void toggleMagnificationMode() { final int newMode = mMagnificationMode ^ Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;