diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index 1c6aca7332..0b86155004 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -38,7 +38,6 @@ import com.android.launcher3.anim.AnimatedFloat; import com.android.launcher3.anim.AnimatorListeners; import com.android.launcher3.statemanager.StateManager; import com.android.launcher3.uioverrides.QuickstepLauncher; -import com.android.launcher3.uioverrides.states.OverviewState; import com.android.launcher3.util.MultiPropertyFactory.MultiProperty; import com.android.launcher3.util.window.RefreshRateTracker; import com.android.quickstep.RecentsAnimationCallbacks; @@ -119,11 +118,10 @@ import java.util.StringJoiner; mLauncherState = finalState; updateStateForFlag(FLAG_TRANSITION_STATE_RUNNING, false); applyState(); - boolean finalStateOverview = finalState instanceof OverviewState; boolean disallowLongClick = finalState == LauncherState.OVERVIEW_SPLIT_SELECT; com.android.launcher3.taskbar.Utilities.setOverviewDragState( - mControllers, finalStateOverview /*disallowGlobalDrag*/, - disallowLongClick, finalStateOverview /*allowInitialSplitSelection*/); + mControllers, finalState.disallowTaskbarGlobalDrag(), + disallowLongClick, finalState.allowTaskbarInitialSplitSelection()); } }; diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java index 95eb128e00..8125fc8f3e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java @@ -116,6 +116,18 @@ public class BackgroundAppState extends OverviewState { return super.isTaskbarAlignedWithHotseat(launcher); } + @Override + public boolean disallowTaskbarGlobalDrag() { + // Enable global drag in overview + return false; + } + + @Override + public boolean allowTaskbarInitialSplitSelection() { + // Disallow split select from taskbar items in overview + return false; + } + public static float[] getOverviewScaleAndOffsetForBackgroundState( BaseDraggingActivity activity) { return new float[] { diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java index d075750330..233ed462c9 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java @@ -123,6 +123,18 @@ public class OverviewState extends LauncherState { return deviceProfile.isTablet; } + @Override + public boolean disallowTaskbarGlobalDrag() { + // Disable global drag in overview + return true; + } + + @Override + public boolean allowTaskbarInitialSplitSelection() { + // Allow split select from taskbar items in overview + return true; + } + @Override public String getDescription(Launcher launcher) { return launcher.getString(R.string.accessibility_recent_apps); diff --git a/src/com/android/launcher3/LauncherState.java b/src/com/android/launcher3/LauncherState.java index 81fbe79cb2..b8d13ed488 100644 --- a/src/com/android/launcher3/LauncherState.java +++ b/src/com/android/launcher3/LauncherState.java @@ -225,6 +225,20 @@ public abstract class LauncherState implements BaseState { return true; } + /** + * Returns whether taskbar global drag is disallowed in this state. + */ + public boolean disallowTaskbarGlobalDrag() { + return false; + } + + /** + * Returns whether the taskbar shortcut should trigger split selection mode. + */ + public boolean allowTaskbarInitialSplitSelection() { + return false; + } + /** * Fraction shift in the vertical translation UI and related properties *