diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java index b263a4c963..4f50cdb614 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java @@ -87,7 +87,7 @@ public class UiFactory extends RecentsUiFactory { OverviewInteractionState.INSTANCE.get(launcher) .setBackButtonAlpha(shouldBackButtonBeHidden ? 0 : 1, true /* animate */); if (launcher != null && launcher.getDragLayer() != null) { - launcher.getDragLayer().setDisallowBackGesture(shouldBackButtonBeHidden); + launcher.getRootView().setDisallowBackGesture(shouldBackButtonBeHidden); } } diff --git a/src/com/android/launcher3/LauncherRootView.java b/src/com/android/launcher3/LauncherRootView.java index e738eb7af1..199220a7c9 100644 --- a/src/com/android/launcher3/LauncherRootView.java +++ b/src/com/android/launcher3/LauncherRootView.java @@ -12,12 +12,16 @@ import android.graphics.Insets; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; +import android.os.Build; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.ViewDebug; import android.view.WindowInsets; +import java.util.Collections; +import java.util.List; + public class LauncherRootView extends InsettableFrameLayout { private final Launcher mLauncher; @@ -30,8 +34,14 @@ public class LauncherRootView extends InsettableFrameLayout { @ViewDebug.ExportedProperty(category = "launcher") private final RectF mTouchExcludeRegion = new RectF(); + @ViewDebug.ExportedProperty(category = "launcher") + private static final List SYSTEM_GESTURE_EXCLUSION_RECT = + Collections.singletonList(new Rect()); + private View mAlignedView; private WindowStateListener mWindowStateListener; + @ViewDebug.ExportedProperty(category = "launcher") + private boolean mDisallowBackGesture; public LauncherRootView(Context context, AttributeSet attrs) { super(context, attrs); @@ -177,6 +187,24 @@ public class LauncherRootView extends InsettableFrameLayout { return super.dispatchTouchEvent(ev); } + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + SYSTEM_GESTURE_EXCLUSION_RECT.get(0).set(l, t, r, b); + setDisallowBackGesture(mDisallowBackGesture); + } + + @TargetApi(Build.VERSION_CODES.Q) + public void setDisallowBackGesture(boolean disallowBackGesture) { + if (!Utilities.ATLEAST_Q) { + return; + } + mDisallowBackGesture = disallowBackGesture; + setSystemGestureExclusionRects(mDisallowBackGesture + ? SYSTEM_GESTURE_EXCLUSION_RECT + : Collections.emptyList()); + } + public interface WindowStateListener { void onWindowFocusChanged(boolean hasFocus); diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index 6cc49de67a..9f902ed1b4 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -24,12 +24,10 @@ import android.animation.AnimatorListenerAdapter; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; -import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Rect; -import android.os.Build; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; @@ -45,7 +43,6 @@ import com.android.launcher3.DropTargetBar; import com.android.launcher3.Launcher; import com.android.launcher3.R; import com.android.launcher3.ShortcutAndWidgetContainer; -import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.folder.Folder; @@ -57,8 +54,6 @@ import com.android.launcher3.util.Thunk; import com.android.launcher3.views.BaseDragLayer; import java.util.ArrayList; -import java.util.Collections; -import java.util.List; /** * A ViewGroup that coordinates dragging across its descendants @@ -73,9 +68,6 @@ public class DragLayer extends BaseDragLayer { public static final int ANIMATION_END_DISAPPEAR = 0; public static final int ANIMATION_END_REMAIN_VISIBLE = 2; - private static final List SYSTEM_GESTURE_EXCLUSION_RECT = - Collections.singletonList(new Rect()); - @Thunk DragController mDragController; // Variables relating to animation of views after drop @@ -94,8 +86,6 @@ public class DragLayer extends BaseDragLayer { private final ViewGroupFocusHelper mFocusIndicatorHelper; private final WorkspaceAndHotseatScrim mScrim; - private boolean mDisallowBackGesture; - /** * Used to create a new DragLayer from XML. * @@ -562,24 +552,6 @@ public class DragLayer extends BaseDragLayer { mScrim.onInsetsChanged(insets); } - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - super.onLayout(changed, l, t, r, b); - SYSTEM_GESTURE_EXCLUSION_RECT.get(0).set(l, t, r, b); - setDisallowBackGesture(mDisallowBackGesture); - } - - @TargetApi(Build.VERSION_CODES.Q) - public void setDisallowBackGesture(boolean disallowBackGesture) { - if (!Utilities.ATLEAST_Q) { - return; - } - mDisallowBackGesture = disallowBackGesture; - setSystemGestureExclusionRects(mDisallowBackGesture - ? SYSTEM_GESTURE_EXCLUSION_RECT - : Collections.emptyList()); - } - public WorkspaceAndHotseatScrim getScrim() { return mScrim; }