Taskbar nav per-display

Test: local + unit
Bug: 402364626
Flag: com.android.launcher3.enable_overview_on_connected_displays

Change-Id: I9643367e19b107a2811e93db4e3dd32e9355da71
This commit is contained in:
Will Osborn
2025-04-01 16:02:18 +00:00
parent e3defaa8e6
commit 90ac376da8
3 changed files with 27 additions and 14 deletions
@@ -326,7 +326,7 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa
private void navigateHome() {
TaskUtils.closeSystemWindowsAsync(CLOSE_SYSTEM_WINDOWS_REASON_HOME_KEY);
mCallbacks.onNavigateHome();
mCallbacks.onNavigateHome(mContext.getDisplayId());
}
private void navigateToOverview() {
@@ -335,11 +335,11 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa
}
TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "onOverviewToggle");
TaskUtils.closeSystemWindowsAsync(CLOSE_SYSTEM_WINDOWS_REASON_RECENTS);
mCallbacks.onToggleOverview();
mCallbacks.onToggleOverview(mContext.getDisplayId());
}
public void hideOverview() {
mCallbacks.onHideOverview();
mCallbacks.onHideOverview(mContext.getDisplayId());
}
void sendBackKeyEvent(int action, boolean cancelled) {
@@ -405,12 +405,12 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa
/** Callbacks for navigation buttons on Taskbar. */
public interface TaskbarNavButtonCallbacks {
/** Callback invoked when the home button is pressed. */
default void onNavigateHome() {}
default void onNavigateHome(int displayId) {}
/** Callback invoked when the overview button is pressed. */
default void onToggleOverview() {}
default void onToggleOverview(int displayId) {}
/** Callback invoken when a visible overview needs to be hidden. */
default void onHideOverview() { }
default void onHideOverview(int displayId) { }
}
}
@@ -25,6 +25,7 @@ import static android.view.MotionEvent.ACTION_UP;
import static com.android.launcher3.Flags.enableCursorHoverStates;
import static com.android.launcher3.Flags.enableHandleDelayedGestureCallbacks;
import static com.android.launcher3.Flags.enableOverviewOnConnectedDisplays;
import static com.android.launcher3.LauncherPrefs.backedUpItem;
import static com.android.launcher3.MotionEventsUtils.isTrackpadMotionEvent;
import static com.android.launcher3.MotionEventsUtils.isTrackpadMultiFingerSwipe;
@@ -571,18 +572,30 @@ public class TouchInteractionService extends Service {
private final TaskbarNavButtonCallbacks mNavCallbacks = new TaskbarNavButtonCallbacks() {
@Override
public void onNavigateHome() {
mOverviewCommandHelper.addCommand(CommandType.HOME);
public void onNavigateHome(int displayId) {
if (enableOverviewOnConnectedDisplays()) {
mOverviewCommandHelper.addCommand(CommandType.HOME, displayId);
} else {
mOverviewCommandHelper.addCommand(CommandType.HOME, DEFAULT_DISPLAY);
}
}
@Override
public void onToggleOverview() {
mOverviewCommandHelper.addCommand(CommandType.TOGGLE);
public void onToggleOverview(int displayId) {
if (enableOverviewOnConnectedDisplays()) {
mOverviewCommandHelper.addCommand(CommandType.TOGGLE, displayId);
} else {
mOverviewCommandHelper.addCommand(CommandType.TOGGLE, DEFAULT_DISPLAY);
}
}
@Override
public void onHideOverview() {
mOverviewCommandHelper.addCommand(CommandType.HIDE);
public void onHideOverview(int displayId) {
if (enableOverviewOnConnectedDisplays()) {
mOverviewCommandHelper.addCommand(CommandType.HIDE, displayId);
} else {
mOverviewCommandHelper.addCommand(CommandType.HIDE, DEFAULT_DISPLAY);
}
}
};
@@ -87,12 +87,12 @@ public class TaskbarNavButtonControllerTest {
private int mOverviewToggleCount;
private final TaskbarNavButtonCallbacks mCallbacks = new TaskbarNavButtonCallbacks() {
@Override
public void onNavigateHome() {
public void onNavigateHome(int displayId) {
mHomePressCount++;
}
@Override
public void onToggleOverview() {
public void onToggleOverview(int displayId) {
mOverviewToggleCount++;
}
};