Merge "Fix hard dragging from the edge of the screen" into sc-dev
This commit is contained in:
@@ -66,6 +66,7 @@ import com.android.systemui.shared.system.WindowManagerWrapper;
|
|||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -178,7 +179,13 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
|
|||||||
// Initialize listeners.
|
// Initialize listeners.
|
||||||
mMirrorViewRunnable = () -> {
|
mMirrorViewRunnable = () -> {
|
||||||
if (mMirrorView != null) {
|
if (mMirrorView != null) {
|
||||||
|
final Rect oldViewBounds = new Rect(mMirrorViewBounds);
|
||||||
mMirrorView.getBoundsOnScreen(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();
|
updateSystemUIStateIfNeeded();
|
||||||
mWindowMagnifierCallback.onWindowMagnifierBoundsChanged(
|
mWindowMagnifierCallback.onWindowMagnifierBoundsChanged(
|
||||||
mDisplayId, mMirrorViewBounds);
|
mDisplayId, mMirrorViewBounds);
|
||||||
@@ -269,6 +276,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
|
|||||||
if (mMirrorWindowControl != null) {
|
if (mMirrorWindowControl != null) {
|
||||||
mMirrorWindowControl.destroyControl();
|
mMirrorWindowControl.destroyControl();
|
||||||
}
|
}
|
||||||
|
mMirrorViewBounds.setEmpty();
|
||||||
updateSystemUIStateIfNeeded();
|
updateSystemUIStateIfNeeded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
public class WindowMagnificationControllerTest extends SysuiTestCase {
|
public class WindowMagnificationControllerTest extends SysuiTestCase {
|
||||||
@@ -151,6 +153,19 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
|
|||||||
eq(mContext.getDisplayId()), any(Rect.class));
|
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
|
@Test
|
||||||
public void deleteWindowMagnification_destroyControl() {
|
public void deleteWindowMagnification_destroyControl() {
|
||||||
mInstrumentation.runOnMainSync(() -> {
|
mInstrumentation.runOnMainSync(() -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user