Loading packages/SystemUI/res/anim/navbar_fade_in.xml +1 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,5 @@ android:fromAlpha="0.0" android:toAlpha="1.0" android:interpolator="@android:interpolator/linear_out_slow_in" android:startDelay="32" android:duration="200"/> packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +2 −1 Original line number Diff line number Diff line Loading @@ -3441,7 +3441,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, .alpha(0f) .setStartDelay(0) .setDuration(FADE_KEYGUARD_DURATION_PULSING) .setInterpolator(ScrimController.KEYGUARD_FADE_OUT_INTERPOLATOR); .setInterpolator(ScrimController.KEYGUARD_FADE_OUT_INTERPOLATOR) .start(); } /** Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +12 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Color; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; Loading Loading @@ -87,6 +86,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private float mTopHeadsUpDragAmount; private View mDraggedHeadsUpView; private boolean mForceHideScrims; private boolean mSkipFirstFrame; public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim, boolean scrimSrcEnabled) { Loading Loading @@ -134,14 +134,20 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, scheduleUpdate(); } public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished) { public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished, boolean skipFirstFrame) { mWakeAndUnlocking = false; mAnimateKeyguardFadingOut = true; mDurationOverride = duration; mAnimationDelay = delay; mAnimateChange = true; mSkipFirstFrame = skipFirstFrame; mOnAnimationFinished = onAnimationFinished; scheduleUpdate(); // No need to wait for the next frame to be drawn for this case - onPreDraw will execute // the changes we just scheduled. onPreDraw(); } public void abortKeyguardFadingOut() { Loading Loading @@ -339,6 +345,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, } }); anim.start(); if (mSkipFirstFrame) { anim.setCurrentPlayTime(16); } scrim.setTag(TAG_KEY_ANIM, anim); scrim.setTag(TAG_KEY_ANIM_TARGET, target); } Loading @@ -354,6 +363,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, updateScrims(); mDurationOverride = -1; mAnimationDelay = 0; mSkipFirstFrame = false; // Make sure that we always call the listener even if we didn't start an animation. endAnimateKeyguardFadingOut(false /* force */); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +17 −17 Original line number Diff line number Diff line Loading @@ -74,7 +74,6 @@ public class StatusBarKeyguardViewManager { private boolean mLastOccluded; private boolean mLastBouncerShowing; private boolean mLastBouncerDismissible; private boolean mLastDeferScrimFadeOut; private OnDismissAction mAfterKeyguardGoneAction; private boolean mDeviceWillWakeUp; private boolean mDeferScrimFadeOut; Loading Loading @@ -184,7 +183,8 @@ public class StatusBarKeyguardViewManager { mScreenTurnedOn = true; if (mDeferScrimFadeOut) { mDeferScrimFadeOut = false; animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS); animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, true /* skipFirstFrame */); updateStates(); } mPhoneStatusBar.onScreenTurnedOn(); Loading Loading @@ -264,7 +264,8 @@ public class StatusBarKeyguardViewManager { updateStates(); mScrimController.animateKeyguardFadingOut( PhoneStatusBar.FADE_KEYGUARD_START_DELAY, PhoneStatusBar.FADE_KEYGUARD_DURATION, null); PhoneStatusBar.FADE_KEYGUARD_DURATION, null, false /* skipFirstFrame */); } }, new Runnable() { @Override Loading @@ -287,7 +288,7 @@ public class StatusBarKeyguardViewManager { public void run() { mPhoneStatusBar.hideKeyguard(); } }); }, false /* skipFirstFrame */); } else { mFingerprintUnlockController.startKeyguardFadingAway(); mPhoneStatusBar.setKeyguardFadingAway(startTime, delay, fadeoutDuration); Loading @@ -302,10 +303,12 @@ public class StatusBarKeyguardViewManager { // Screen is already on, don't defer with fading out. animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS); WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, true /* skipFirstFrame */); } } else { animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration); animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration, false /* skipFirstFrame */); } } else { mScrimController.animateGoingToFullShade(delay, fadeoutDuration); Loading @@ -320,12 +323,14 @@ public class StatusBarKeyguardViewManager { } } private void animateScrimControllerKeyguardFadingOut(long delay, long duration) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */); private void animateScrimControllerKeyguardFadingOut(long delay, long duration, boolean skipFirstFrame) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */, skipFirstFrame); } private void animateScrimControllerKeyguardFadingOut(long delay, long duration, final Runnable endRunnable) { final Runnable endRunnable, boolean skipFirstFrame) { Trace.asyncTraceBegin(Trace.TRACE_TAG_VIEW, "Fading out", 0); mScrimController.animateKeyguardFadingOut(delay, duration, new Runnable() { @Override Loading @@ -340,7 +345,7 @@ public class StatusBarKeyguardViewManager { ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN); Trace.asyncTraceEnd(Trace.TRACE_TAG_VIEW, "Fading out", 0); } }); }, skipFirstFrame); } private void executeAfterKeyguardGoneAction() { Loading Loading @@ -414,7 +419,6 @@ public class StatusBarKeyguardViewManager { boolean occluded = mOccluded; boolean bouncerShowing = mBouncer.isShowing(); boolean bouncerDismissible = !mBouncer.isFullscreenBouncer(); boolean deferScrimFadeOut = mDeferScrimFadeOut; if ((bouncerDismissible || !showing) != (mLastBouncerDismissible || !mLastShowing) || mFirstUpdate) { Loading @@ -425,11 +429,8 @@ public class StatusBarKeyguardViewManager { } } // Hide navigation bar on Keyguard but not on bouncer and also if we are deferring a scrim // fade out, i.e. we are waiting for the screen to have turned on. boolean navBarVisible = !deferScrimFadeOut && (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = !mLastDeferScrimFadeOut && (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); boolean navBarVisible = (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); if (navBarVisible != lastNavBarVisible || mFirstUpdate) { if (mPhoneStatusBar.getNavigationBarView() != null) { if (navBarVisible) { Loading Loading @@ -464,7 +465,6 @@ public class StatusBarKeyguardViewManager { mFirstUpdate = false; mLastShowing = showing; mLastOccluded = occluded; mLastDeferScrimFadeOut = deferScrimFadeOut; mLastBouncerShowing = bouncerShowing; mLastBouncerDismissible = bouncerDismissible; Loading services/core/java/com/android/server/wm/WindowManagerService.java +7 −1 Original line number Diff line number Diff line Loading @@ -11956,12 +11956,18 @@ public class WindowManagerService extends IWindowManager.Stub final WindowList windows = getDefaultWindowListLocked(); for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowState win = windows.get(winNdx); final boolean isForceHiding = mPolicy.isForceHiding(win.mAttrs); if (win.isVisibleLw() && (win.mAppToken != null || mPolicy.isForceHiding(win.mAttrs))) { && (win.mAppToken != null || isForceHiding)) { win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING; // Force add to mResizingWindows. win.mLastContentInsets.set(-1, -1, -1, -1); mWaitingForDrawn.add(win); // No need to wait for the windows below Keyguard. if (isForceHiding) { break; } } } requestTraversalLocked(); Loading Loading
packages/SystemUI/res/anim/navbar_fade_in.xml +1 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,5 @@ android:fromAlpha="0.0" android:toAlpha="1.0" android:interpolator="@android:interpolator/linear_out_slow_in" android:startDelay="32" android:duration="200"/>
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +2 −1 Original line number Diff line number Diff line Loading @@ -3441,7 +3441,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, .alpha(0f) .setStartDelay(0) .setDuration(FADE_KEYGUARD_DURATION_PULSING) .setInterpolator(ScrimController.KEYGUARD_FADE_OUT_INTERPOLATOR); .setInterpolator(ScrimController.KEYGUARD_FADE_OUT_INTERPOLATOR) .start(); } /** Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +12 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Color; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; Loading Loading @@ -87,6 +86,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private float mTopHeadsUpDragAmount; private View mDraggedHeadsUpView; private boolean mForceHideScrims; private boolean mSkipFirstFrame; public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim, boolean scrimSrcEnabled) { Loading Loading @@ -134,14 +134,20 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, scheduleUpdate(); } public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished) { public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished, boolean skipFirstFrame) { mWakeAndUnlocking = false; mAnimateKeyguardFadingOut = true; mDurationOverride = duration; mAnimationDelay = delay; mAnimateChange = true; mSkipFirstFrame = skipFirstFrame; mOnAnimationFinished = onAnimationFinished; scheduleUpdate(); // No need to wait for the next frame to be drawn for this case - onPreDraw will execute // the changes we just scheduled. onPreDraw(); } public void abortKeyguardFadingOut() { Loading Loading @@ -339,6 +345,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, } }); anim.start(); if (mSkipFirstFrame) { anim.setCurrentPlayTime(16); } scrim.setTag(TAG_KEY_ANIM, anim); scrim.setTag(TAG_KEY_ANIM_TARGET, target); } Loading @@ -354,6 +363,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, updateScrims(); mDurationOverride = -1; mAnimationDelay = 0; mSkipFirstFrame = false; // Make sure that we always call the listener even if we didn't start an animation. endAnimateKeyguardFadingOut(false /* force */); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +17 −17 Original line number Diff line number Diff line Loading @@ -74,7 +74,6 @@ public class StatusBarKeyguardViewManager { private boolean mLastOccluded; private boolean mLastBouncerShowing; private boolean mLastBouncerDismissible; private boolean mLastDeferScrimFadeOut; private OnDismissAction mAfterKeyguardGoneAction; private boolean mDeviceWillWakeUp; private boolean mDeferScrimFadeOut; Loading Loading @@ -184,7 +183,8 @@ public class StatusBarKeyguardViewManager { mScreenTurnedOn = true; if (mDeferScrimFadeOut) { mDeferScrimFadeOut = false; animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS); animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, true /* skipFirstFrame */); updateStates(); } mPhoneStatusBar.onScreenTurnedOn(); Loading Loading @@ -264,7 +264,8 @@ public class StatusBarKeyguardViewManager { updateStates(); mScrimController.animateKeyguardFadingOut( PhoneStatusBar.FADE_KEYGUARD_START_DELAY, PhoneStatusBar.FADE_KEYGUARD_DURATION, null); PhoneStatusBar.FADE_KEYGUARD_DURATION, null, false /* skipFirstFrame */); } }, new Runnable() { @Override Loading @@ -287,7 +288,7 @@ public class StatusBarKeyguardViewManager { public void run() { mPhoneStatusBar.hideKeyguard(); } }); }, false /* skipFirstFrame */); } else { mFingerprintUnlockController.startKeyguardFadingAway(); mPhoneStatusBar.setKeyguardFadingAway(startTime, delay, fadeoutDuration); Loading @@ -302,10 +303,12 @@ public class StatusBarKeyguardViewManager { // Screen is already on, don't defer with fading out. animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS); WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, true /* skipFirstFrame */); } } else { animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration); animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration, false /* skipFirstFrame */); } } else { mScrimController.animateGoingToFullShade(delay, fadeoutDuration); Loading @@ -320,12 +323,14 @@ public class StatusBarKeyguardViewManager { } } private void animateScrimControllerKeyguardFadingOut(long delay, long duration) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */); private void animateScrimControllerKeyguardFadingOut(long delay, long duration, boolean skipFirstFrame) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */, skipFirstFrame); } private void animateScrimControllerKeyguardFadingOut(long delay, long duration, final Runnable endRunnable) { final Runnable endRunnable, boolean skipFirstFrame) { Trace.asyncTraceBegin(Trace.TRACE_TAG_VIEW, "Fading out", 0); mScrimController.animateKeyguardFadingOut(delay, duration, new Runnable() { @Override Loading @@ -340,7 +345,7 @@ public class StatusBarKeyguardViewManager { ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN); Trace.asyncTraceEnd(Trace.TRACE_TAG_VIEW, "Fading out", 0); } }); }, skipFirstFrame); } private void executeAfterKeyguardGoneAction() { Loading Loading @@ -414,7 +419,6 @@ public class StatusBarKeyguardViewManager { boolean occluded = mOccluded; boolean bouncerShowing = mBouncer.isShowing(); boolean bouncerDismissible = !mBouncer.isFullscreenBouncer(); boolean deferScrimFadeOut = mDeferScrimFadeOut; if ((bouncerDismissible || !showing) != (mLastBouncerDismissible || !mLastShowing) || mFirstUpdate) { Loading @@ -425,11 +429,8 @@ public class StatusBarKeyguardViewManager { } } // Hide navigation bar on Keyguard but not on bouncer and also if we are deferring a scrim // fade out, i.e. we are waiting for the screen to have turned on. boolean navBarVisible = !deferScrimFadeOut && (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = !mLastDeferScrimFadeOut && (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); boolean navBarVisible = (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); if (navBarVisible != lastNavBarVisible || mFirstUpdate) { if (mPhoneStatusBar.getNavigationBarView() != null) { if (navBarVisible) { Loading Loading @@ -464,7 +465,6 @@ public class StatusBarKeyguardViewManager { mFirstUpdate = false; mLastShowing = showing; mLastOccluded = occluded; mLastDeferScrimFadeOut = deferScrimFadeOut; mLastBouncerShowing = bouncerShowing; mLastBouncerDismissible = bouncerDismissible; Loading
services/core/java/com/android/server/wm/WindowManagerService.java +7 −1 Original line number Diff line number Diff line Loading @@ -11956,12 +11956,18 @@ public class WindowManagerService extends IWindowManager.Stub final WindowList windows = getDefaultWindowListLocked(); for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowState win = windows.get(winNdx); final boolean isForceHiding = mPolicy.isForceHiding(win.mAttrs); if (win.isVisibleLw() && (win.mAppToken != null || mPolicy.isForceHiding(win.mAttrs))) { && (win.mAppToken != null || isForceHiding)) { win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING; // Force add to mResizingWindows. win.mLastContentInsets.set(-1, -1, -1, -1); mWaitingForDrawn.add(win); // No need to wait for the windows below Keyguard. if (isForceHiding) { break; } } } requestTraversalLocked(); Loading