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
(cherry picked from commit f1bb3a4d4c9a1c6ba5cff5550b6d6b2b84ff272f)
diff --git a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
index c81f044..42a28fb 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;
@@ -49,6 +50,7 @@
import com.android.systemui.shared.recents.view.AppTransitionAnimationSpecCompat;
import com.android.systemui.shared.recents.view.AppTransitionAnimationSpecsFuture;
import com.android.systemui.shared.recents.view.RecentsTransition;
+import com.android.systemui.shared.system.ActivityCompat;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.ActivityOptionsCompat;
import com.android.systemui.shared.system.WindowManagerWrapper;
@@ -115,7 +117,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 +162,7 @@
dismissTaskMenuView(activity);
- ActivityOptions options = makeLaunchOptions();
+ ActivityOptions options = makeLaunchOptions(activity);
if (options != null
&& ActivityManagerWrapper.getInstance().startActivityFromRecents(taskId,
options)) {
@@ -222,8 +224,10 @@
}
@Override
- protected ActivityOptions makeLaunchOptions() {
- final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition();
+ protected ActivityOptions makeLaunchOptions(Activity activity) {
+ final ActivityCompat act = new ActivityCompat(activity);
+ final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition(
+ act.getDisplayId());
if (navBarPosition == WindowManagerWrapper.NAV_BAR_POS_INVALID) {
return null;
}
@@ -257,7 +261,7 @@
}
@Override
- protected ActivityOptions makeLaunchOptions() {
+ protected ActivityOptions makeLaunchOptions(Activity activity) {
return ActivityOptionsCompat.makeFreeformOptions();
}