diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2019-04-03 15:25:00 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2019-04-03 15:26:18 -0700 |
commit | 745df7c4836a59e61c9718681d8d032c31b3ee47 (patch) | |
tree | db7a3c401c4a8487f61239e56ea3722f59e855a4 /quickstep | |
parent | 1f95993e137676150ba82012ed09e26007726c65 (diff) | |
download | android_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.tar.gz android_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.tar.bz2 android_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.zip |
Skipping touch dispatch when it happens withing the window gesture region
> Those events are already proxied through the TouchInteractionService
Change-Id: If06483f208cbd462fdfdf01abba27bd937b766e7
Diffstat (limited to 'quickstep')
-rw-r--r-- | quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java index 6b3f028a2..777e59252 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java @@ -17,12 +17,18 @@ package com.android.quickstep.fallback; import android.annotation.TargetApi; import android.content.Context; +import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; +import android.graphics.RectF; import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.ViewDebug; +import android.view.WindowInsets; import com.android.launcher3.BaseActivity; import com.android.launcher3.R; +import com.android.launcher3.Utilities; import com.android.launcher3.util.Themes; import com.android.launcher3.util.TouchController; import com.android.launcher3.views.BaseDragLayer; @@ -33,6 +39,9 @@ public class RecentsRootView extends BaseDragLayer<RecentsActivity> { private static final int MIN_SIZE = 10; private final RecentsActivity mActivity; + @ViewDebug.ExportedProperty(category = "launcher") + private final RectF mTouchExcludeRegion = new RectF(); + private final Point mLastKnownSize = new Point(MIN_SIZE, MIN_SIZE); public RecentsRootView(Context context, AttributeSet attrs) { @@ -88,4 +97,29 @@ public class RecentsRootView extends BaseDragLayer<RecentsActivity> { mActivity.getDeviceProfile().updateInsets(mInsets); super.setInsets(mInsets); } + + @Override + public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { + if (Utilities.ATLEAST_Q) { + Insets gestureInsets = insets.getMandatorySystemGestureInsets(); + mTouchExcludeRegion.set(gestureInsets.left, gestureInsets.top, + gestureInsets.right, gestureInsets.bottom); + } + return super.dispatchApplyWindowInsets(insets); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + float x = ev.getX(); + float y = ev.getY(); + if (y < mTouchExcludeRegion.top + || x < mTouchExcludeRegion.left + || x > (getWidth() - mTouchExcludeRegion.right) + || y > (getHeight() - mTouchExcludeRegion.bottom)) { + return false; + } + } + return super.dispatchTouchEvent(ev); + } }
\ No newline at end of file |