Merge "Update wallpaper visibility at time of hide/show." into jb-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f8d05b4ea6
@@ -93,6 +93,7 @@ public class WindowAnimator {
|
||||
final WindowStateAnimator winAnimator = wallpaper.mWinAnimator;
|
||||
if (!winAnimator.mLastHidden) {
|
||||
winAnimator.hide();
|
||||
mService.dispatchWallpaperVisibility(wallpaper, false);
|
||||
mPendingLayoutChanges |= WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1870,16 +1870,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
// First, make sure the client has the current visibility
|
||||
// state.
|
||||
if (wallpaper.mWallpaperVisible != visible) {
|
||||
wallpaper.mWallpaperVisible = visible;
|
||||
try {
|
||||
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
|
||||
"Setting visibility of wallpaper " + wallpaper
|
||||
+ ": " + visible);
|
||||
wallpaper.mClient.dispatchAppVisibility(visible);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
dispatchWallpaperVisibility(wallpaper, visible);
|
||||
|
||||
wallpaper.mWinAnimator.mAnimLayer = wallpaper.mLayer + mWallpaperAnimLayerAdjustment;
|
||||
if (DEBUG_LAYERS || DEBUG_WALLPAPER) Slog.v(TAG, "adjustWallpaper win "
|
||||
@@ -2089,6 +2080,24 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check wallpaper for visiblity change and notify window if so.
|
||||
* @param wallpaper The wallpaper to test and notify.
|
||||
* @param visible Current visibility.
|
||||
*/
|
||||
void dispatchWallpaperVisibility(final WindowState wallpaper, final boolean visible) {
|
||||
if (wallpaper.mWallpaperVisible != visible) {
|
||||
wallpaper.mWallpaperVisible = visible;
|
||||
try {
|
||||
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
|
||||
"Updating visibility of wallpaper " + wallpaper
|
||||
+ ": " + visible + " Callers=" + Debug.getCallers(2));
|
||||
wallpaper.mClient.dispatchAppVisibility(visible);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateWallpaperVisibilityLocked() {
|
||||
final boolean visible = isWallpaperVisible(mWallpaperTarget);
|
||||
final int dw = mAppDisplayWidth;
|
||||
@@ -2113,16 +2122,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
updateWallpaperOffsetLocked(wallpaper, dw, dh, false);
|
||||
}
|
||||
|
||||
if (wallpaper.mWallpaperVisible != visible) {
|
||||
wallpaper.mWallpaperVisible = visible;
|
||||
try {
|
||||
if (DEBUG_VISIBILITY || DEBUG_WALLPAPER) Slog.v(TAG,
|
||||
"Updating visibility of wallpaper " + wallpaper
|
||||
+ ": " + visible);
|
||||
wallpaper.mClient.dispatchAppVisibility(visible);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
dispatchWallpaperVisibility(wallpaper, visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1122,6 +1122,9 @@ class WindowStateAnimator {
|
||||
+ " during relayout");
|
||||
if (showSurfaceRobustlyLocked()) {
|
||||
mLastHidden = false;
|
||||
if (w.mIsWallpaper) {
|
||||
mService.dispatchWallpaperVisibility(w, true);
|
||||
}
|
||||
} else {
|
||||
w.mOrientationChanging = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user