diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json index 3e37237628004..8caff23539c31 100644 --- a/data/etc/services.core.protolog.json +++ b/data/etc/services.core.protolog.json @@ -3139,6 +3139,12 @@ "group": "WM_DEBUG_WINDOW_TRANSITIONS", "at": "com\/android\/server\/wm\/Transition.java" }, + "1494644409": { + "message": " Rejecting as detached: %s", + "level": "VERBOSE", + "group": "WM_DEBUG_WINDOW_TRANSITIONS", + "at": "com\/android\/server\/wm\/Transition.java" + }, "1495525537": { "message": "createWallpaperAnimations()", "level": "DEBUG", diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java index 47129c242e84b..ba1cf8ae06df3 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimation.java +++ b/services/core/java/com/android/server/wm/RecentsAnimation.java @@ -125,6 +125,11 @@ class RecentsAnimation implements RecentsAnimationCallbacks, OnRootTaskOrderChan ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "Updated config=%s", targetActivity.getConfiguration()); } + } else if (mDefaultTaskDisplayArea.getActivity( + ActivityRecord::occludesParent, false /* traverseTopToBottom */) == null) { + // Skip because none of above activities can occlude the target activity. The preload + // should be done silently in background without being visible. + return; } else { // Create the activity record. Because the activity is invisible, this doesn't really // start the client. diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 709052e9832a2..c9b403c4ac337 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3691,6 +3691,8 @@ class Task extends TaskFragment { } sb.append(" visible="); sb.append(shouldBeVisible(null /* starting */)); + sb.append(" visibleRequested="); + sb.append(isVisibleRequested()); sb.append(" mode="); sb.append(windowingModeToString(getWindowingMode())); sb.append(" translucent="); diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 1ac16664244fa..11324d2c89c14 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -352,7 +352,7 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe final WallpaperWindowToken wt = mParticipants.valueAt(i).asWallpaperToken(); if (wt != null && !wt.isVisibleRequested()) { ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, - " Commit wallpaper becoming invisible: %s", ar); + " Commit wallpaper becoming invisible: %s", wt); wt.commitVisibility(false /* visible */); } } @@ -808,7 +808,11 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe // of participants that should always be reported even if they aren't top. for (WindowContainer wc : participants) { // Don't include detached windows. - if (!wc.isAttached()) continue; + if (!wc.isAttached()) { + ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + " Rejecting as detached: %s", wc); + continue; + } final ChangeInfo changeInfo = changes.get(wc);