From 3e70b820f07360180992672f0eb6b17fd8691dd2 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 29 Jul 2022 15:06:43 -0700 Subject: [PATCH] Dump mExclusionRegion bounds Also fix the dump for mDeferredGestureRegion to more helpfully print the bounds instead of the region (which just prints "SkRegion()"). Test: adb shell dumpsys activity service TouchInteractionService | grep - i region Bug: 240654796 Change-Id: Ibb14c51f92ec01d2635cee33da15bb6d0421683d --- .../quickstep/RecentsAnimationDeviceState.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index 4fb7e6ba06..48f0557cb1 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -61,6 +61,7 @@ import android.provider.Settings; import android.view.MotionEvent; import androidx.annotation.BinderThread; +import androidx.annotation.NonNull; import com.android.launcher3.Utilities; import com.android.launcher3.util.DisplayController; @@ -124,7 +125,7 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { }; private int mGestureBlockingTaskId = -1; - private Region mExclusionRegion; + private @NonNull Region mExclusionRegion = new Region(); private SystemGestureExclusionListenerCompat mExclusionListener; public RecentsAnimationDeviceState(Context context) { @@ -162,6 +163,10 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { @Override @BinderThread public void onExclusionChanged(Region region) { + if (region == null) { + // Don't think this is possible but just in case, don't let it be null. + region = new Region(); + } // Assignments are atomic, it should be safe on binder thread mExclusionRegion = region; } @@ -498,7 +503,7 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { public boolean isInExclusionRegion(MotionEvent event) { // mExclusionRegion can change on binder thread, use a local instance here. Region exclusionRegion = mExclusionRegion; - return mMode == NO_BUTTON && exclusionRegion != null + return mMode == NO_BUTTON && exclusionRegion.contains((int) event.getX(), (int) event.getY()); } @@ -587,7 +592,8 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener { pw.println(" isUserUnlocked=" + mIsUserUnlocked); pw.println(" isOneHandedModeEnabled=" + mIsOneHandedModeEnabled); pw.println(" isSwipeToNotificationEnabled=" + mIsSwipeToNotificationEnabled); - pw.println(" deferredGestureRegion=" + mDeferredGestureRegion); + pw.println(" deferredGestureRegion=" + mDeferredGestureRegion.getBounds()); + pw.println(" exclusionRegion=" + mExclusionRegion.getBounds()); pw.println(" pipIsActive=" + mPipIsActive); mRotationTouchHelper.dump(pw); }