Merge changes I0bae5a07,I7c9a61af,I372e0abc into main
* changes:
fix(fullscreen magnification): Create connecting methods between SystemServer and SystemUI for fullscreen mode
fix(fullscreen magnification): add flag for drawing fullscreen magnification border in SystemUI
fix(fullscreen magnification): Create the flag for fixing fullscreen magnification border
diff --git a/core/java/android/view/accessibility/IMagnificationConnection.aidl b/core/java/android/view/accessibility/IMagnificationConnection.aidl
index aae51ab..450cf755 100644
--- a/core/java/android/view/accessibility/IMagnificationConnection.aidl
+++ b/core/java/android/view/accessibility/IMagnificationConnection.aidl
@@ -124,4 +124,9 @@
* @param scale magnification scale.
*/
void onUserMagnificationScaleChanged(int userId, int displayId, float scale);
+
+ /**
+ * Notify the changes of fullscreen magnification activation on the specified display
+ */
+ void onFullscreenMagnificationActivationChanged(int displayId, boolean activated);
}
diff --git a/core/java/android/window/flags/accessibility.aconfig b/core/java/android/window/flags/accessibility.aconfig
index d467be6..814c620 100644
--- a/core/java/android/window/flags/accessibility.aconfig
+++ b/core/java/android/window/flags/accessibility.aconfig
@@ -5,4 +5,11 @@
namespace: "accessibility"
description: "The flag controls whether the intersection check for non-magnifiable windows is needed when onWindowTransition,"
bug: "312624253"
+}
+
+flag {
+ name: "magnification_always_draw_fullscreen_border"
+ namespace: "accessibility"
+ description: "Always draw fullscreen orange border in fullscreen magnification"
+ bug: "291891390"
}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/Magnification.java b/packages/SystemUI/src/com/android/systemui/accessibility/Magnification.java
index d2fda4c..88fa2de 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/Magnification.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/Magnification.java
@@ -273,6 +273,10 @@
}
}
+ void onFullscreenMagnificationActivationChanged(int displayId, boolean activated) {
+ // Do nothing
+ }
+
@MainThread
void toggleSettingsPanelVisibility(int displayId) {
final MagnificationSettingsController magnificationSettingsController =
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationConnectionImpl.java b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationConnectionImpl.java
index ba943b0..b5f3aef 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationConnectionImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationConnectionImpl.java
@@ -47,6 +47,12 @@
}
@Override
+ public void onFullscreenMagnificationActivationChanged(int displayId, boolean activated) {
+ mHandler.post(() -> mMagnification
+ .onFullscreenMagnificationActivationChanged(displayId, activated));
+ }
+
+ @Override
public void enableWindowMagnification(int displayId, float scale, float centerX, float centerY,
float magnificationFrameOffsetRatioX, float magnificationFrameOffsetRatioY,
IRemoteMagnificationAnimationCallback callback) {
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 46db624..43c018c 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -3460,13 +3460,20 @@
if (!mMagnificationController.supportWindowMagnification()) {
return;
}
- final boolean connect = (userState.isShortcutMagnificationEnabledLocked()
+
+ final boolean shortcutEnabled = (userState.isShortcutMagnificationEnabledLocked()
|| userState.isMagnificationSingleFingerTripleTapEnabledLocked()
|| (Flags.enableMagnificationMultipleFingerMultipleTapGesture()
- && userState.isMagnificationTwoFingerTripleTapEnabledLocked()))
- && (userState.getMagnificationCapabilitiesLocked()
- != Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN)
+ && userState.isMagnificationTwoFingerTripleTapEnabledLocked()));
+
+ final boolean createConnectionForCurrentCapability =
+ com.android.window.flags.Flags.magnificationAlwaysDrawFullscreenBorder()
+ || (userState.getMagnificationCapabilitiesLocked()
+ != Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
+
+ final boolean connect = (shortcutEnabled && createConnectionForCurrentCapability)
|| userHasMagnificationServicesLocked(userState);
+
getMagnificationConnectionManager().requestConnection(connect);
}
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionManager.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionManager.java
index e11c36a..bc14342 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionManager.java
@@ -674,6 +674,23 @@
}
/**
+ * Notify Fullscreen magnification activation changes.
+ */
+ public boolean onFullscreenMagnificationActivationChanged(int displayId, boolean activated) {
+ synchronized (mLock) {
+ waitForConnectionIfNeeded();
+ if (mConnectionWrapper == null) {
+ Slog.w(TAG,
+ "onFullscreenMagnificationActivationChanged mConnectionWrapper is null. "
+ + "mConnectionState=" + connectionStateToString(mConnectionState));
+ return false;
+ }
+ return mConnectionWrapper
+ .onFullscreenMagnificationActivationChanged(displayId, activated);
+ }
+ }
+
+ /**
* Calculates the number of fingers in the window.
*
* @param displayId The logical display id.
@@ -1267,15 +1284,7 @@
float centerY, float magnificationFrameOffsetRatioX,
float magnificationFrameOffsetRatioY,
MagnificationAnimationCallback animationCallback) {
- // Wait for the connection with a timeout.
- final long endMillis = SystemClock.uptimeMillis() + WAIT_CONNECTION_TIMEOUT_MILLIS;
- while (mConnectionState == CONNECTING && (SystemClock.uptimeMillis() < endMillis)) {
- try {
- mLock.wait(endMillis - SystemClock.uptimeMillis());
- } catch (InterruptedException ie) {
- /* ignore */
- }
- }
+ waitForConnectionIfNeeded();
if (mConnectionWrapper == null) {
Slog.w(TAG,
"enableWindowMagnificationInternal mConnectionWrapper is null. "
@@ -1317,4 +1326,16 @@
return mConnectionWrapper != null && mConnectionWrapper.moveWindowMagnifierToPosition(
displayId, positionX, positionY, animationCallback);
}
+
+ private void waitForConnectionIfNeeded() {
+ // Wait for the connection with a timeout.
+ final long endMillis = SystemClock.uptimeMillis() + WAIT_CONNECTION_TIMEOUT_MILLIS;
+ while (mConnectionState == CONNECTING && (SystemClock.uptimeMillis() < endMillis)) {
+ try {
+ mLock.wait(endMillis - SystemClock.uptimeMillis());
+ } catch (InterruptedException ie) {
+ /* ignore */
+ }
+ }
+ }
}
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionWrapper.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionWrapper.java
index db5b313..f6fb24f 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionWrapper.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationConnectionWrapper.java
@@ -58,6 +58,22 @@
mConnection.asBinder().linkToDeath(deathRecipient, 0);
}
+ boolean onFullscreenMagnificationActivationChanged(int displayId, boolean activated) {
+ if (mTrace.isA11yTracingEnabledForTypes(FLAGS_MAGNIFICATION_CONNECTION)) {
+ mTrace.logTrace(TAG + ".onFullscreenMagnificationActivationChanged",
+ FLAGS_MAGNIFICATION_CONNECTION);
+ }
+ try {
+ mConnection.onFullscreenMagnificationActivationChanged(displayId, activated);
+ } catch (RemoteException e) {
+ if (DBG) {
+ Slog.e(TAG, "Error calling onFullscreenMagnificationActivationChanged");
+ }
+ return false;
+ }
+ return true;
+ }
+
boolean enableWindowMagnification(int displayId, float scale, float centerX, float centerY,
float magnificationFrameOffsetRatioX, float magnificationFrameOffsetRatioY,
@Nullable MagnificationAnimationCallback callback) {
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
index 52e123a..0d5fd14 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
@@ -50,6 +50,7 @@
import com.android.server.LocalServices;
import com.android.server.accessibility.AccessibilityManagerService;
import com.android.server.wm.WindowManagerInternal;
+import com.android.window.flags.Flags;
import java.util.concurrent.Executor;
@@ -586,6 +587,11 @@
@Override
public void onFullScreenMagnificationActivationState(int displayId, boolean activated) {
+ if (Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ getMagnificationConnectionManager()
+ .onFullscreenMagnificationActivationChanged(displayId, activated);
+ }
+
if (activated) {
synchronized (mLock) {
mFullScreenModeEnabledTimeArray.put(displayId, SystemClock.uptimeMillis());
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java
index 44a0547..d08e272 100644
--- a/services/core/java/com/android/server/wm/AccessibilityController.java
+++ b/services/core/java/com/android/server/wm/AccessibilityController.java
@@ -304,9 +304,9 @@
Surface forceShowMagnifierSurface(int displayId) {
final DisplayMagnifier displayMagnifier = mDisplayMagnifiers.get(displayId);
if (displayMagnifier != null) {
- displayMagnifier.mMagnifedViewport.mWindow.setAlpha(DisplayMagnifier.MagnifiedViewport
+ displayMagnifier.mMagnifiedViewport.mWindow.setAlpha(DisplayMagnifier.MagnifiedViewport
.ViewportWindow.AnimationController.MAX_ALPHA);
- return displayMagnifier.mMagnifedViewport.mWindow.mSurface;
+ return displayMagnifier.mMagnifiedViewport.mWindow.mSurface;
}
return null;
}
@@ -463,6 +463,10 @@
}
void drawMagnifiedRegionBorderIfNeeded(int displayId) {
+ if (Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ return;
+ }
+
if (mAccessibilityTracing.isTracingEnabled(FLAGS_MAGNIFICATION_CALLBACK)) {
mAccessibilityTracing.logTrace(
TAG + ".drawMagnifiedRegionBorderIfNeeded",
@@ -614,7 +618,7 @@
private final Context mDisplayContext;
private final WindowManagerService mService;
- private final MagnifiedViewport mMagnifedViewport;
+ private final MagnifiedViewport mMagnifiedViewport;
private final Handler mHandler;
private final DisplayContent mDisplayContent;
private final Display mDisplay;
@@ -649,7 +653,8 @@
mDisplayContent = displayContent;
mDisplay = display;
mHandler = new MyHandler(mService.mH.getLooper());
- mMagnifedViewport = new MagnifiedViewport();
+ mMagnifiedViewport = Flags.magnificationAlwaysDrawFullscreenBorder()
+ ? null : new MagnifiedViewport();
mAccessibilityTracing =
AccessibilityController.getAccessibilityControllerInternal(mService);
mLongAnimationDuration = mDisplayContext.getResources().getInteger(
@@ -692,7 +697,9 @@
mMagnificationSpec.clear();
}
- mMagnifedViewport.setShowMagnifiedBorderIfNeeded();
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.setShowMagnifiedBorderIfNeeded();
+ }
}
void setFullscreenMagnificationActivated(boolean activated) {
@@ -701,8 +708,10 @@
FLAGS_MAGNIFICATION_CALLBACK, "activated=" + activated);
}
mIsFullscreenMagnificationActivated = activated;
- mMagnifedViewport.setMagnifiedRegionBorderShown(activated, true);
- mMagnifedViewport.showMagnificationBoundsIfNeeded();
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.setMagnifiedRegionBorderShown(activated, true);
+ mMagnifiedViewport.showMagnificationBoundsIfNeeded();
+ }
}
boolean isFullscreenMagnificationActivated() {
@@ -737,7 +746,9 @@
}
recomputeBounds();
- mMagnifedViewport.onDisplaySizeChanged();
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.onDisplaySizeChanged();
+ }
mHandler.sendEmptyMessage(MyHandler.MESSAGE_NOTIFY_DISPLAY_SIZE_CHANGED);
}
@@ -901,7 +912,10 @@
if (mAccessibilityTracing.isTracingEnabled(FLAGS_MAGNIFICATION_CALLBACK)) {
mAccessibilityTracing.logTrace(LOG_TAG + ".destroy", FLAGS_MAGNIFICATION_CALLBACK);
}
- mMagnifedViewport.destroyWindow();
+
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.destroyWindow();
+ }
}
void drawMagnifiedRegionBorderIfNeeded() {
@@ -909,7 +923,10 @@
mAccessibilityTracing.logTrace(LOG_TAG + ".drawMagnifiedRegionBorderIfNeeded",
FLAGS_MAGNIFICATION_CALLBACK);
}
- mMagnifedViewport.drawWindowIfNeeded();
+
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.drawWindowIfNeeded();
+ }
}
void recomputeBounds() {
@@ -1006,14 +1023,16 @@
}
visibleWindows.clear();
- mMagnifedViewport.intersectWithDrawBorderInset(screenWidth, screenHeight);
-
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.intersectWithDrawBorderInset(screenWidth, screenHeight);
+ }
final boolean magnifiedChanged =
!mOldMagnificationRegion.equals(mMagnificationRegion);
if (magnifiedChanged) {
- mMagnifedViewport.updateBorderDrawingStatus(screenWidth, screenHeight);
-
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.updateBorderDrawingStatus(screenWidth, screenHeight);
+ }
mOldMagnificationRegion.set(mMagnificationRegion);
final SomeArgs args = SomeArgs.obtain();
args.arg1 = Region.obtain(mMagnificationRegion);
@@ -1070,7 +1089,9 @@
}
void dump(PrintWriter pw, String prefix) {
- mMagnifedViewport.dump(pw, prefix);
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.dump(pw, prefix);
+ }
}
private final class MagnifiedViewport {
@@ -1079,7 +1100,7 @@
private final int mHalfBorderWidth;
private final int mDrawBorderInset;
- private final ViewportWindow mWindow;
+ @Nullable private final ViewportWindow mWindow;
private boolean mFullRedrawNeeded;
@@ -1138,9 +1159,9 @@
void onDisplaySizeChanged() {
// If fullscreen magnification is activated, hide the border immediately so
// the user does not see strange artifacts during display size changed caused by
- // rotation or folding/unfolding the device. In the rotation case, the screenshot
- // used for rotation already has the border. After the rotation is complete
- // we will show the border.
+ // rotation or folding/unfolding the device. In the rotation case, the
+ // screenshot used for rotation already has the border. After the rotation is
+ // completed we will show the border.
if (isFullscreenMagnificationActivated()) {
setMagnifiedRegionBorderShown(false, false);
final long delay = (long) (mLongAnimationDuration
@@ -1173,6 +1194,8 @@
mWindow.dump(pw, prefix);
}
+ // TODO(291891390): Remove this class when we clean up the flag
+ // magnificationAlwaysDrawFullscreenBorder
private final class ViewportWindow implements Runnable {
private static final String SURFACE_TITLE = "Magnification Overlay";
@@ -1467,6 +1490,9 @@
public static final int MESSAGE_NOTIFY_MAGNIFICATION_REGION_CHANGED = 1;
public static final int MESSAGE_NOTIFY_USER_CONTEXT_CHANGED = 3;
public static final int MESSAGE_NOTIFY_DISPLAY_SIZE_CHANGED = 4;
+
+ // TODO(291891390): Remove this field when we clean up the flag
+ // magnificationAlwaysDrawFullscreenBorder
public static final int MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED = 5;
public static final int MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED = 6;
@@ -1495,7 +1521,9 @@
case MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED : {
synchronized (mService.mGlobalLock) {
if (isFullscreenMagnificationActivated()) {
- mMagnifedViewport.setMagnifiedRegionBorderShown(true, true);
+ if (!Flags.magnificationAlwaysDrawFullscreenBorder()) {
+ mMagnifiedViewport.setMagnifiedRegionBorderShown(true, true);
+ }
mService.scheduleAnimationLocked();
}
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionManagerTest.java
index 009bfb7..87fe6cf 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionManagerTest.java
@@ -813,6 +813,18 @@
anyBoolean());
}
+ @Test
+ public void onFullscreenMagnificationActivationChanged_hasConnection_notifyActivatedState()
+ throws RemoteException {
+ mMagnificationConnectionManager.setConnection(mMockConnection.getConnection());
+
+ mMagnificationConnectionManager
+ .onFullscreenMagnificationActivationChanged(TEST_DISPLAY, /* activated= */ true);
+
+ verify(mMockConnection.getConnection())
+ .onFullscreenMagnificationActivationChanged(eq(TEST_DISPLAY), eq(true));
+ }
+
private MotionEvent generatePointersDownEvent(PointF[] pointersLocation) {
final int len = pointersLocation.length;
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionWrapperTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionWrapperTest.java
index 07f3036..2120b2e 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionWrapperTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationConnectionWrapperTest.java
@@ -131,6 +131,14 @@
}
@Test
+ public void onFullscreenMagnificationActivationChanged() throws RemoteException {
+ mConnectionWrapper
+ .onFullscreenMagnificationActivationChanged(TEST_DISPLAY, /* activated= */ true);
+ verify(mConnection)
+ .onFullscreenMagnificationActivationChanged(eq(TEST_DISPLAY), eq(true));
+ }
+
+ @Test
public void setMirrorWindowCallback() throws RemoteException {
mConnectionWrapper.setConnectionCallback(mCallback);
verify(mConnection).setConnectionCallback(mCallback);
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
index a0c4b5e..1a51c45 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
@@ -53,6 +53,10 @@
import android.os.Looper;
import android.os.RemoteException;
import android.os.UserHandle;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.Settings;
import android.test.mock.MockContentResolver;
import android.testing.DexmakerShareClassLoaderRule;
@@ -73,6 +77,7 @@
import com.android.server.accessibility.AccessibilityTraceManager;
import com.android.server.accessibility.test.MessageCapturingHandler;
import com.android.server.wm.WindowManagerInternal;
+import com.android.window.flags.Flags;
import org.junit.After;
import org.junit.Before;
@@ -91,6 +96,9 @@
@RunWith(AndroidJUnit4.class)
public class MagnificationControllerTest {
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
private static final int TEST_DISPLAY = Display.DEFAULT_DISPLAY;
private static final int TEST_SERVICE_ID = 1;
private static final Region INITIAL_SCREEN_MAGNIFICATION_REGION =
@@ -1263,6 +1271,27 @@
verify(mService).changeMagnificationMode(TEST_DISPLAY, MODE_WINDOW);
}
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_MAGNIFICATION_ALWAYS_DRAW_FULLSCREEN_BORDER)
+ public void onFullscreenMagnificationActivationState_systemUiBorderFlagOn_notifyConnection() {
+ mMagnificationController.onFullScreenMagnificationActivationState(
+ TEST_DISPLAY, /* activated= */ true);
+
+ verify(mMagnificationConnectionManager)
+ .onFullscreenMagnificationActivationChanged(TEST_DISPLAY, /* activated= */ true);
+ }
+
+ @Test
+ @RequiresFlagsDisabled(Flags.FLAG_MAGNIFICATION_ALWAYS_DRAW_FULLSCREEN_BORDER)
+ public void
+ onFullscreenMagnificationActivationState_systemUiBorderFlagOff_neverNotifyConnection() {
+ mMagnificationController.onFullScreenMagnificationActivationState(
+ TEST_DISPLAY, /* activated= */ true);
+
+ verify(mMagnificationConnectionManager, never())
+ .onFullscreenMagnificationActivationChanged(TEST_DISPLAY, /* activated= */ true);
+ }
+
private void setMagnificationEnabled(int mode) throws RemoteException {
setMagnificationEnabled(mode, MAGNIFIED_CENTER_X, MAGNIFIED_CENTER_Y);
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
index a0e64bf..12f46df 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
@@ -82,7 +82,10 @@
import android.os.RemoteException;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
+import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.util.ArraySet;
import android.util.MergedConfiguration;
import android.view.ContentRecordingSession;
@@ -109,6 +112,7 @@
import com.android.server.LocalServices;
import com.android.server.wm.SensitiveContentPackages.PackageInfo;
import com.android.server.wm.WindowManagerService.WindowContainerInfo;
+import com.android.window.flags.Flags;
import com.google.common.truth.Expect;
@@ -140,6 +144,9 @@
@Rule
public Expect mExpect = Expect.create();
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
@After
public void tearDown() {
mWm.mSensitiveContentPackages.clearBlockedApps();
@@ -1106,6 +1113,7 @@
argThat(h -> (h.inputConfig & InputConfig.SPY) == InputConfig.SPY));
}
+ @RequiresFlagsDisabled(Flags.FLAG_MAGNIFICATION_ALWAYS_DRAW_FULLSCREEN_BORDER)
@Test
public void testDrawMagnifiedViewport() {
final int displayId = mDisplayContent.mDisplayId;