Loading services/core/java/com/android/server/wm/ActivityRecord.java +1 −5 Original line number Diff line number Diff line Loading @@ -5586,12 +5586,8 @@ final class ActivityRecord extends WindowToken { /** Updates draw state and shows drawn windows. */ void commitFinishDrawing(SurfaceControl.Transaction t) { boolean committed = false; for (int i = mChildren.size() - 1; i >= 0; i--) { committed |= mChildren.get(i).commitFinishDrawing(t); } if (committed) { requestUpdateWallpaperIfNeeded(); mChildren.get(i).commitFinishDrawing(t); } } Loading services/core/java/com/android/server/wm/DisplayContent.java +8 −27 Original line number Diff line number Diff line Loading @@ -128,7 +128,6 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREE import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SLEEP_TOKEN; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; Loading Loading @@ -591,8 +590,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp WallpaperController mWallpaperController; boolean mWallpaperMayChange = false; /** * A perf hint session which will boost the refresh rate for the display and change sf duration * to handle larger workloads. Loading Loading @@ -1021,25 +1018,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mImeLayeringTarget); private final Consumer<WindowState> mApplySurfaceChangesTransaction = w -> { final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked; final RootWindowContainer root = mWmService.mRoot; if (w.mHasSurface) { // Take care of the window being ready to display. final boolean committed = w.mWinAnimator.commitFinishDrawingLocked(); if (isDefaultDisplay && committed) { if (w.hasWallpaper()) { ProtoLog.v(WM_DEBUG_WALLPAPER, "First draw done in potential wallpaper target %s", w); mWallpaperMayChange = true; pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { surfacePlacer.debugLayoutRepeats( "wallpaper and commitFinishDrawingLocked true", pendingLayoutChanges); } } } w.mWinAnimator.commitFinishDrawingLocked(); } // Update effect. Loading @@ -1055,7 +1036,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mTmpApplySurfaceChangesTransactionState.obscured = true; } final boolean displayHasContent = root.handleNotObscuredLocked(w, final boolean displayHasContent = mRootWindowContainer.handleNotObscuredLocked(w, mTmpApplySurfaceChangesTransactionState.obscured, mTmpApplySurfaceChangesTransactionState.syswin); Loading Loading @@ -1093,16 +1074,16 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mTmpApplySurfaceChangesTransactionState.disableHdrConversion |= !(w.mAttrs.isHdrConversionEnabled()); final int preferredModeId = getDisplayPolicy().getRefreshRatePolicy() .getPreferredModeId(w); final var refreshRatePolicy = getDisplayPolicy().getRefreshRatePolicy(); final int preferredModeId = refreshRatePolicy.getPreferredModeId(w); if (w.getWindowingMode() != WINDOWING_MODE_PINNED if (preferredModeId != 0 && mTmpApplySurfaceChangesTransactionState.preferredModeId == 0 && preferredModeId != 0) { && !w.inPinnedWindowingMode()) { mTmpApplySurfaceChangesTransactionState.preferredModeId = preferredModeId; } final float preferredMinRefreshRate = getDisplayPolicy().getRefreshRatePolicy() final float preferredMinRefreshRate = refreshRatePolicy .getPreferredMinRefreshRate(w); if (mTmpApplySurfaceChangesTransactionState.preferredMinRefreshRate == 0 && preferredMinRefreshRate != 0) { Loading @@ -1110,7 +1091,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp preferredMinRefreshRate; } final float preferredMaxRefreshRate = getDisplayPolicy().getRefreshRatePolicy() final float preferredMaxRefreshRate = refreshRatePolicy .getPreferredMaxRefreshRate(w); if (mTmpApplySurfaceChangesTransactionState.preferredMaxRefreshRate == 0 && preferredMaxRefreshRate != 0) { Loading services/core/java/com/android/server/wm/RootWindowContainer.java +0 −13 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREE import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; import static com.android.server.policy.PhoneWindowManager.SYSTEM_DIALOG_REASON_ASSIST; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT; Loading Loading @@ -796,18 +795,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> mWmService.mAtmService.mBackNavigationController .checkAnimationReady(defaultDisplay.mWallpaperController); for (int displayNdx = 0; displayNdx < mChildren.size(); ++displayNdx) { final DisplayContent displayContent = mChildren.get(displayNdx); if (displayContent.mWallpaperMayChange) { ProtoLog.v(WM_DEBUG_WALLPAPER, "Wallpaper may change! Adjusting"); displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { surfacePlacer.debugLayoutRepeats("WallpaperMayChange", displayContent.pendingLayoutChanges); } } } if (mWmService.mFocusMayChange) { mWmService.mFocusMayChange = false; mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_PLACING_SURFACES, Loading services/core/java/com/android/server/wm/WallpaperController.java +0 −27 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.view.Display.DEFAULT_DISPLAY; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREENSHOT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; Loading @@ -41,7 +40,6 @@ import android.os.Debug; import android.os.IBinder; import android.os.RemoteException; import android.os.SystemClock; import android.util.ArraySet; import android.util.MathUtils; import android.util.Slog; import android.util.SparseArray; Loading Loading @@ -820,8 +818,6 @@ class WallpaperController { } void adjustWallpaperWindows() { mDisplayContent.mWallpaperMayChange = false; // First find top-most window that has asked to be on top of the wallpaper; // all wallpapers go behind it. findWallpaperTarget(); Loading Loading @@ -924,29 +920,6 @@ class WallpaperController { return transitionReady; } /** * Adjusts the wallpaper windows if the input display has a pending wallpaper layout or one of * the opening apps should be a wallpaper target. */ void adjustWallpaperWindowsForAppTransitionIfNeeded(ArraySet<ActivityRecord> openingApps) { boolean adjust = false; if ((mDisplayContent.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) { adjust = true; } else { for (int i = openingApps.size() - 1; i >= 0; --i) { final ActivityRecord activity = openingApps.valueAt(i); if (activity.windowsCanBeWallpaperTarget()) { adjust = true; break; } } } if (adjust) { adjustWallpaperWindows(); } } void addWallpaperToken(WallpaperWindowToken token) { mWallpaperTokens.add(token); } Loading services/core/java/com/android/server/wm/WindowState.java +3 −5 Original line number Diff line number Diff line Loading @@ -4277,14 +4277,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } /** Makes the surface of drawn window (COMMIT_DRAW_PENDING) to be visible. */ boolean commitFinishDrawing(SurfaceControl.Transaction t) { boolean committed = mWinAnimator.commitFinishDrawingLocked(); if (committed) { void commitFinishDrawing(SurfaceControl.Transaction t) { if (mWinAnimator.commitFinishDrawingLocked()) { // Ensure that the visibility of buffer layer is set. mWinAnimator.prepareSurfaceLocked(t); } for (int i = mChildren.size() - 1; i >= 0; i--) { committed |= mChildren.get(i).commitFinishDrawing(t); mChildren.get(i).commitFinishDrawing(t); } // When a new activity is showing, update dim in this transaction Loading @@ -4302,7 +4301,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (getAnimationLeash() != null) { t.merge(getSyncTransaction()); } return committed; } // This must be called while inside a transaction. Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +1 −5 Original line number Diff line number Diff line Loading @@ -5586,12 +5586,8 @@ final class ActivityRecord extends WindowToken { /** Updates draw state and shows drawn windows. */ void commitFinishDrawing(SurfaceControl.Transaction t) { boolean committed = false; for (int i = mChildren.size() - 1; i >= 0; i--) { committed |= mChildren.get(i).commitFinishDrawing(t); } if (committed) { requestUpdateWallpaperIfNeeded(); mChildren.get(i).commitFinishDrawing(t); } } Loading
services/core/java/com/android/server/wm/DisplayContent.java +8 −27 Original line number Diff line number Diff line Loading @@ -128,7 +128,6 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREE import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SLEEP_TOKEN; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; Loading Loading @@ -591,8 +590,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp WallpaperController mWallpaperController; boolean mWallpaperMayChange = false; /** * A perf hint session which will boost the refresh rate for the display and change sf duration * to handle larger workloads. Loading Loading @@ -1021,25 +1018,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mImeLayeringTarget); private final Consumer<WindowState> mApplySurfaceChangesTransaction = w -> { final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked; final RootWindowContainer root = mWmService.mRoot; if (w.mHasSurface) { // Take care of the window being ready to display. final boolean committed = w.mWinAnimator.commitFinishDrawingLocked(); if (isDefaultDisplay && committed) { if (w.hasWallpaper()) { ProtoLog.v(WM_DEBUG_WALLPAPER, "First draw done in potential wallpaper target %s", w); mWallpaperMayChange = true; pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { surfacePlacer.debugLayoutRepeats( "wallpaper and commitFinishDrawingLocked true", pendingLayoutChanges); } } } w.mWinAnimator.commitFinishDrawingLocked(); } // Update effect. Loading @@ -1055,7 +1036,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mTmpApplySurfaceChangesTransactionState.obscured = true; } final boolean displayHasContent = root.handleNotObscuredLocked(w, final boolean displayHasContent = mRootWindowContainer.handleNotObscuredLocked(w, mTmpApplySurfaceChangesTransactionState.obscured, mTmpApplySurfaceChangesTransactionState.syswin); Loading Loading @@ -1093,16 +1074,16 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp mTmpApplySurfaceChangesTransactionState.disableHdrConversion |= !(w.mAttrs.isHdrConversionEnabled()); final int preferredModeId = getDisplayPolicy().getRefreshRatePolicy() .getPreferredModeId(w); final var refreshRatePolicy = getDisplayPolicy().getRefreshRatePolicy(); final int preferredModeId = refreshRatePolicy.getPreferredModeId(w); if (w.getWindowingMode() != WINDOWING_MODE_PINNED if (preferredModeId != 0 && mTmpApplySurfaceChangesTransactionState.preferredModeId == 0 && preferredModeId != 0) { && !w.inPinnedWindowingMode()) { mTmpApplySurfaceChangesTransactionState.preferredModeId = preferredModeId; } final float preferredMinRefreshRate = getDisplayPolicy().getRefreshRatePolicy() final float preferredMinRefreshRate = refreshRatePolicy .getPreferredMinRefreshRate(w); if (mTmpApplySurfaceChangesTransactionState.preferredMinRefreshRate == 0 && preferredMinRefreshRate != 0) { Loading @@ -1110,7 +1091,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp preferredMinRefreshRate; } final float preferredMaxRefreshRate = getDisplayPolicy().getRefreshRatePolicy() final float preferredMaxRefreshRate = refreshRatePolicy .getPreferredMaxRefreshRate(w); if (mTmpApplySurfaceChangesTransactionState.preferredMaxRefreshRate == 0 && preferredMaxRefreshRate != 0) { Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +0 −13 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREE import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; import static com.android.server.policy.PhoneWindowManager.SYSTEM_DIALOG_REASON_ASSIST; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT; Loading Loading @@ -796,18 +795,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> mWmService.mAtmService.mBackNavigationController .checkAnimationReady(defaultDisplay.mWallpaperController); for (int displayNdx = 0; displayNdx < mChildren.size(); ++displayNdx) { final DisplayContent displayContent = mChildren.get(displayNdx); if (displayContent.mWallpaperMayChange) { ProtoLog.v(WM_DEBUG_WALLPAPER, "Wallpaper may change! Adjusting"); displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; if (DEBUG_LAYOUT_REPEATS) { surfacePlacer.debugLayoutRepeats("WallpaperMayChange", displayContent.pendingLayoutChanges); } } } if (mWmService.mFocusMayChange) { mWmService.mFocusMayChange = false; mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_PLACING_SURFACES, Loading
services/core/java/com/android/server/wm/WallpaperController.java +0 −27 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.view.Display.DEFAULT_DISPLAY; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREENSHOT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; Loading @@ -41,7 +40,6 @@ import android.os.Debug; import android.os.IBinder; import android.os.RemoteException; import android.os.SystemClock; import android.util.ArraySet; import android.util.MathUtils; import android.util.Slog; import android.util.SparseArray; Loading Loading @@ -820,8 +818,6 @@ class WallpaperController { } void adjustWallpaperWindows() { mDisplayContent.mWallpaperMayChange = false; // First find top-most window that has asked to be on top of the wallpaper; // all wallpapers go behind it. findWallpaperTarget(); Loading Loading @@ -924,29 +920,6 @@ class WallpaperController { return transitionReady; } /** * Adjusts the wallpaper windows if the input display has a pending wallpaper layout or one of * the opening apps should be a wallpaper target. */ void adjustWallpaperWindowsForAppTransitionIfNeeded(ArraySet<ActivityRecord> openingApps) { boolean adjust = false; if ((mDisplayContent.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) { adjust = true; } else { for (int i = openingApps.size() - 1; i >= 0; --i) { final ActivityRecord activity = openingApps.valueAt(i); if (activity.windowsCanBeWallpaperTarget()) { adjust = true; break; } } } if (adjust) { adjustWallpaperWindows(); } } void addWallpaperToken(WallpaperWindowToken token) { mWallpaperTokens.add(token); } Loading
services/core/java/com/android/server/wm/WindowState.java +3 −5 Original line number Diff line number Diff line Loading @@ -4277,14 +4277,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } /** Makes the surface of drawn window (COMMIT_DRAW_PENDING) to be visible. */ boolean commitFinishDrawing(SurfaceControl.Transaction t) { boolean committed = mWinAnimator.commitFinishDrawingLocked(); if (committed) { void commitFinishDrawing(SurfaceControl.Transaction t) { if (mWinAnimator.commitFinishDrawingLocked()) { // Ensure that the visibility of buffer layer is set. mWinAnimator.prepareSurfaceLocked(t); } for (int i = mChildren.size() - 1; i >= 0; i--) { committed |= mChildren.get(i).commitFinishDrawing(t); mChildren.get(i).commitFinishDrawing(t); } // When a new activity is showing, update dim in this transaction Loading @@ -4302,7 +4301,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (getAnimationLeash() != null) { t.merge(getSyncTransaction()); } return committed; } // This must be called while inside a transaction. Loading