Loading services/java/com/android/server/wm/WindowManagerService.java +32 −22 Original line number Diff line number Diff line Loading @@ -4426,6 +4426,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void setAppWillBeHidden(IBinder token) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppWillBeHidden()")) { Loading Loading @@ -4549,6 +4550,7 @@ public class WindowManagerService extends IWindowManager.Stub return delayed; } @Override public void setAppVisibility(IBinder token, boolean visible) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppVisibility()")) { Loading Loading @@ -4702,6 +4704,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void startAppFreezingScreen(IBinder token, int configChanges) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppFreezingScreen()")) { Loading @@ -4725,6 +4728,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void stopAppFreezingScreen(IBinder token, boolean force) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppFreezingScreen()")) { Loading Loading @@ -8957,12 +8961,14 @@ public class WindowManagerService extends IWindowManager.Stub // so we want to leave all of them as undimmed (for // performance reasons). mInnerFields.mObscured = true; } else if (canBeSeen && (attrFlags & FLAG_DIM_BEHIND) != 0 && !(w.mAppToken != null && w.mAppToken.hiddenRequested) } } private void handleFlagDimBehind(WindowState w, int innerDw, int innerDh) { final WindowManager.LayoutParams attrs = w.mAttrs; if ((attrs.flags & FLAG_DIM_BEHIND) != 0 && w.isDisplayedLw() && !w.mExiting) { if (localLOGV) Slog.v(TAG, "Win " + w + " obscured=" + mInnerFields.mObscured); if (!mInnerFields.mDimming) { //Slog.i(TAG, "DIM BEHIND: " + w); mInnerFields.mDimming = true; final WindowStateAnimator winAnimator = w.mWinAnimator; if (!mAnimator.isDimmingLocked(winAnimator)) { Loading @@ -8975,12 +8981,12 @@ public class WindowManagerService extends IWindowManager.Stub width = innerDw; height = innerDh; } if (localLOGV) Slog.v(TAG, "Win " + w + " start dimming."); startDimmingLocked( winAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount, width, height); } } } } private void updateAllDrawnLocked() { // See if any windows have been drawn, so they (and others Loading Loading @@ -9156,6 +9162,10 @@ public class WindowManagerService extends IWindowManager.Stub handleNotObscuredLocked(w, currentTime, innerDw, innerDh); } if (!mInnerFields.mDimming) { handleFlagDimBehind(w, innerDw, innerDh); } if (isDefaultDisplay && obscuredChanged && (mWallpaperTarget == w) && w.isVisibleLw()) { // This is the wallpaper target and its obscured state Loading Loading
services/java/com/android/server/wm/WindowManagerService.java +32 −22 Original line number Diff line number Diff line Loading @@ -4426,6 +4426,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void setAppWillBeHidden(IBinder token) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppWillBeHidden()")) { Loading Loading @@ -4549,6 +4550,7 @@ public class WindowManagerService extends IWindowManager.Stub return delayed; } @Override public void setAppVisibility(IBinder token, boolean visible) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppVisibility()")) { Loading Loading @@ -4702,6 +4704,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void startAppFreezingScreen(IBinder token, int configChanges) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppFreezingScreen()")) { Loading @@ -4725,6 +4728,7 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void stopAppFreezingScreen(IBinder token, boolean force) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppFreezingScreen()")) { Loading Loading @@ -8957,12 +8961,14 @@ public class WindowManagerService extends IWindowManager.Stub // so we want to leave all of them as undimmed (for // performance reasons). mInnerFields.mObscured = true; } else if (canBeSeen && (attrFlags & FLAG_DIM_BEHIND) != 0 && !(w.mAppToken != null && w.mAppToken.hiddenRequested) } } private void handleFlagDimBehind(WindowState w, int innerDw, int innerDh) { final WindowManager.LayoutParams attrs = w.mAttrs; if ((attrs.flags & FLAG_DIM_BEHIND) != 0 && w.isDisplayedLw() && !w.mExiting) { if (localLOGV) Slog.v(TAG, "Win " + w + " obscured=" + mInnerFields.mObscured); if (!mInnerFields.mDimming) { //Slog.i(TAG, "DIM BEHIND: " + w); mInnerFields.mDimming = true; final WindowStateAnimator winAnimator = w.mWinAnimator; if (!mAnimator.isDimmingLocked(winAnimator)) { Loading @@ -8975,12 +8981,12 @@ public class WindowManagerService extends IWindowManager.Stub width = innerDw; height = innerDh; } if (localLOGV) Slog.v(TAG, "Win " + w + " start dimming."); startDimmingLocked( winAnimator, w.mExiting ? 0 : w.mAttrs.dimAmount, width, height); } } } } private void updateAllDrawnLocked() { // See if any windows have been drawn, so they (and others Loading Loading @@ -9156,6 +9162,10 @@ public class WindowManagerService extends IWindowManager.Stub handleNotObscuredLocked(w, currentTime, innerDw, innerDh); } if (!mInnerFields.mDimming) { handleFlagDimBehind(w, innerDw, innerDh); } if (isDefaultDisplay && obscuredChanged && (mWallpaperTarget == w) && w.isVisibleLw()) { // This is the wallpaper target and its obscured state Loading