From 2524b82369265c3b8f5c6b5b6495376df6781770 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Fri, 17 May 2019 16:33:37 -0700 Subject: [PATCH] Remove unnecessary dispatchInsets routing Insets are dispatched to all views. We never consume the insets and let each view decide what to do with it. Also fixing scrim in all-apps when in full-gesture navigation Change-Id: Ib1c6bef5b32aac0c6ea03078b5138d2d0408c6d8 --- .../android/quickstep/fallback/RecentsRootView.java | 9 +-------- src/com/android/launcher3/LauncherRootView.java | 9 +-------- .../launcher3/allapps/AllAppsContainerView.java | 12 +++++++++++- src/com/android/launcher3/views/BaseDragLayer.java | 4 +++- 4 files changed, 16 insertions(+), 18 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 09d323ee69..1820729576 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 @@ -20,7 +20,6 @@ import android.content.Context; import android.graphics.Point; import android.graphics.Rect; import android.util.AttributeSet; -import android.view.WindowInsets; import com.android.launcher3.BaseActivity; import com.android.launcher3.R; @@ -71,7 +70,7 @@ public class RecentsRootView extends BaseDragLayer { // Update device profile before notifying the children. mActivity.getDeviceProfile().updateInsets(insets); setInsets(insets); - return true; // I'll take it from here + return false; // Let children get the full insets } @Override @@ -89,10 +88,4 @@ public class RecentsRootView extends BaseDragLayer { mActivity.getDeviceProfile().updateInsets(mInsets); super.setInsets(mInsets); } - - @Override - public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { - updateTouchExcludeRegion(insets); - return super.dispatchApplyWindowInsets(insets); - } } \ No newline at end of file diff --git a/src/com/android/launcher3/LauncherRootView.java b/src/com/android/launcher3/LauncherRootView.java index 20eec05d44..49b380b41f 100644 --- a/src/com/android/launcher3/LauncherRootView.java +++ b/src/com/android/launcher3/LauncherRootView.java @@ -14,7 +14,6 @@ import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.view.ViewDebug; -import android.view.WindowInsets; import java.util.Collections; import java.util.List; @@ -101,7 +100,7 @@ public class LauncherRootView extends InsettableFrameLayout { mLauncher.getStateManager().reapplyState(true /* cancelCurrentAnimation */); } - return true; // I'll take it from here + return false; // Let children get the full insets } @Override @@ -156,12 +155,6 @@ public class LauncherRootView extends InsettableFrameLayout { } } - @Override - public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { - mLauncher.getDragLayer().updateTouchExcludeRegion(insets); - return super.dispatchApplyWindowInsets(insets); - } - @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 41252aab54..0db563f597 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -31,6 +31,7 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.WindowInsets; import com.android.launcher3.AppInfo; import com.android.launcher3.DeviceProfile; @@ -313,12 +314,21 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } setLayoutParams(mlp); - mNavBarScrimHeight = insets.bottom; InsettableFrameLayout.dispatchInsets(this, insets); mLauncher.getAllAppsController() .setScrollRangeDelta(mSearchUiManager.getScrollRangeDelta(insets)); } + @Override + public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { + if (Utilities.ATLEAST_Q) { + mNavBarScrimHeight = insets.getTappableElementInsets().bottom; + } else { + mNavBarScrimHeight = insets.getStableInsetBottom(); + } + return super.dispatchApplyWindowInsets(insets); + } + @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java index 3c81bcf399..bcf299fd63 100644 --- a/src/com/android/launcher3/views/BaseDragLayer.java +++ b/src/com/android/launcher3/views/BaseDragLayer.java @@ -487,12 +487,14 @@ public abstract class BaseDragLayer } } + @Override @TargetApi(Build.VERSION_CODES.Q) - public void updateTouchExcludeRegion(WindowInsets insets) { + public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { if (Utilities.ATLEAST_Q) { Insets gestureInsets = insets.getMandatorySystemGestureInsets(); mSystemGestureRegion.set(gestureInsets.left, gestureInsets.top, gestureInsets.right, gestureInsets.bottom); } + return super.dispatchApplyWindowInsets(insets); } }