Merge "Fix hard dragging from the edge of the screen" into sc-dev

This commit is contained in:
Ryan Lin
2021-06-09 01:04:32 +00:00
committed by Android (Google) Code Review
2 changed files with 23 additions and 0 deletions

View File

@@ -66,6 +66,7 @@ import com.android.systemui.shared.system.WindowManagerWrapper;
import java.io.PrintWriter;
import java.text.NumberFormat;
import java.util.Collections;
import java.util.Locale;
/**
@@ -178,7 +179,13 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
// Initialize listeners.
mMirrorViewRunnable = () -> {
if (mMirrorView != null) {
final Rect oldViewBounds = new Rect(mMirrorViewBounds);
mMirrorView.getBoundsOnScreen(mMirrorViewBounds);
if (oldViewBounds.width() != mMirrorViewBounds.width()
|| oldViewBounds.height() != mMirrorViewBounds.height()) {
mMirrorView.setSystemGestureExclusionRects(Collections.singletonList(
new Rect(0, 0, mMirrorViewBounds.width(), mMirrorViewBounds.height())));
}
updateSystemUIStateIfNeeded();
mWindowMagnifierCallback.onWindowMagnifierBoundsChanged(
mDisplayId, mMirrorViewBounds);
@@ -269,6 +276,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
if (mMirrorWindowControl != null) {
mMirrorWindowControl.destroyControl();
}
mMirrorViewBounds.setEmpty();
updateSystemUIStateIfNeeded();
}

View File

@@ -77,6 +77,8 @@ import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import java.util.List;
@LargeTest
@RunWith(AndroidTestingRunner.class)
public class WindowMagnificationControllerTest extends SysuiTestCase {
@@ -151,6 +153,19 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
eq(mContext.getDisplayId()), any(Rect.class));
}
@Test
public void enableWindowMagnification_systemGestureExclusionRectsIsSet() {
mInstrumentation.runOnMainSync(() -> {
mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN,
Float.NaN);
});
// Wait for Rects updated.
waitForIdleSync();
List<Rect> rects = mWindowManager.getAttachedView().getSystemGestureExclusionRects();
assertFalse(rects.isEmpty());
}
@Test
public void deleteWindowMagnification_destroyControl() {
mInstrumentation.runOnMainSync(() -> {