Adding callback to notify LauncherCallbacks when quickstep starts
Bug: 73081875
Change-Id: Ieccba6ecb16553ed5211f277b49e9f2ed2d7c745
diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
index 028af9a..1151d30 100644
--- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -154,6 +154,8 @@
this::initializeLauncherAnimationController);
mStateCallback.addCallback(STATE_LAUNCHER_PRESENT | STATE_LAUNCHER_DRAWN,
this::launcherFrameDrawn);
+ mStateCallback.addCallback(STATE_LAUNCHER_PRESENT | STATE_GESTURE_STARTED,
+ this::notifyGestureStarted);
mStateCallback.addCallback(STATE_SCALED_CONTROLLER_APP | STATE_APP_CONTROLLER_RECEIVED,
this::resumeLastTask);
@@ -220,6 +222,7 @@
mStateCallback.setState(oldState);
mLauncherLayoutListener.setHandler(null);
}
+ mWasLauncherAlreadyVisible = alreadyOnHome;
mLauncher = launcher;
LauncherState startState = mLauncher.getStateManager().getState();
@@ -229,7 +232,6 @@
mLauncher.getStateManager().setRestState(startState);
AbstractFloatingView.closeAllOpenViews(launcher, alreadyOnHome);
- mWasLauncherAlreadyVisible = alreadyOnHome;
mRecentsView = mLauncher.getOverviewPanel();
mLauncherLayoutListener = new LauncherLayoutListener(mLauncher);
@@ -429,10 +431,22 @@
}
public void onGestureStarted() {
+ if (mLauncher != null) {
+ notifyGestureStarted();
+ }
+
setStateOnUiThread(STATE_GESTURE_STARTED);
mGestureStarted = true;
}
+ /**
+ * Notifies the launcher that the swipe gesture has started. This can be called multiple times
+ * on both background and UI threads
+ */
+ private void notifyGestureStarted() {
+ mLauncher.onQuickstepGestureStarted(mWasLauncherAlreadyVisible);
+ }
+
@WorkerThread
public void onGestureEnded(float endVelocity) {
Resources res = mContext.getResources();
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5da4944..5a1143fc 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1193,6 +1193,12 @@
}
}
+ public void onQuickstepGestureStarted(boolean isVisible) {
+ if (mLauncherCallbacks != null) {
+ mLauncherCallbacks.onQuickstepGestureStarted(isVisible);
+ }
+ }
+
public AllAppsTransitionController getAllAppsController() {
return mAllAppsController;
}
diff --git a/src/com/android/launcher3/LauncherCallbacks.java b/src/com/android/launcher3/LauncherCallbacks.java
index 914d9eb..ed7bf3d 100644
--- a/src/com/android/launcher3/LauncherCallbacks.java
+++ b/src/com/android/launcher3/LauncherCallbacks.java
@@ -71,4 +71,12 @@
* Extensions points for adding / replacing some other aspects of the Launcher experience.
*/
boolean hasSettings();
+
+ /**
+ * Called when launcher integrated quickstep and some quickstep gesture started. It can be
+ * called multiple times for a single gesture an UI or background thread.
+ *
+ * @param isVisible if Launcher was visible when the gesture started.
+ */
+ void onQuickstepGestureStarted(boolean isVisible);
}