Fixes to support transient taskbar in desktop mode

Track gesture progress in desktop visibility controller. We need to
allow launcher to resume when gesture is in progress and freeform tasks
are visible.
Update overview state handling in desktop visibility controller. When
overview is enabled, launcher should be made visible, regardless of
freeform state. When exiting overview state, check freeform state to see
what should be shown and enabled.

Bug: 263264985
Test: manual, enable transient taskbar, move app to desktop, invoke transient
taskbar
Test: manual, enable transient taskarb, enable desktop mode, invoke
transient taskbar
Test: manual, disable transient taskbar, move app to desktop, swipe up
to overview
Test: manual, disable transient taskbar, enable desktop mode, swipe up
to overview

Change-Id: I63000441d9cf72769e6efb9d247ab4112c01839d
This commit is contained in:
Ats Jenk
2023-01-03 16:50:11 -08:00
parent 39688d2d61
commit f6ba9499de
3 changed files with 94 additions and 26 deletions
@@ -36,12 +36,15 @@ import com.android.launcher3.LauncherState;
import com.android.launcher3.logging.StatsLogManager;
import com.android.launcher3.popup.QuickstepSystemShortcut;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statehandlers.DesktopVisibilityController;
import com.android.launcher3.statemanager.StateManager.StateListener;
import com.android.launcher3.uioverrides.QuickstepLauncher;
import com.android.launcher3.util.PendingSplitSelectInfo;
import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.quickstep.LauncherActivityInterface;
import com.android.quickstep.RotationTouchHelper;
import com.android.quickstep.util.SplitSelectStateController;
import com.android.systemui.shared.recents.model.Task;
/**
* {@link RecentsView} used in Launcher activity
@@ -205,4 +208,25 @@ public class LauncherRecentsView extends RecentsView<QuickstepLauncher, Launcher
protected boolean canLaunchFullscreenTask() {
return !mActivity.isInState(OVERVIEW_SPLIT_SELECT);
}
@Override
public void onGestureAnimationStart(Task[] runningTasks,
RotationTouchHelper rotationTouchHelper) {
super.onGestureAnimationStart(runningTasks, rotationTouchHelper);
DesktopVisibilityController desktopVisibilityController =
mActivity.getDesktopVisibilityController();
if (desktopVisibilityController != null) {
desktopVisibilityController.setGestureInProgress(true);
}
}
@Override
public void onGestureAnimationEnd() {
super.onGestureAnimationEnd();
DesktopVisibilityController desktopVisibilityController =
mActivity.getDesktopVisibilityController();
if (desktopVisibilityController != null) {
desktopVisibilityController.setGestureInProgress(false);
}
}
}