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