Loading core/java/android/view/WindowManagerPolicy.java +7 −2 Original line number Diff line number Diff line Loading @@ -784,9 +784,14 @@ public interface WindowManagerPolicy { public void screenTurningOn(ScreenOnListener screenOnListener); /** * Return whether the screen is currently on. * Return whether the screen is about to turn on or is currently on. */ public boolean isScreenOn(); public boolean isScreenOnEarly(); /** * Return whether the screen is fully turned on. */ public boolean isScreenOnFully(); /** * Tell the policy that the lid switch has changed state. Loading policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +33 −18 Original line number Diff line number Diff line Loading @@ -127,7 +127,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS; import android.view.WindowManagerImpl; import android.view.WindowManagerPolicy; import android.view.KeyCharacterMap.FallbackAction; import android.view.WindowManagerPolicy.ScreenOnListener; import android.view.accessibility.AccessibilityEvent; import android.view.animation.Animation; import android.view.animation.AnimationUtils; Loading Loading @@ -287,7 +286,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidKeyboardAccessibility; int mLidNavigationAccessibility; int mLongPressOnPowerBehavior = -1; boolean mScreenOn = false; boolean mScreenOnEarly = false; boolean mScreenOnFully = false; boolean mOrientationSensorEnabled = false; int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; static final int DEFAULT_ACCELEROMETER_ROTATION = 0; Loading Loading @@ -547,11 +547,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } //Could have been invoked due to screen turning on or off or //change of the currently visible window's orientation if (localLOGV) Log.v(TAG, "Screen status="+mScreenOn+ if (localLOGV) Log.v(TAG, "Screen status="+mScreenOnEarly+ ", current orientation="+mCurrentAppOrientation+ ", SensorEnabled="+mOrientationSensorEnabled); boolean disable = true; if (mScreenOn) { if (mScreenOnEarly) { if (needSensorRunningLp()) { disable = false; //enable listener if not already enabled Loading Loading @@ -2094,6 +2094,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { /** {@inheritDoc} */ public void animatingWindowLw(WindowState win, WindowManager.LayoutParams attrs) { if (DEBUG_LAYOUT) Slog.i(TAG, "Win " + win + ": isVisibleOrBehindKeyguardLw=" + win.isVisibleOrBehindKeyguardLw()); if (mTopFullscreenOpaqueWindowState == null && win.isVisibleOrBehindKeyguardLw()) { if ((attrs.flags & FLAG_FORCE_NOT_FULLSCREEN) != 0) { Loading Loading @@ -2137,10 +2139,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { : null; if (mStatusBar != null) { if (localLOGV) Log.i(TAG, "force=" + mForceStatusBar if (DEBUG_LAYOUT) Log.i(TAG, "force=" + mForceStatusBar + " top=" + mTopFullscreenOpaqueWindowState); if (mForceStatusBar) { if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar"); if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar: forced"); if (mStatusBar.showLw(true)) changes |= FINISH_LAYOUT_REDO_LAYOUT; } else if (mTopFullscreenOpaqueWindowState != null) { if (localLOGV) { Loading Loading @@ -2168,11 +2170,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } }}); } } else if (localLOGV) { } else if (DEBUG_LAYOUT) { Log.v(TAG, "Preventing status bar from hiding by policy"); } } else { if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar"); if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar: top is not fullscreen"); if (mStatusBar.showLw(true)) changes |= FINISH_LAYOUT_REDO_LAYOUT; } } Loading Loading @@ -2809,7 +2811,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { public void screenTurnedOff(int why) { EventLog.writeEvent(70000, 0); synchronized (mLock) { mScreenOn = false; mScreenOnEarly = false; mScreenOnFully = false; } mKeyguardMediator.onScreenTurnedOff(why); synchronized (mLock) { Loading @@ -2831,6 +2834,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void sendResult(Bundle data) { Slog.i(TAG, "Lock screen displayed!"); screenOnListener.onScreenOn(); synchronized (mLock) { mScreenOnFully = true; } } }); } catch (RemoteException e) { Loading @@ -2838,11 +2844,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { } else { Slog.i(TAG, "No lock screen!"); screenOnListener.onScreenOn(); synchronized (mLock) { mScreenOnFully = true; } } } }); synchronized (mLock) { mScreenOn = true; mScreenOnEarly = true; updateOrientationListenerLp(); updateLockScreenTimeout(); updateScreenSaverTimeoutLocked(); Loading @@ -2850,8 +2859,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { } /** {@inheritDoc} */ public boolean isScreenOn() { return mScreenOn; public boolean isScreenOnEarly() { return mScreenOnEarly; } /** {@inheritDoc} */ public boolean isScreenOnFully() { return mScreenOnFully; } /** {@inheritDoc} */ Loading Loading @@ -3238,7 +3252,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { synchronized (mScreenSaverActivator) { mHandler.removeCallbacks(mScreenSaverActivator); if (mScreenSaverEnabled && mScreenOn && mScreenSaverTimeout > 0) { if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) { if (localLOGV) Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now"); mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout); Loading @@ -3246,7 +3260,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (localLOGV) { if (mScreenSaverTimeout == 0) Log.v(TAG, "screen saver disabled by user"); else if (!mScreenOn) else if (!mScreenOnEarly) Log.v(TAG, "screen saver disabled while screen off"); else Log.v(TAG, "screen saver disabled by wakelock"); Loading @@ -3267,7 +3281,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private void updateLockScreenTimeout() { synchronized (mScreenLockTimeout) { boolean enable = (mAllowLockscreenWhenOn && mScreenOn && mKeyguardMediator.isSecure()); boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure()); if (mLockScreenTimerActive != enable) { if (enable) { if (localLOGV) Log.v(TAG, "setting lockscreen timer"); Loading Loading @@ -3476,7 +3490,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { public boolean allowKeyRepeat() { // disable key repeat when screen is off return mScreenOn; return mScreenOnEarly; } private void updateSystemUiVisibility() { Loading Loading @@ -3532,7 +3546,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(mLidKeyboardAccessibility); pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility); pw.print(" mLongPressOnPowerBehavior="); pw.println(mLongPressOnPowerBehavior); pw.print(prefix); pw.print("mScreenOn="); pw.print(mScreenOn); pw.print(prefix); pw.print("mScreenOnEarly="); pw.print(mScreenOnEarly); pw.print(" mScreenOnFully="); pw.print(mScreenOnFully); pw.print(" mOrientationSensorEnabled="); pw.print(mOrientationSensorEnabled); pw.print(" mHasSoftInput="); pw.println(mHasSoftInput); pw.print(prefix); pw.print("mUnrestrictedScreen=("); pw.print(mUnrestrictedScreenLeft); Loading services/java/com/android/server/wm/AppWindowToken.java +1 −1 Original line number Diff line number Diff line Loading @@ -194,7 +194,7 @@ class AppWindowToken extends WindowToken { // This must be called while inside a transaction. boolean stepAnimationLocked(long currentTime, int dw, int dh) { if (!service.mDisplayFrozen && service.mPolicy.isScreenOn()) { if (!service.mDisplayFrozen && service.mPolicy.isScreenOnFully()) { // We will run animations as long as the display isn't frozen. if (animation == WindowManagerService.sDummyAnimation) { Loading services/java/com/android/server/wm/WindowManagerService.java +19 −14 Original line number Diff line number Diff line Loading @@ -2199,7 +2199,8 @@ public class WindowManagerService extends IWindowManager.Stub // to hold off on removing the window until the animation is done. // If the display is frozen, just remove immediately, since the // animation wouldn't be seen. if (win.mSurface != null && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (win.mSurface != null && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { // If we are not currently running the exit animation, we // need to see about starting one. if (wasVisible=win.isWinVisibleLw()) { Loading Loading @@ -2577,7 +2578,7 @@ public class WindowManagerService extends IWindowManager.Stub if (displayed) { if (win.mSurface != null && !win.mDrawPending && !win.mCommitDrawPending && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { && mDisplayEnabled && mPolicy.isScreenOnFully()) { applyEnterAnimationLocked(win); } if ((win.mAttrs.flags Loading Loading @@ -2870,7 +2871,7 @@ public class WindowManagerService extends IWindowManager.Stub // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { int anim = mPolicy.selectAnimationLw(win, transit); int attr = -1; Animation a = null; Loading Loading @@ -2956,7 +2957,7 @@ public class WindowManagerService extends IWindowManager.Stub // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { Animation a; if (mNextAppTransitionPackage != null) { a = loadAnimation(mNextAppTransitionPackage, enter ? Loading Loading @@ -3522,7 +3523,7 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_APP_TRANSITIONS) Slog.v( TAG, "Prepare app transition: transit=" + transit + " mNextAppTransition=" + mNextAppTransition); if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { if (mNextAppTransition == WindowManagerPolicy.TRANSIT_UNSET || mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) { mNextAppTransition = transit; Loading Loading @@ -3606,7 +3607,7 @@ public class WindowManagerService extends IWindowManager.Stub // If the display is frozen, we won't do anything until the // actual window is displayed so there is no reason to put in // the starting window. if (mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOn()) { if (mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOnFully()) { return; } Loading Loading @@ -3888,7 +3889,7 @@ public class WindowManagerService extends IWindowManager.Stub // If we are preparing an app transition, then delay changing // the visibility of this token until we execute that transition. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn() if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully() && mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) { // Already in requested state, don't do anything more. if (wtoken.hiddenRequested != visible) { Loading Loading @@ -4016,7 +4017,7 @@ public class WindowManagerService extends IWindowManager.Stub } synchronized(mWindowMap) { if (configChanges == 0 && !mDisplayFrozen && mPolicy.isScreenOn()) { if (configChanges == 0 && !mDisplayFrozen && mPolicy.isScreenOnFully()) { if (DEBUG_ORIENTATION) Slog.v(TAG, "Skipping set freeze of " + token); return; } Loading Loading @@ -8137,10 +8138,10 @@ public class WindowManagerService extends IWindowManager.Stub w.mLastContentInsets.set(w.mContentInsets); w.mLastVisibleInsets.set(w.mVisibleInsets); // If the screen is currently frozen, then keep // it frozen until this window draws at its new // If the screen is currently frozen or off, then keep // it frozen/off until this window draws at its new // orientation. if (mDisplayFrozen) { if (mDisplayFrozen || !mPolicy.isScreenOnFully()) { if (DEBUG_ORIENTATION) Slog.v(TAG, "Resizing while display frozen: " + w); w.mOrientationChanging = true; Loading Loading @@ -8408,7 +8409,7 @@ public class WindowManagerService extends IWindowManager.Stub if (mDimAnimator != null && mDimAnimator.mDimShown) { animating |= mDimAnimator.updateSurface(dimming, currentTime, mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOn()); mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOnFully()); } if (!blurring && mBlurShown) { Loading Loading @@ -8604,10 +8605,14 @@ public class WindowManagerService extends IWindowManager.Stub WindowManagerPolicy.USE_LAST_ROTATION, 0, false); if (changed) { mH.sendEmptyMessage(H.SEND_NEW_CONFIGURATION); } else { updateRotation = false; } } if (orientationChangeComplete && !needRelayout && !updateRotation) { checkDrawnWindowsLocked(); } // Check to see if we are now in a state where the screen should // be enabled, because the window obscured flags have changed. Loading Loading @@ -8925,7 +8930,7 @@ public class WindowManagerService extends IWindowManager.Stub return; } if (mDisplay == null || !mPolicy.isScreenOn()) { if (mDisplay == null || !mPolicy.isScreenOnFully()) { // No need to freeze the screen before the system is ready or if // the screen is off. return; Loading services/java/com/android/server/wm/WindowState.java +14 −7 Original line number Diff line number Diff line Loading @@ -870,7 +870,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // This must be called while inside a transaction. Returns true if // there is more animation to run. boolean stepAnimationLocked(long currentTime, int dw, int dh) { if (!mService.mDisplayFrozen && mService.mPolicy.isScreenOn()) { if (!mService.mDisplayFrozen && mService.mPolicy.isScreenOnFully()) { // We will run animations as long as the display isn't frozen. if (!mDrawPending && !mCommitDrawPending && mAnimation != null) { Loading Loading @@ -1217,11 +1217,18 @@ final class WindowState implements WindowManagerPolicy.WindowState { * mPolicyVisibility. Ungh. */ public boolean isVisibleOrBehindKeyguardLw() { if (mRootToken.waitingToShow && mService.mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) { return false; } final AppWindowToken atoken = mAppToken; return mSurface != null && !mAttachedHidden final boolean animating = atoken != null ? (atoken.animation != null) : false; return mSurface != null && !mDestroying && !mExiting && (atoken == null ? mPolicyVisibility : !atoken.hiddenRequested) && !mDrawPending && !mCommitDrawPending && !mExiting && !mDestroying; && ((!mAttachedHidden && mViewVisibility == View.VISIBLE && !mRootToken.hidden) || mAnimation != null || animating); } /** Loading Loading @@ -1364,7 +1371,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { && (mFrame.top != mLastFrame.top || mFrame.left != mLastFrame.left) && (mAttachedWindow == null || !mAttachedWindow.shouldAnimateMove()) && mService.mPolicy.isScreenOn(); && mService.mPolicy.isScreenOnFully(); } boolean isFullscreen(int screenWidth, int screenHeight) { Loading Loading @@ -1449,7 +1456,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { if (doAnimation) { if (DEBUG_VISIBILITY) Slog.v(WindowManagerService.TAG, "doAnimation: mPolicyVisibility=" + mPolicyVisibility + " mAnimation=" + mAnimation); if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOn()) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOnFully()) { doAnimation = false; } else if (mPolicyVisibility && mAnimation == null) { // Check for the case where we are currently visible and Loading @@ -1475,7 +1482,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { boolean hideLw(boolean doAnimation, boolean requestAnim) { if (doAnimation) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOn()) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOnFully()) { doAnimation = false; } } Loading Loading
core/java/android/view/WindowManagerPolicy.java +7 −2 Original line number Diff line number Diff line Loading @@ -784,9 +784,14 @@ public interface WindowManagerPolicy { public void screenTurningOn(ScreenOnListener screenOnListener); /** * Return whether the screen is currently on. * Return whether the screen is about to turn on or is currently on. */ public boolean isScreenOn(); public boolean isScreenOnEarly(); /** * Return whether the screen is fully turned on. */ public boolean isScreenOnFully(); /** * Tell the policy that the lid switch has changed state. Loading
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +33 −18 Original line number Diff line number Diff line Loading @@ -127,7 +127,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS; import android.view.WindowManagerImpl; import android.view.WindowManagerPolicy; import android.view.KeyCharacterMap.FallbackAction; import android.view.WindowManagerPolicy.ScreenOnListener; import android.view.accessibility.AccessibilityEvent; import android.view.animation.Animation; import android.view.animation.AnimationUtils; Loading Loading @@ -287,7 +286,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidKeyboardAccessibility; int mLidNavigationAccessibility; int mLongPressOnPowerBehavior = -1; boolean mScreenOn = false; boolean mScreenOnEarly = false; boolean mScreenOnFully = false; boolean mOrientationSensorEnabled = false; int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; static final int DEFAULT_ACCELEROMETER_ROTATION = 0; Loading Loading @@ -547,11 +547,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } //Could have been invoked due to screen turning on or off or //change of the currently visible window's orientation if (localLOGV) Log.v(TAG, "Screen status="+mScreenOn+ if (localLOGV) Log.v(TAG, "Screen status="+mScreenOnEarly+ ", current orientation="+mCurrentAppOrientation+ ", SensorEnabled="+mOrientationSensorEnabled); boolean disable = true; if (mScreenOn) { if (mScreenOnEarly) { if (needSensorRunningLp()) { disable = false; //enable listener if not already enabled Loading Loading @@ -2094,6 +2094,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { /** {@inheritDoc} */ public void animatingWindowLw(WindowState win, WindowManager.LayoutParams attrs) { if (DEBUG_LAYOUT) Slog.i(TAG, "Win " + win + ": isVisibleOrBehindKeyguardLw=" + win.isVisibleOrBehindKeyguardLw()); if (mTopFullscreenOpaqueWindowState == null && win.isVisibleOrBehindKeyguardLw()) { if ((attrs.flags & FLAG_FORCE_NOT_FULLSCREEN) != 0) { Loading Loading @@ -2137,10 +2139,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { : null; if (mStatusBar != null) { if (localLOGV) Log.i(TAG, "force=" + mForceStatusBar if (DEBUG_LAYOUT) Log.i(TAG, "force=" + mForceStatusBar + " top=" + mTopFullscreenOpaqueWindowState); if (mForceStatusBar) { if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar"); if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar: forced"); if (mStatusBar.showLw(true)) changes |= FINISH_LAYOUT_REDO_LAYOUT; } else if (mTopFullscreenOpaqueWindowState != null) { if (localLOGV) { Loading Loading @@ -2168,11 +2170,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } }}); } } else if (localLOGV) { } else if (DEBUG_LAYOUT) { Log.v(TAG, "Preventing status bar from hiding by policy"); } } else { if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar"); if (DEBUG_LAYOUT) Log.v(TAG, "Showing status bar: top is not fullscreen"); if (mStatusBar.showLw(true)) changes |= FINISH_LAYOUT_REDO_LAYOUT; } } Loading Loading @@ -2809,7 +2811,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { public void screenTurnedOff(int why) { EventLog.writeEvent(70000, 0); synchronized (mLock) { mScreenOn = false; mScreenOnEarly = false; mScreenOnFully = false; } mKeyguardMediator.onScreenTurnedOff(why); synchronized (mLock) { Loading @@ -2831,6 +2834,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void sendResult(Bundle data) { Slog.i(TAG, "Lock screen displayed!"); screenOnListener.onScreenOn(); synchronized (mLock) { mScreenOnFully = true; } } }); } catch (RemoteException e) { Loading @@ -2838,11 +2844,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { } else { Slog.i(TAG, "No lock screen!"); screenOnListener.onScreenOn(); synchronized (mLock) { mScreenOnFully = true; } } } }); synchronized (mLock) { mScreenOn = true; mScreenOnEarly = true; updateOrientationListenerLp(); updateLockScreenTimeout(); updateScreenSaverTimeoutLocked(); Loading @@ -2850,8 +2859,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { } /** {@inheritDoc} */ public boolean isScreenOn() { return mScreenOn; public boolean isScreenOnEarly() { return mScreenOnEarly; } /** {@inheritDoc} */ public boolean isScreenOnFully() { return mScreenOnFully; } /** {@inheritDoc} */ Loading Loading @@ -3238,7 +3252,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { synchronized (mScreenSaverActivator) { mHandler.removeCallbacks(mScreenSaverActivator); if (mScreenSaverEnabled && mScreenOn && mScreenSaverTimeout > 0) { if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) { if (localLOGV) Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now"); mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout); Loading @@ -3246,7 +3260,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (localLOGV) { if (mScreenSaverTimeout == 0) Log.v(TAG, "screen saver disabled by user"); else if (!mScreenOn) else if (!mScreenOnEarly) Log.v(TAG, "screen saver disabled while screen off"); else Log.v(TAG, "screen saver disabled by wakelock"); Loading @@ -3267,7 +3281,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private void updateLockScreenTimeout() { synchronized (mScreenLockTimeout) { boolean enable = (mAllowLockscreenWhenOn && mScreenOn && mKeyguardMediator.isSecure()); boolean enable = (mAllowLockscreenWhenOn && mScreenOnEarly && mKeyguardMediator.isSecure()); if (mLockScreenTimerActive != enable) { if (enable) { if (localLOGV) Log.v(TAG, "setting lockscreen timer"); Loading Loading @@ -3476,7 +3490,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { public boolean allowKeyRepeat() { // disable key repeat when screen is off return mScreenOn; return mScreenOnEarly; } private void updateSystemUiVisibility() { Loading Loading @@ -3532,7 +3546,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(mLidKeyboardAccessibility); pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility); pw.print(" mLongPressOnPowerBehavior="); pw.println(mLongPressOnPowerBehavior); pw.print(prefix); pw.print("mScreenOn="); pw.print(mScreenOn); pw.print(prefix); pw.print("mScreenOnEarly="); pw.print(mScreenOnEarly); pw.print(" mScreenOnFully="); pw.print(mScreenOnFully); pw.print(" mOrientationSensorEnabled="); pw.print(mOrientationSensorEnabled); pw.print(" mHasSoftInput="); pw.println(mHasSoftInput); pw.print(prefix); pw.print("mUnrestrictedScreen=("); pw.print(mUnrestrictedScreenLeft); Loading
services/java/com/android/server/wm/AppWindowToken.java +1 −1 Original line number Diff line number Diff line Loading @@ -194,7 +194,7 @@ class AppWindowToken extends WindowToken { // This must be called while inside a transaction. boolean stepAnimationLocked(long currentTime, int dw, int dh) { if (!service.mDisplayFrozen && service.mPolicy.isScreenOn()) { if (!service.mDisplayFrozen && service.mPolicy.isScreenOnFully()) { // We will run animations as long as the display isn't frozen. if (animation == WindowManagerService.sDummyAnimation) { Loading
services/java/com/android/server/wm/WindowManagerService.java +19 −14 Original line number Diff line number Diff line Loading @@ -2199,7 +2199,8 @@ public class WindowManagerService extends IWindowManager.Stub // to hold off on removing the window until the animation is done. // If the display is frozen, just remove immediately, since the // animation wouldn't be seen. if (win.mSurface != null && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (win.mSurface != null && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { // If we are not currently running the exit animation, we // need to see about starting one. if (wasVisible=win.isWinVisibleLw()) { Loading Loading @@ -2577,7 +2578,7 @@ public class WindowManagerService extends IWindowManager.Stub if (displayed) { if (win.mSurface != null && !win.mDrawPending && !win.mCommitDrawPending && !mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { && mDisplayEnabled && mPolicy.isScreenOnFully()) { applyEnterAnimationLocked(win); } if ((win.mAttrs.flags Loading Loading @@ -2870,7 +2871,7 @@ public class WindowManagerService extends IWindowManager.Stub // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { int anim = mPolicy.selectAnimationLw(win, transit); int attr = -1; Animation a = null; Loading Loading @@ -2956,7 +2957,7 @@ public class WindowManagerService extends IWindowManager.Stub // frozen, there is no reason to animate and it can cause strange // artifacts when we unfreeze the display if some different animation // is running. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { Animation a; if (mNextAppTransitionPackage != null) { a = loadAnimation(mNextAppTransitionPackage, enter ? Loading Loading @@ -3522,7 +3523,7 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_APP_TRANSITIONS) Slog.v( TAG, "Prepare app transition: transit=" + transit + " mNextAppTransition=" + mNextAppTransition); if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn()) { if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully()) { if (mNextAppTransition == WindowManagerPolicy.TRANSIT_UNSET || mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) { mNextAppTransition = transit; Loading Loading @@ -3606,7 +3607,7 @@ public class WindowManagerService extends IWindowManager.Stub // If the display is frozen, we won't do anything until the // actual window is displayed so there is no reason to put in // the starting window. if (mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOn()) { if (mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOnFully()) { return; } Loading Loading @@ -3888,7 +3889,7 @@ public class WindowManagerService extends IWindowManager.Stub // If we are preparing an app transition, then delay changing // the visibility of this token until we execute that transition. if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOn() if (!mDisplayFrozen && mDisplayEnabled && mPolicy.isScreenOnFully() && mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) { // Already in requested state, don't do anything more. if (wtoken.hiddenRequested != visible) { Loading Loading @@ -4016,7 +4017,7 @@ public class WindowManagerService extends IWindowManager.Stub } synchronized(mWindowMap) { if (configChanges == 0 && !mDisplayFrozen && mPolicy.isScreenOn()) { if (configChanges == 0 && !mDisplayFrozen && mPolicy.isScreenOnFully()) { if (DEBUG_ORIENTATION) Slog.v(TAG, "Skipping set freeze of " + token); return; } Loading Loading @@ -8137,10 +8138,10 @@ public class WindowManagerService extends IWindowManager.Stub w.mLastContentInsets.set(w.mContentInsets); w.mLastVisibleInsets.set(w.mVisibleInsets); // If the screen is currently frozen, then keep // it frozen until this window draws at its new // If the screen is currently frozen or off, then keep // it frozen/off until this window draws at its new // orientation. if (mDisplayFrozen) { if (mDisplayFrozen || !mPolicy.isScreenOnFully()) { if (DEBUG_ORIENTATION) Slog.v(TAG, "Resizing while display frozen: " + w); w.mOrientationChanging = true; Loading Loading @@ -8408,7 +8409,7 @@ public class WindowManagerService extends IWindowManager.Stub if (mDimAnimator != null && mDimAnimator.mDimShown) { animating |= mDimAnimator.updateSurface(dimming, currentTime, mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOn()); mDisplayFrozen || !mDisplayEnabled || !mPolicy.isScreenOnFully()); } if (!blurring && mBlurShown) { Loading Loading @@ -8604,10 +8605,14 @@ public class WindowManagerService extends IWindowManager.Stub WindowManagerPolicy.USE_LAST_ROTATION, 0, false); if (changed) { mH.sendEmptyMessage(H.SEND_NEW_CONFIGURATION); } else { updateRotation = false; } } if (orientationChangeComplete && !needRelayout && !updateRotation) { checkDrawnWindowsLocked(); } // Check to see if we are now in a state where the screen should // be enabled, because the window obscured flags have changed. Loading Loading @@ -8925,7 +8930,7 @@ public class WindowManagerService extends IWindowManager.Stub return; } if (mDisplay == null || !mPolicy.isScreenOn()) { if (mDisplay == null || !mPolicy.isScreenOnFully()) { // No need to freeze the screen before the system is ready or if // the screen is off. return; Loading
services/java/com/android/server/wm/WindowState.java +14 −7 Original line number Diff line number Diff line Loading @@ -870,7 +870,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // This must be called while inside a transaction. Returns true if // there is more animation to run. boolean stepAnimationLocked(long currentTime, int dw, int dh) { if (!mService.mDisplayFrozen && mService.mPolicy.isScreenOn()) { if (!mService.mDisplayFrozen && mService.mPolicy.isScreenOnFully()) { // We will run animations as long as the display isn't frozen. if (!mDrawPending && !mCommitDrawPending && mAnimation != null) { Loading Loading @@ -1217,11 +1217,18 @@ final class WindowState implements WindowManagerPolicy.WindowState { * mPolicyVisibility. Ungh. */ public boolean isVisibleOrBehindKeyguardLw() { if (mRootToken.waitingToShow && mService.mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) { return false; } final AppWindowToken atoken = mAppToken; return mSurface != null && !mAttachedHidden final boolean animating = atoken != null ? (atoken.animation != null) : false; return mSurface != null && !mDestroying && !mExiting && (atoken == null ? mPolicyVisibility : !atoken.hiddenRequested) && !mDrawPending && !mCommitDrawPending && !mExiting && !mDestroying; && ((!mAttachedHidden && mViewVisibility == View.VISIBLE && !mRootToken.hidden) || mAnimation != null || animating); } /** Loading Loading @@ -1364,7 +1371,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { && (mFrame.top != mLastFrame.top || mFrame.left != mLastFrame.left) && (mAttachedWindow == null || !mAttachedWindow.shouldAnimateMove()) && mService.mPolicy.isScreenOn(); && mService.mPolicy.isScreenOnFully(); } boolean isFullscreen(int screenWidth, int screenHeight) { Loading Loading @@ -1449,7 +1456,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { if (doAnimation) { if (DEBUG_VISIBILITY) Slog.v(WindowManagerService.TAG, "doAnimation: mPolicyVisibility=" + mPolicyVisibility + " mAnimation=" + mAnimation); if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOn()) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOnFully()) { doAnimation = false; } else if (mPolicyVisibility && mAnimation == null) { // Check for the case where we are currently visible and Loading @@ -1475,7 +1482,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { boolean hideLw(boolean doAnimation, boolean requestAnim) { if (doAnimation) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOn()) { if (mService.mDisplayFrozen || !mService.mPolicy.isScreenOnFully()) { doAnimation = false; } } Loading