Launch activity if click on a TaskView which has the task running on
different display wit root.
If click on the TaskView which has the task running on differnt display
with root, it means we are trying to pull the task to the root display.
So we should also launch the activity to the right display even it is in
live tile mode.
Also add null check for getRootViewDisplayId().
Bug: 207085426
Bug: 210075742
Test: manual test with app streaming wit phonehub notification
Change-Id: Icdaa6dfa26345d271f3505a0226cf434696f40da
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index 1d8a459..c9cd313 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -16,6 +16,7 @@
package com.android.quickstep.views;
+import static android.view.Display.DEFAULT_DISPLAY;
import static android.widget.Toast.LENGTH_SHORT;
import static com.android.launcher3.AbstractFloatingView.TYPE_TASK_MENU;
@@ -51,6 +52,7 @@
import android.util.AttributeSet;
import android.util.FloatProperty;
import android.util.Log;
+import android.view.Display;
import android.view.MotionEvent;
import android.view.TouchDelegate;
import android.view.View;
@@ -636,6 +638,7 @@
// If the recents animation is cancelled somehow between the parent if block and
// here, try to launch the task as a non live tile task.
launchTaskAnimated();
+ mIsClickableAsLiveTile = true;
return;
}
@@ -657,6 +660,9 @@
@Override
public void onAnimationEnd(Animator animator) {
+ if (mTask != null && mTask.key.displayId != getRootViewDisplayId()) {
+ launchTaskAnimated();
+ }
mIsClickableAsLiveTile = true;
}
});
@@ -1517,7 +1523,8 @@
private int getRootViewDisplayId() {
- return getRootView().getDisplay().getDisplayId();
+ Display display = getRootView().getDisplay();
+ return display != null ? display.getDisplayId() : DEFAULT_DISPLAY;
}
/**