Merge "Disable PiP entry when switching tasks via recents" into tm-dev
This commit is contained in:
@@ -5149,10 +5149,13 @@ class Task extends TaskFragment {
|
||||
// Ensure that we do not trigger entering PiP an activity on the root pinned task
|
||||
return false;
|
||||
}
|
||||
final boolean isTransient = opts != null && opts.getTransientLaunch();
|
||||
final Task targetRootTask = toFrontTask != null
|
||||
? toFrontTask.getRootTask() : toFrontActivity.getRootTask();
|
||||
if (targetRootTask != null && targetRootTask.isActivityTypeAssistant()) {
|
||||
// Ensure the task/activity being brought forward is not the assistant
|
||||
if (targetRootTask != null && (targetRootTask.isActivityTypeAssistant() || isTransient)) {
|
||||
// Ensure the task/activity being brought forward is not the assistant and is not
|
||||
// transient. In the case of transient-launch, we want to wait until the end of the
|
||||
// transition and only allow switch if the transient launch was committed.
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -459,9 +459,19 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
|
||||
// activity in a bad state.
|
||||
if (!visibleAtTransitionEnd && !ar.isVisibleRequested()) {
|
||||
boolean commitVisibility = true;
|
||||
if (ar.getDeferHidingClient() && ar.getTask() != null) {
|
||||
if (ar.isVisible() && ar.getTask() != null) {
|
||||
if (ar.pictureInPictureArgs != null
|
||||
&& ar.pictureInPictureArgs.isAutoEnterEnabled()) {
|
||||
if (mTransientLaunches != null) {
|
||||
for (int j = 0; j < mTransientLaunches.size(); ++j) {
|
||||
if (mTransientLaunches.valueAt(j).isVisibleRequested()) {
|
||||
// force enable pip-on-task-switch now that we've committed
|
||||
// to actually launching to the transient activity.
|
||||
ar.supportsEnterPipOnTaskSwitch = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mController.mAtm.enterPictureInPictureMode(ar, ar.pictureInPictureArgs);
|
||||
// Avoid commit visibility to false here, or else we will get a sudden
|
||||
// "flash" / surface going invisible for a split second.
|
||||
|
||||
Reference in New Issue
Block a user