Merge "Pause is getting scheduled 2 times"

This commit is contained in:
Louis Chang
2023-03-07 13:54:57 +00:00
committed by Gerrit Code Review
3 changed files with 5 additions and 1 deletions

View File

@@ -557,6 +557,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
Drawable mEnterpriseThumbnailDrawable;
boolean mPauseSchedulePendingForPip = false;
private void updateEnterpriseThumbnailDrawable(Context context) {
DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
mEnterpriseThumbnailDrawable = dpm.getResources().getDrawable(

View File

@@ -3583,7 +3583,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
null /* launchIntoPipHostActivity */, "enterPictureInPictureMode",
transition);
// Continue the pausing process after entering pip.
if (r.isState(PAUSING)) {
if (r.isState(PAUSING) && r.mPauseSchedulePendingForPip) {
r.getTask().schedulePauseActivity(r, false /* userLeaving */,
false /* pauseImmediately */, true /* autoEnteringPip */, "auto-pip");
}

View File

@@ -1619,6 +1619,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
if (prev.attachedToProcess()) {
if (shouldAutoPip) {
prev.mPauseSchedulePendingForPip = true;
boolean didAutoPip = mAtmService.enterPictureInPictureMode(
prev, prev.pictureInPictureArgs, false /* fromClient */);
ProtoLog.d(WM_DEBUG_STATES, "Auto-PIP allowed, entering PIP mode "
@@ -1682,6 +1683,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
boolean pauseImmediately, boolean autoEnteringPip, String reason) {
ProtoLog.v(WM_DEBUG_STATES, "Enqueueing pending pause: %s", prev);
try {
prev.mPauseSchedulePendingForPip = false;
EventLogTags.writeWmPauseActivity(prev.mUserId, System.identityHashCode(prev),
prev.shortComponentName, "userLeaving=" + userLeaving, reason);