Add handling for toggling keyboard stashing from the keyboard
Flag: ENABLE_KEYBOARD_TASKBAR_TOGGLE
Bug: 281726846
Fixes: 246660615
Test: toggled the transient taskbar with the meta+t input
Change-Id: I315f83850b11d24d8b55061d7111300effb43936
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index d94d8f7..9a3aa6d 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -979,11 +979,16 @@
mControllers.taskbarEduTooltipController.hide();
}
- /** Returns {@code true} if taskbar All Apps is open. */
+ /** Returns {@code true} if Taskbar All Apps is open. */
public boolean isTaskbarAllAppsOpen() {
return mControllers.taskbarAllAppsController.isOpen();
}
+ /** Toggles the Taskbar's stash state. */
+ public void toggleTaskbarStash() {
+ mControllers.taskbarStashController.toggleTaskbarStash();
+ }
+
/**
* Called to start the taskbar translation spring to its settled translation (0).
*/
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
index dfbd5bb..008f5f6 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
@@ -474,8 +474,7 @@
public void onAnimationEnd(Animator animation) {
TaskbarStashController stashController =
mControllers.taskbarStashController;
- stashController.updateAndAnimateTransientTaskbar(
- /* stash */ true, /* duration */ 0);
+ stashController.updateAndAnimateTransientTaskbar(/* stash */ true);
}
});
} else {
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
index c2175f2..9eebffa 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -501,16 +501,9 @@
}
/**
- * Stash or unstashes the transient taskbar, using the default TASKBAR_STASH_DURATION.
- */
- public void updateAndAnimateTransientTaskbar(boolean stash) {
- updateAndAnimateTransientTaskbar(stash, TASKBAR_STASH_DURATION);
- }
-
- /**
* Stash or unstashes the transient taskbar.
*/
- public void updateAndAnimateTransientTaskbar(boolean stash, long duration) {
+ public void updateAndAnimateTransientTaskbar(boolean stash) {
if (!DisplayController.isTransientTaskbar(mActivity)) {
return;
}
@@ -575,6 +568,12 @@
return false;
}
+ /** Toggles the Taskbar's stash state. */
+ public void toggleTaskbarStash() {
+ if (!DisplayController.isTransientTaskbar(mActivity) || !hasAnyFlag(FLAGS_IN_APP)) return;
+ updateAndAnimateTransientTaskbar(!hasAnyFlag(FLAG_STASHED_IN_APP_AUTO));
+ }
+
/**
* Adds the Taskbar unstash to Hotseat animator to the animator set.
*
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 682763f..81da7f4 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -85,6 +85,7 @@
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatedFloat;
+import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.provider.RestoreDbTask;
import com.android.launcher3.statehandlers.DesktopVisibilityController;
import com.android.launcher3.statemanager.StatefulActivity;
@@ -207,7 +208,15 @@
@BinderThread
@Override
public void onTaskbarToggled() {
- // To be implemented.
+ if (!FeatureFlags.ENABLE_KEYBOARD_TASKBAR_TOGGLE.get()) return;
+ MAIN_EXECUTOR.execute(() -> {
+ TaskbarActivityContext activityContext =
+ mTaskbarManager.getCurrentActivityContext();
+
+ if (activityContext != null) {
+ activityContext.toggleTaskbarStash();
+ }
+ });
}
@BinderThread
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
index 8dc1204..8c4c31f 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -404,6 +404,10 @@
public static final BooleanFlag ENABLE_KEYBOARD_QUICK_SWITCH = getDebugFlag(270396844,
"ENABLE_KEYBOARD_QUICK_SWITCH", ENABLED, "Enables keyboard quick switching");
+ public static final BooleanFlag ENABLE_KEYBOARD_TASKBAR_TOGGLE = getDebugFlag(281726846,
+ "ENABLE_KEYBOARD_TASKBAR_TOGGLE", ENABLED,
+ "Enables keyboard taskbar stash toggling");
+
// TODO(Block 30): Clean up flags
public static final BooleanFlag USE_SEARCH_REQUEST_TIMEOUT_OVERRIDES = getDebugFlag(270395010,
"USE_SEARCH_REQUEST_TIMEOUT_OVERRIDES", DISABLED,