diff options
11 files changed, 10 insertions, 104 deletions
diff --git a/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl b/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl index 8e454db4cb04..419b1f8feac7 100644 --- a/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl +++ b/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl @@ -20,5 +20,4 @@ interface IKeyguardStateCallback { void onSimSecureStateChanged(boolean simSecure); void onInputRestrictedStateChanged(boolean inputRestricted); void onTrustedChanged(boolean trusted); - void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper); }
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 4e35aed8e859..a41a49799c2d 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -272,7 +272,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean mBouncer; // true if bouncerIsOrWillBeShowing private boolean mAuthInterruptActive; private boolean mNeedsSlowUnlockTransition; - private boolean mHasLockscreenWallpaper; private boolean mAssistantVisible; private boolean mKeyguardOccluded; private boolean mOccludingAppRequestingFp; @@ -2536,31 +2535,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } /** - * Update the state whether Keyguard currently has a lockscreen wallpaper. - * - * @param hasLockscreenWallpaper Whether Keyguard has a lockscreen wallpaper. - */ - public void setHasLockscreenWallpaper(boolean hasLockscreenWallpaper) { - Assert.isMainThread(); - if (hasLockscreenWallpaper != mHasLockscreenWallpaper) { - mHasLockscreenWallpaper = hasLockscreenWallpaper; - for (int i = 0; i < mCallbacks.size(); i++) { - KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); - if (cb != null) { - cb.onHasLockscreenWallpaperChanged(hasLockscreenWallpaper); - } - } - } - } - - /** - * @return Whether Keyguard has a lockscreen wallpaper. - */ - public boolean hasLockscreenWallpaper() { - return mHasLockscreenWallpaper; - } - - /** * Handle {@link #MSG_DPM_STATE_CHANGED} */ private void handleDevicePolicyManagerStateChanged(int userId) { diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java index 1e951f923f13..12431984c9b9 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java @@ -292,11 +292,6 @@ public class KeyguardUpdateMonitorCallback { public void onStrongAuthStateChanged(int userId) { } /** - * Called when the state whether we have a lockscreen wallpaper has changed. - */ - public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { } - - /** * Called when the dream's window state is changed. * @param dreaming true if the dream's window has been created and is visible */ diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index be84a82234a1..19ee50ac99cd 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -673,13 +673,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, } } } - - @Override - public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { - synchronized (KeyguardViewMediator.this) { - notifyHasLockscreenWallpaperChanged(hasLockscreenWallpaper); - } - } }; ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() { @@ -2899,21 +2892,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, } } - private void notifyHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { - int size = mKeyguardStateCallbacks.size(); - for (int i = size - 1; i >= 0; i--) { - try { - mKeyguardStateCallbacks.get(i).onHasLockscreenWallpaperChanged( - hasLockscreenWallpaper); - } catch (RemoteException e) { - Slog.w(TAG, "Failed to call onHasLockscreenWallpaperChanged", e); - if (e instanceof DeadObjectException) { - mKeyguardStateCallbacks.remove(i); - } - } - } - } - public void addStateMonitorCallback(IKeyguardStateCallback callback) { synchronized (this) { mKeyguardStateCallbacks.add(callback); @@ -2923,7 +2901,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable, callback.onInputRestrictedStateChanged(mInputRestricted); callback.onTrustedChanged(mUpdateMonitor.getUserHasTrust( KeyguardUpdateMonitor.getCurrentUser())); - callback.onHasLockscreenWallpaperChanged(mUpdateMonitor.hasLockscreenWallpaper()); } catch (RemoteException e) { Slog.w(TAG, "Failed to call to IKeyguardStateCallback", e); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java index 78fcd82dc1f5..2a13e6bbd37e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java @@ -119,7 +119,6 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen LoaderResult result = loadBitmap(mCurrentUserId, mSelectedUser); if (result.success) { mCached = true; - mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mCache = result.bitmap; } return mCache; @@ -235,7 +234,6 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen if (result.success) { mCached = true; mCache = result.bitmap; - mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mMediaManager.updateMediaMetaData( true /* metaDataChanged */, true /* allowEnterAnimation */); } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 7e5fe08d022f..83b7489dec85 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -47,7 +47,6 @@ import static android.view.KeyEvent.KEYCODE_VOLUME_UP; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW; import static android.view.WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW; -import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER; import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW; @@ -3304,17 +3303,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { final boolean notify = !WindowManagerService.sEnableRemoteKeyguardOccludeAnimation || !transitionStarted; mKeyguardDelegate.setOccluded(isOccluded, animate, notify); - if (!showing) { - return false; - } - if (mKeyguardCandidate != null) { - if (isOccluded) { - mKeyguardCandidate.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER; - } else if (!mKeyguardDelegate.hasLockscreenWallpaper()) { - mKeyguardCandidate.getAttrs().flags |= FLAG_SHOW_WALLPAPER; - } - } - return true; + return showing; } /** {@inheritDoc} */ diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java index 8978fabbb9d2..0080ec6cc989 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java @@ -234,13 +234,6 @@ public class KeyguardServiceDelegate { return false; } - public boolean hasLockscreenWallpaper() { - if (mKeyguardService != null) { - return mKeyguardService.hasLockscreenWallpaper(); - } - return false; - } - public boolean hasKeyguard() { return mKeyguardState.deviceHasKeyguard; } diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java index 051f555fab95..ac650ec0f564 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java @@ -261,10 +261,6 @@ public class KeyguardServiceWrapper implements IKeyguardService { return mKeyguardStateMonitor.isTrusted(); } - public boolean hasLockscreenWallpaper() { - return mKeyguardStateMonitor.hasLockscreenWallpaper(); - } - public boolean isSecure(int userId) { return mKeyguardStateMonitor.isSecure(userId); } diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java index add0b01f1879..e6511372d62c 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java @@ -44,7 +44,6 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { private volatile boolean mSimSecure = true; private volatile boolean mInputRestricted = true; private volatile boolean mTrusted = false; - private volatile boolean mHasLockscreenWallpaper = false; private int mCurrentUserId; @@ -79,10 +78,6 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { return mTrusted; } - public boolean hasLockscreenWallpaper() { - return mHasLockscreenWallpaper; - } - @Override // Binder interface public void onShowingStateChanged(boolean showing) { mIsShowing = showing; @@ -110,11 +105,6 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { mCallback.onTrustedChanged(); } - @Override // Binder interface - public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { - mHasLockscreenWallpaper = hasLockscreenWallpaper; - } - public interface StateCallback { void onTrustedChanged(); void onShowingChanged(); diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 50c56de49134..0c0d01c3db89 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -899,15 +899,6 @@ public class DisplayPolicy { // letterboxed. Hence always let them extend under the cutout. attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; break; - case TYPE_NOTIFICATION_SHADE: - // If the Keyguard is in a hidden state (occluded by another window), we force to - // remove the wallpaper and keyguard flag so that any change in-flight after setting - // the keyguard as occluded wouldn't set these flags again. - // See {@link #processKeyguardSetHiddenResultLw}. - if (mService.mPolicy.isKeyguardOccluded()) { - attrs.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER; - } - break; case TYPE_TOAST: // While apps should use the dedicated toast APIs to add such windows diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 4cde0489bba3..9e7bbcda94bb 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2583,13 +2583,17 @@ public class WindowManagerService extends IWindowManager.Stub // an exit. win.mAnimatingExit = true; } else if (win.mDisplayContent.okToAnimate() - && win.mDisplayContent.mWallpaperController.isWallpaperTarget(win)) { - // If the wallpaper is currently behind this - // window, we need to change both of them inside - // of a transaction to avoid artifacts. + && win.mDisplayContent.mWallpaperController.isWallpaperTarget(win) + && win.mAttrs.type != TYPE_NOTIFICATION_SHADE) { + // If the wallpaper is currently behind this app window, we need to change both of them + // inside of a transaction to avoid artifacts. + // For NotificationShade, sysui is in charge of running window animation and it updates + // the client view visibility only after both NotificationShade and the wallpaper are + // hidden. So we don't need to care about exit animation, but can destroy its surface + // immediately. win.mAnimatingExit = true; } else { - boolean stopped = win.mActivityRecord != null ? win.mActivityRecord.mAppStopped : true; + boolean stopped = win.mActivityRecord == null || win.mActivityRecord.mAppStopped; // We set mDestroying=true so ActivityRecord#notifyAppStopped in-to destroy surfaces // will later actually destroy the surface if we do not do so here. Normally we leave // this to the exit animation. |