Merge "Hide fullscreen button in partial only mode" into udc-dev am: edbdb9776e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23087459 Change-Id: I289f91ef4893529be774a9ba61b25ef9ff133cf5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -87,19 +87,14 @@ public class MagnificationSettingsController implements ComponentCallbacks {
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows magnification settings panel {@link WindowMagnificationSettings}. The panel ui would be
|
||||
* various for different magnification mode.
|
||||
*
|
||||
* @param mode The magnification mode
|
||||
* @see android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW
|
||||
* @see android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN
|
||||
* Shows magnification settings panel {@link WindowMagnificationSettings}.
|
||||
*/
|
||||
void showMagnificationSettings(int mode) {
|
||||
void showMagnificationSettings() {
|
||||
if (!mWindowMagnificationSettings.isSettingPanelShowing()) {
|
||||
onConfigurationChanged(mContext.getResources().getConfiguration());
|
||||
mContext.registerComponentCallbacks(this);
|
||||
}
|
||||
mWindowMagnificationSettings.showSettingPanel(mode);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
}
|
||||
|
||||
void closeMagnificationSettings() {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.systemui.accessibility;
|
||||
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
|
||||
|
||||
@@ -169,8 +168,7 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
|
||||
|
||||
mModeSwitchesController.setClickListenerDelegate(
|
||||
displayId -> mHandler.post(() -> {
|
||||
showMagnificationSettingsPanel(displayId,
|
||||
ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
|
||||
showMagnificationSettingsPanel(displayId);
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -253,11 +251,11 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
|
||||
}
|
||||
|
||||
@MainThread
|
||||
void showMagnificationSettingsPanel(int displayId, int mode) {
|
||||
void showMagnificationSettingsPanel(int displayId) {
|
||||
final MagnificationSettingsController magnificationSettingsController =
|
||||
mMagnificationSettingsSupplier.get(displayId);
|
||||
if (magnificationSettingsController != null) {
|
||||
magnificationSettingsController.showMagnificationSettings(mode);
|
||||
magnificationSettingsController.showMagnificationSettings();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,7 +332,7 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
|
||||
@Override
|
||||
public void onClickSettingsButton(int displayId) {
|
||||
mHandler.post(() -> {
|
||||
showMagnificationSettingsPanel(displayId, ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
showMagnificationSettingsPanel(displayId);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.accessibility;
|
||||
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
|
||||
@@ -27,6 +28,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.database.ContentObserver;
|
||||
import android.graphics.Insets;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.Rect;
|
||||
@@ -101,8 +103,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
private static final float A11Y_SCALE_MIN_VALUE = 1.0f;
|
||||
private WindowMagnificationSettingsCallback mCallback;
|
||||
|
||||
// the magnification mode that triggers showing the panel
|
||||
private int mTriggeringMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
|
||||
private ContentObserver mMagnificationCapabilityObserver;
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef({
|
||||
@@ -142,6 +143,16 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
|
||||
mGestureDetector = new MagnificationGestureDetector(context,
|
||||
context.getMainThreadHandler(), this);
|
||||
|
||||
mMagnificationCapabilityObserver = new ContentObserver(
|
||||
mContext.getMainThreadHandler()) {
|
||||
@Override
|
||||
public void onChange(boolean selfChange) {
|
||||
mSettingView.post(() -> {
|
||||
updateUIControlsIfNeeded();
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private class ZoomSeekbarChangeListener implements SeekBar.OnSeekBarChangeListener {
|
||||
@@ -257,7 +268,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
@Override
|
||||
public boolean onFinish(float xOffset, float yOffset) {
|
||||
if (!mSingleTapDetected) {
|
||||
showSettingPanel(mTriggeringMode);
|
||||
showSettingPanel();
|
||||
}
|
||||
mSingleTapDetected = false;
|
||||
return true;
|
||||
@@ -285,7 +296,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
return;
|
||||
}
|
||||
|
||||
// Reset button status.
|
||||
// Unregister observer before removing view
|
||||
mSecureSettings.unregisterContentObserver(mMagnificationCapabilityObserver);
|
||||
mWindowManager.removeView(mSettingView);
|
||||
mIsVisible = false;
|
||||
if (resetPosition) {
|
||||
@@ -297,16 +309,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
mCallback.onSettingsPanelVisibilityChanged(/* shown= */ false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows magnification settings panel. The panel ui would be various for
|
||||
* different magnification mode.
|
||||
*
|
||||
* @param mode The magnification mode
|
||||
* @see android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW
|
||||
* @see android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN
|
||||
*/
|
||||
public void showSettingPanel(int mode) {
|
||||
showSettingPanel(mode, true);
|
||||
public void showSettingPanel() {
|
||||
showSettingPanel(true);
|
||||
}
|
||||
|
||||
public boolean isSettingPanelShowing() {
|
||||
@@ -322,18 +326,15 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows magnification panel for set magnification.
|
||||
* Shows the panel for magnification settings.
|
||||
* When the panel is going to be visible by calling this method, the layout position can be
|
||||
* reset depending on the flag.
|
||||
*
|
||||
* @param mode The magnification mode
|
||||
* @param resetPosition if the button position needs be reset
|
||||
* @param resetPosition if the panel position needs to be reset
|
||||
*/
|
||||
private void showSettingPanel(int mode, boolean resetPosition) {
|
||||
private void showSettingPanel(boolean resetPosition) {
|
||||
if (!mIsVisible) {
|
||||
updateUIControlsIfNeed(mode);
|
||||
mTriggeringMode = mode;
|
||||
|
||||
updateUIControlsIfNeeded();
|
||||
if (resetPosition) {
|
||||
mDraggableWindowBounds.set(getDraggableWindowBounds());
|
||||
mParams.x = mDraggableWindowBounds.right;
|
||||
@@ -342,6 +343,11 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
|
||||
mWindowManager.addView(mSettingView, mParams);
|
||||
|
||||
mSecureSettings.registerContentObserverForUser(
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
|
||||
mMagnificationCapabilityObserver,
|
||||
UserHandle.USER_CURRENT);
|
||||
|
||||
// Exclude magnification switch button from system gesture area.
|
||||
setSystemGestureExclusion();
|
||||
mIsVisible = true;
|
||||
@@ -359,35 +365,74 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
mContext.registerReceiver(mScreenOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
|
||||
}
|
||||
|
||||
private void updateUIControlsIfNeed(int mode) {
|
||||
if (mode == mTriggeringMode) {
|
||||
return;
|
||||
}
|
||||
private int getMagnificationMode() {
|
||||
return mSecureSettings.getIntForUser(
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
|
||||
ACCESSIBILITY_MAGNIFICATION_MODE_NONE,
|
||||
UserHandle.USER_CURRENT);
|
||||
}
|
||||
|
||||
private int getMagnificationCapability() {
|
||||
return mSecureSettings.getIntForUser(
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
|
||||
ACCESSIBILITY_MAGNIFICATION_MODE_NONE,
|
||||
UserHandle.USER_CURRENT);
|
||||
}
|
||||
|
||||
private void updateUIControlsIfNeeded() {
|
||||
int capability = getMagnificationCapability();
|
||||
|
||||
int selectedButtonIndex = mLastSelectedButtonIndex;
|
||||
switch (mode) {
|
||||
switch (capability) {
|
||||
case ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW:
|
||||
mEditButton.setVisibility(View.VISIBLE);
|
||||
mAllowDiagonalScrollingView.setVisibility(View.VISIBLE);
|
||||
mFullScreenButton.setVisibility(View.GONE);
|
||||
if (selectedButtonIndex == MagnificationSize.FULLSCREEN) {
|
||||
selectedButtonIndex = MagnificationSize.NONE;
|
||||
}
|
||||
break;
|
||||
|
||||
case ACCESSIBILITY_MAGNIFICATION_MODE_ALL:
|
||||
int mode = getMagnificationMode();
|
||||
mFullScreenButton.setVisibility(View.VISIBLE);
|
||||
if (mode == ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN) {
|
||||
// set the edit button visibility to View.INVISIBLE to keep the height, to
|
||||
// prevent the size title from too close to the size buttons
|
||||
mEditButton.setVisibility(View.INVISIBLE);
|
||||
mAllowDiagonalScrollingView.setVisibility(View.GONE);
|
||||
// force the fullscreen button showing
|
||||
selectedButtonIndex = MagnificationSize.FULLSCREEN;
|
||||
} else { // mode = ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW
|
||||
mEditButton.setVisibility(View.VISIBLE);
|
||||
mAllowDiagonalScrollingView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
break;
|
||||
|
||||
case ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN:
|
||||
// set the edit button visibility to View.INVISIBLE to keep the height, to prevent
|
||||
// the size title from too close to the size buttons
|
||||
// We will never fall into this case since we never show settings panel when
|
||||
// capability equals to ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN.
|
||||
// Currently, the case follows the UI controls when capability equals to
|
||||
// ACCESSIBILITY_MAGNIFICATION_MODE_ALL and mode equals to
|
||||
// ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, but we could also consider to
|
||||
// remove the whole icon button selections int the future since they are no use
|
||||
// for fullscreen only capability.
|
||||
|
||||
mFullScreenButton.setVisibility(View.VISIBLE);
|
||||
// set the edit button visibility to View.INVISIBLE to keep the height, to
|
||||
// prevent the size title from too close to the size buttons
|
||||
mEditButton.setVisibility(View.INVISIBLE);
|
||||
mAllowDiagonalScrollingView.setVisibility(View.GONE);
|
||||
// force the fullscreen button showing
|
||||
selectedButtonIndex = MagnificationSize.FULLSCREEN;
|
||||
break;
|
||||
|
||||
case ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW:
|
||||
mEditButton.setVisibility(View.VISIBLE);
|
||||
mAllowDiagonalScrollingView.setVisibility(View.VISIBLE);
|
||||
if (selectedButtonIndex == MagnificationSize.FULLSCREEN) {
|
||||
selectedButtonIndex = MagnificationSize.NONE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
updateSelectedButton(selectedButtonIndex);
|
||||
mSettingView.requestLayout();
|
||||
}
|
||||
|
||||
private final BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
|
||||
@@ -474,11 +519,11 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
|
||||
|
||||
mParams.accessibilityTitle = getAccessibilityWindowTitle(mContext);
|
||||
|
||||
boolean showSettingPanelAfterThemeChange = mIsVisible;
|
||||
boolean showSettingPanelAfterConfigChange = mIsVisible;
|
||||
hideSettingPanel(/* resetPosition= */ false);
|
||||
inflateView();
|
||||
if (showSettingPanelAfterThemeChange) {
|
||||
showSettingPanel(mTriggeringMode, /* resetPosition= */ false);
|
||||
if (showSettingPanelAfterConfigChange) {
|
||||
showSettingPanel(/* resetPosition= */ false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.systemui.accessibility;
|
||||
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -74,10 +73,9 @@ public class MagnificationSettingsControllerTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testShowSettingsPanel() {
|
||||
final int mode = ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
|
||||
mMagnificationSettingsController.showMagnificationSettings(mode);
|
||||
mMagnificationSettingsController.showMagnificationSettings();
|
||||
|
||||
verify(mWindowMagnificationSettings).showSettingPanel(eq(mode));
|
||||
verify(mWindowMagnificationSettings).showSettingPanel();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
|
||||
package com.android.systemui.accessibility;
|
||||
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
|
||||
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -24,12 +27,17 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static junit.framework.Assert.assertEquals;
|
||||
import static junit.framework.Assert.assertNotNull;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.annotation.IdRes;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.database.ContentObserver;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
@@ -102,7 +110,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void showSettingPanel_hasAccessibilityWindowTitle() {
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
final WindowManager.LayoutParams layoutPrams =
|
||||
mWindowManager.getLayoutParamsFromAttachedView();
|
||||
@@ -114,7 +125,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void showSettingPanel_windowMode_showEditButtonAndDiagonalView() {
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
final Button editButton = getInternalView(R.id.magnifier_edit_button);
|
||||
assertEquals(editButton.getVisibility(), View.VISIBLE);
|
||||
@@ -125,7 +139,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void showSettingPanel_fullScreenMode_hideEditButtonAndDiagonalView() {
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
final Button editButton = getInternalView(R.id.magnifier_edit_button);
|
||||
assertEquals(editButton.getVisibility(), View.INVISIBLE);
|
||||
@@ -134,10 +151,23 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
assertEquals(diagonalView.getVisibility(), View.GONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showSettingPanel_windowOnlyCapability_hideFullscreenButton() {
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
final View fullscreenButton = getInternalView(R.id.magnifier_full_button);
|
||||
assertThat(fullscreenButton.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void performClick_smallSizeButton_changeMagnifierSizeSmallAndSwitchToWindowMode() {
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
verifyOnSetMagnifierSizeAndOnModeSwitch(
|
||||
R.id.magnifier_small_button, MAGNIFICATION_SIZE_SMALL);
|
||||
@@ -145,8 +175,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void performClick_mediumSizeButton_changeMagnifierSizeMediumAndSwitchToWindowMode() {
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
verifyOnSetMagnifierSizeAndOnModeSwitch(
|
||||
R.id.magnifier_medium_button, MAGNIFICATION_SIZE_MEDIUM);
|
||||
@@ -154,8 +186,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void performClick_largeSizeButton_changeMagnifierSizeLargeAndSwitchToWindowMode() {
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
verifyOnSetMagnifierSizeAndOnModeSwitch(
|
||||
R.id.magnifier_large_button, MAGNIFICATION_SIZE_LARGE);
|
||||
@@ -178,8 +212,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
View fullScreenModeButton = getInternalView(R.id.magnifier_full_button);
|
||||
getInternalView(R.id.magnifier_panel_view);
|
||||
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
// Perform click
|
||||
fullScreenModeButton.performClick();
|
||||
@@ -192,8 +228,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
public void performClick_editButton_setEditMagnifierSizeMode() {
|
||||
View editButton = getInternalView(R.id.magnifier_edit_button);
|
||||
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
// Perform click
|
||||
editButton.performClick();
|
||||
@@ -208,8 +246,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
getInternalView(R.id.magnifier_horizontal_lock_switch);
|
||||
final boolean currentCheckedState = diagonalScrollingSwitch.isChecked();
|
||||
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
// Perform click
|
||||
diagonalScrollingSwitch.performClick();
|
||||
@@ -219,8 +259,10 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void onConfigurationChanged_selectedButtonIsStillSelected() {
|
||||
// Open view
|
||||
mWindowMagnificationSettings.showSettingPanel(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
View magnifierMediumButton = getInternalView(R.id.magnifier_medium_button);
|
||||
magnifierMediumButton.performClick();
|
||||
|
||||
@@ -232,9 +274,46 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
|
||||
assertThat(magnifierMediumButton.isSelected()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void showSettingsPanel_observerRegistered() {
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
|
||||
verify(mSecureSettings).registerContentObserverForUser(
|
||||
eq(ACCESSIBILITY_MAGNIFICATION_CAPABILITY),
|
||||
any(ContentObserver.class),
|
||||
eq(UserHandle.USER_CURRENT));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hideSettingsPanel_observerUnregistered() {
|
||||
setupMagnificationCapabilityAndMode(
|
||||
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
|
||||
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
|
||||
|
||||
mWindowMagnificationSettings.showSettingPanel();
|
||||
mWindowMagnificationSettings.hideSettingPanel();
|
||||
|
||||
verify(mSecureSettings).unregisterContentObserver(any(ContentObserver.class));
|
||||
}
|
||||
|
||||
private <T extends View> T getInternalView(@IdRes int idRes) {
|
||||
T view = mSettingView.findViewById(idRes);
|
||||
assertNotNull(view);
|
||||
return view;
|
||||
}
|
||||
|
||||
private void setupMagnificationCapabilityAndMode(int capability, int mode) {
|
||||
when(mSecureSettings.getIntForUser(
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
|
||||
ACCESSIBILITY_MAGNIFICATION_MODE_NONE,
|
||||
UserHandle.USER_CURRENT)).thenReturn(capability);
|
||||
when(mSecureSettings.getIntForUser(
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
|
||||
ACCESSIBILITY_MAGNIFICATION_MODE_NONE,
|
||||
UserHandle.USER_CURRENT)).thenReturn(mode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,8 +184,7 @@ public class WindowMagnificationTest extends SysuiTestCase {
|
||||
mWindowMagnification.mWindowMagnifierCallback.onClickSettingsButton(TEST_DISPLAY);
|
||||
waitForIdleSync();
|
||||
|
||||
verify(mMagnificationSettingsController).showMagnificationSettings(
|
||||
eq(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW));
|
||||
verify(mMagnificationSettingsController).showMagnificationSettings();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user