Specify display ID while calling getNavBarPosition()
Navigation bar can show on non-default display now. So the caller
should specify which display the desired navigation bar is on.
Bug: 117474929
Test: atest Launcher3Tests
Change-Id: Ibb22e51730ab145a42a129b4d964299acd4efd56
diff --git a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
index c81f044..7d97e7c 100644
--- a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
+++ b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
@@ -18,6 +18,7 @@
import static com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch.TAP;
+import android.app.Activity;
import android.app.ActivityOptions;
import android.content.ComponentName;
import android.content.Intent;
@@ -115,7 +116,7 @@
}
protected abstract boolean isAvailable(BaseDraggingActivity activity);
- protected abstract ActivityOptions makeLaunchOptions();
+ protected abstract ActivityOptions makeLaunchOptions(Activity activity);
protected abstract boolean onActivityStarted(BaseDraggingActivity activity);
@Override
@@ -160,7 +161,7 @@
dismissTaskMenuView(activity);
- ActivityOptions options = makeLaunchOptions();
+ ActivityOptions options = makeLaunchOptions(activity);
if (options != null
&& ActivityManagerWrapper.getInstance().startActivityFromRecents(taskId,
options)) {
@@ -222,8 +223,9 @@
}
@Override
- protected ActivityOptions makeLaunchOptions() {
- final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition();
+ protected ActivityOptions makeLaunchOptions(Activity activity) {
+ final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition(
+ activity.getDisplayId());
if (navBarPosition == WindowManagerWrapper.NAV_BAR_POS_INVALID) {
return null;
}
@@ -257,7 +259,7 @@
}
@Override
- protected ActivityOptions makeLaunchOptions() {
+ protected ActivityOptions makeLaunchOptions(Activity activity) {
return ActivityOptionsCompat.makeFreeformOptions();
}