Loading services/core/java/com/android/server/policy/WindowManagerPolicy.java +0 −7 Original line number Diff line number Diff line Loading @@ -335,13 +335,6 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { */ boolean isAnimatingLw(); /** * @return Whether the window can affect SystemUI flags, meaning that SystemUI (system bars, * for example) will be affected by the flags specified in this window. This is the * case when the surface is on screen but not exiting. */ boolean canAffectSystemUiFlags(); /** * Is this window considered to be gone for purposes of layout? */ Loading services/core/java/com/android/server/wm/ActivityRecord.java +3 −3 Original line number Diff line number Diff line Loading @@ -5576,12 +5576,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A /** * @return The to top most child window for which {@link LayoutParams#isFullscreen()} returns * true. * true and isn't fully transparent. */ WindowState getTopFullscreenWindow() { WindowState getTopFullscreenOpaqueWindow() { for (int i = mChildren.size() - 1; i >= 0; i--) { final WindowState win = mChildren.get(i); if (win != null && win.mAttrs.isFullscreen()) { if (win != null && win.mAttrs.isFullscreen() && !win.isFullyTransparent()) { return win; } } Loading services/core/java/com/android/server/wm/TaskSnapshotController.java +5 −5 Original line number Diff line number Diff line Loading @@ -565,16 +565,16 @@ class TaskSnapshotController { } /** * @return The SystemUI visibility flags for the top fullscreen window in the given * @return The SystemUI visibility flags for the top fullscreen opaque window in the given * {@param task}. */ private int getSystemUiVisibility(Task task) { final ActivityRecord topFullscreenActivity = task.getTopFullscreenActivity(); final WindowState topFullscreenWindow = topFullscreenActivity != null ? topFullscreenActivity.getTopFullscreenWindow() final WindowState topFullscreenOpaqueWindow = topFullscreenActivity != null ? topFullscreenActivity.getTopFullscreenOpaqueWindow() : null; if (topFullscreenWindow != null) { return topFullscreenWindow.getSystemUiVisibility(); if (topFullscreenOpaqueWindow != null) { return topFullscreenOpaqueWindow.getSystemUiVisibility(); } return 0; } Loading services/core/java/com/android/server/wm/TaskSnapshotSurface.java +8 −8 Original line number Diff line number Diff line Loading @@ -155,7 +155,7 @@ class TaskSnapshotSurface implements StartingSurface { final MergedConfiguration tmpMergedConfiguration = new MergedConfiguration(); final TaskDescription taskDescription = new TaskDescription(); taskDescription.setBackgroundColor(WHITE); final WindowState topFullscreenWindow; final WindowState topFullscreenOpaqueWindow; final int sysUiVis; final int windowFlags; final int windowPrivateFlags; Loading @@ -175,15 +175,15 @@ class TaskSnapshotSurface implements StartingSurface { + task); return null; } topFullscreenWindow = topFullscreenActivity.getTopFullscreenWindow(); if (mainWindow == null || topFullscreenWindow == null) { topFullscreenOpaqueWindow = topFullscreenActivity.getTopFullscreenOpaqueWindow(); if (mainWindow == null || topFullscreenOpaqueWindow == null) { Slog.w(TAG, "TaskSnapshotSurface.create: Failed to find main window for activity=" + activity); return null; } sysUiVis = topFullscreenWindow.getSystemUiVisibility(); windowFlags = topFullscreenWindow.getAttrs().flags; windowPrivateFlags = topFullscreenWindow.getAttrs().privateFlags; sysUiVis = topFullscreenOpaqueWindow.getSystemUiVisibility(); windowFlags = topFullscreenOpaqueWindow.getAttrs().flags; windowPrivateFlags = topFullscreenOpaqueWindow.getAttrs().privateFlags; layoutParams.packageName = mainWindow.getAttrs().packageName; layoutParams.windowAnimations = mainWindow.getAttrs().windowAnimations; Loading @@ -206,7 +206,7 @@ class TaskSnapshotSurface implements StartingSurface { } taskBounds = new Rect(); task.getBounds(taskBounds); currentOrientation = topFullscreenWindow.getConfiguration().orientation; currentOrientation = topFullscreenOpaqueWindow.getConfiguration().orientation; } try { final int res = session.addToDisplay(window, window.mSeq, layoutParams, Loading @@ -222,7 +222,7 @@ class TaskSnapshotSurface implements StartingSurface { final TaskSnapshotSurface snapshotSurface = new TaskSnapshotSurface(service, window, surfaceControl, snapshot, layoutParams.getTitle(), taskDescription, sysUiVis, windowFlags, windowPrivateFlags, taskBounds, currentOrientation, topFullscreenWindow.getClientInsetsState()); currentOrientation, topFullscreenOpaqueWindow.getClientInsetsState()); window.setOuter(snapshotSurface); try { session.relayout(window, window.mSeq, layoutParams, -1, -1, View.VISIBLE, 0, -1, Loading services/core/java/com/android/server/wm/WindowState.java +11 −5 Original line number Diff line number Diff line Loading @@ -1642,11 +1642,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP && (parentAndClientVisible || isAnimating(TRANSITION | PARENTS)); } // TODO: Another visibility method that was added late in the release to minimize risk. @Override public boolean canAffectSystemUiFlags() { final boolean translucent = mAttrs.alpha == 0.0f; if (translucent) { boolean isFullyTransparent() { return mAttrs.alpha == 0f; } /** * @return Whether the window can affect SystemUI flags, meaning that SystemUI (system bars, * for example) will be affected by the flags specified in this window. This is the * case when the surface is on screen but not exiting. */ boolean canAffectSystemUiFlags() { if (isFullyTransparent()) { return false; } if (mActivityRecord == null) { Loading Loading
services/core/java/com/android/server/policy/WindowManagerPolicy.java +0 −7 Original line number Diff line number Diff line Loading @@ -335,13 +335,6 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { */ boolean isAnimatingLw(); /** * @return Whether the window can affect SystemUI flags, meaning that SystemUI (system bars, * for example) will be affected by the flags specified in this window. This is the * case when the surface is on screen but not exiting. */ boolean canAffectSystemUiFlags(); /** * Is this window considered to be gone for purposes of layout? */ Loading
services/core/java/com/android/server/wm/ActivityRecord.java +3 −3 Original line number Diff line number Diff line Loading @@ -5576,12 +5576,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A /** * @return The to top most child window for which {@link LayoutParams#isFullscreen()} returns * true. * true and isn't fully transparent. */ WindowState getTopFullscreenWindow() { WindowState getTopFullscreenOpaqueWindow() { for (int i = mChildren.size() - 1; i >= 0; i--) { final WindowState win = mChildren.get(i); if (win != null && win.mAttrs.isFullscreen()) { if (win != null && win.mAttrs.isFullscreen() && !win.isFullyTransparent()) { return win; } } Loading
services/core/java/com/android/server/wm/TaskSnapshotController.java +5 −5 Original line number Diff line number Diff line Loading @@ -565,16 +565,16 @@ class TaskSnapshotController { } /** * @return The SystemUI visibility flags for the top fullscreen window in the given * @return The SystemUI visibility flags for the top fullscreen opaque window in the given * {@param task}. */ private int getSystemUiVisibility(Task task) { final ActivityRecord topFullscreenActivity = task.getTopFullscreenActivity(); final WindowState topFullscreenWindow = topFullscreenActivity != null ? topFullscreenActivity.getTopFullscreenWindow() final WindowState topFullscreenOpaqueWindow = topFullscreenActivity != null ? topFullscreenActivity.getTopFullscreenOpaqueWindow() : null; if (topFullscreenWindow != null) { return topFullscreenWindow.getSystemUiVisibility(); if (topFullscreenOpaqueWindow != null) { return topFullscreenOpaqueWindow.getSystemUiVisibility(); } return 0; } Loading
services/core/java/com/android/server/wm/TaskSnapshotSurface.java +8 −8 Original line number Diff line number Diff line Loading @@ -155,7 +155,7 @@ class TaskSnapshotSurface implements StartingSurface { final MergedConfiguration tmpMergedConfiguration = new MergedConfiguration(); final TaskDescription taskDescription = new TaskDescription(); taskDescription.setBackgroundColor(WHITE); final WindowState topFullscreenWindow; final WindowState topFullscreenOpaqueWindow; final int sysUiVis; final int windowFlags; final int windowPrivateFlags; Loading @@ -175,15 +175,15 @@ class TaskSnapshotSurface implements StartingSurface { + task); return null; } topFullscreenWindow = topFullscreenActivity.getTopFullscreenWindow(); if (mainWindow == null || topFullscreenWindow == null) { topFullscreenOpaqueWindow = topFullscreenActivity.getTopFullscreenOpaqueWindow(); if (mainWindow == null || topFullscreenOpaqueWindow == null) { Slog.w(TAG, "TaskSnapshotSurface.create: Failed to find main window for activity=" + activity); return null; } sysUiVis = topFullscreenWindow.getSystemUiVisibility(); windowFlags = topFullscreenWindow.getAttrs().flags; windowPrivateFlags = topFullscreenWindow.getAttrs().privateFlags; sysUiVis = topFullscreenOpaqueWindow.getSystemUiVisibility(); windowFlags = topFullscreenOpaqueWindow.getAttrs().flags; windowPrivateFlags = topFullscreenOpaqueWindow.getAttrs().privateFlags; layoutParams.packageName = mainWindow.getAttrs().packageName; layoutParams.windowAnimations = mainWindow.getAttrs().windowAnimations; Loading @@ -206,7 +206,7 @@ class TaskSnapshotSurface implements StartingSurface { } taskBounds = new Rect(); task.getBounds(taskBounds); currentOrientation = topFullscreenWindow.getConfiguration().orientation; currentOrientation = topFullscreenOpaqueWindow.getConfiguration().orientation; } try { final int res = session.addToDisplay(window, window.mSeq, layoutParams, Loading @@ -222,7 +222,7 @@ class TaskSnapshotSurface implements StartingSurface { final TaskSnapshotSurface snapshotSurface = new TaskSnapshotSurface(service, window, surfaceControl, snapshot, layoutParams.getTitle(), taskDescription, sysUiVis, windowFlags, windowPrivateFlags, taskBounds, currentOrientation, topFullscreenWindow.getClientInsetsState()); currentOrientation, topFullscreenOpaqueWindow.getClientInsetsState()); window.setOuter(snapshotSurface); try { session.relayout(window, window.mSeq, layoutParams, -1, -1, View.VISIBLE, 0, -1, Loading
services/core/java/com/android/server/wm/WindowState.java +11 −5 Original line number Diff line number Diff line Loading @@ -1642,11 +1642,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP && (parentAndClientVisible || isAnimating(TRANSITION | PARENTS)); } // TODO: Another visibility method that was added late in the release to minimize risk. @Override public boolean canAffectSystemUiFlags() { final boolean translucent = mAttrs.alpha == 0.0f; if (translucent) { boolean isFullyTransparent() { return mAttrs.alpha == 0f; } /** * @return Whether the window can affect SystemUI flags, meaning that SystemUI (system bars, * for example) will be affected by the flags specified in this window. This is the * case when the surface is on screen but not exiting. */ boolean canAffectSystemUiFlags() { if (isFullyTransparent()) { return false; } if (mActivityRecord == null) { Loading