Merge "Fallback magnification mode settings if window magnification feature is not supported" into tm-dev

This commit is contained in:
Minche Li
2022-03-25 02:24:01 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 5 deletions

View File

@@ -37,6 +37,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.RemoteCallbackList;
import android.provider.Settings;
@@ -123,8 +124,8 @@ class AccessibilityUserState {
private int mInteractiveUiTimeout = 0;
private int mLastSentClientState = -1;
/** {@code true} if the device config supports magnification area. */
private final boolean mSupportMagnificationArea;
/** {@code true} if the device config supports window magnification. */
private final boolean mSupportWindowMagnification;
// The magnification modes on displays.
private final SparseIntArray mMagnificationModes = new SparseIntArray();
// The magnification capabilities used to know magnification mode could be switched.
@@ -148,7 +149,7 @@ class AccessibilityUserState {
boolean isValidMagnificationModeLocked(int displayId) {
final int mode = getMagnificationModeLocked(displayId);
if (!mSupportMagnificationArea
if (!mSupportWindowMagnification
&& mode == Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW) {
return false;
}
@@ -170,8 +171,9 @@ class AccessibilityUserState {
R.color.accessibility_focus_highlight_color);
mFocusStrokeWidth = mFocusStrokeWidthDefaultValue;
mFocusColor = mFocusColorDefaultValue;
mSupportMagnificationArea = mContext.getResources().getBoolean(
R.bool.config_magnification_area);
mSupportWindowMagnification = mContext.getResources().getBoolean(
R.bool.config_magnification_area) && mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WINDOW_MAGNIFICATION);
}
boolean isHandlingAccessibilityEventsLocked() {

View File

@@ -21,6 +21,7 @@ import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_K
import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN;
import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HIDDEN;
import static android.accessibilityservice.AccessibilityService.SHOW_MODE_IGNORE_HARD_KEYBOARD;
import static android.content.pm.PackageManager.FEATURE_WINDOW_MAGNIFICATION;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
import static android.view.accessibility.AccessibilityManager.STATE_FLAG_ACCESSIBILITY_ENABLED;
@@ -42,6 +43,7 @@ import static org.mockito.Mockito.when;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Color;
import android.provider.Settings;
@@ -92,6 +94,8 @@ public class AccessibilityUserStateTest {
@Mock private AccessibilityUserState.ServiceInfoChangeListener mMockListener;
@Mock private PackageManager mMockPackageManager;
@Mock private Context mMockContext;
private MockContentResolver mMockResolver;
@@ -113,6 +117,8 @@ public class AccessibilityUserStateTest {
when(mMockServiceInfo.getComponentName()).thenReturn(COMPONENT_NAME);
when(mMockConnection.getServiceInfo()).thenReturn(mMockServiceInfo);
when(mMockContext.getResources()).thenReturn(resources);
when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
when(mMockPackageManager.hasSystemFeature(FEATURE_WINDOW_MAGNIFICATION)).thenReturn(true);
mFocusStrokeWidthDefaultValue =
resources.getDimensionPixelSize(R.dimen.accessibility_focus_highlight_stroke_width);