diff options
8 files changed, 37 insertions, 21 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index e87da3cbc170..264a1020ddc9 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -66,6 +66,7 @@ import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.UnlockMethodCache; import com.android.systemui.statusbar.policy.DeviceProvisionedController; +import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.util.AsyncSensorManager; import com.android.systemui.util.InjectionInflationController; import com.android.systemui.util.leak.GarbageMonitor; @@ -144,9 +145,9 @@ public class SystemUIFactory { LockscreenWallpaper lockscreenWallpaper, TriConsumer<ScrimState, Float, GradientColors> scrimStateListener, Consumer<Integer> scrimVisibleListener, DozeParameters dozeParameters, - AlarmManager alarmManager) { + AlarmManager alarmManager, KeyguardMonitor keyguardMonitor) { return new ScrimController(scrimBehind, scrimInFront, scrimStateListener, - scrimVisibleListener, dozeParameters, alarmManager); + scrimVisibleListener, dozeParameters, alarmManager, keyguardMonitor); } public NotificationIconAreaController createNotificationIconAreaController(Context context, diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java index c209b315b197..83b000dca83b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java @@ -296,10 +296,13 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mY = y - containerLocation[1]; } - private final Callback mKeyguardCallback = () -> { - if (!isAttachedToWindow()) return; - if (Dependency.get(KeyguardMonitor.class).isShowing() && !mOpening) { - hide(); + private final Callback mKeyguardCallback = new Callback() { + @Override + public void onKeyguardShowingChanged() { + if (!isAttachedToWindow()) return; + if (Dependency.get(KeyguardMonitor.class).isShowing() && !mOpening) { + hide(); + } } }; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index b12bf5c39970..a7262cfcfefb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -47,6 +47,7 @@ import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.notification.stack.ViewState; +import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.util.AlarmTimeout; import com.android.systemui.util.wakelock.DelayedWakeLock; import com.android.systemui.util.wakelock.WakeLock; @@ -177,7 +178,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, TriConsumer<ScrimState, Float, GradientColors> scrimStateListener, Consumer<Integer> scrimVisibleListener, DozeParameters dozeParameters, - AlarmManager alarmManager) { + AlarmManager alarmManager, KeyguardMonitor keyguardMonitor) { mScrimBehind = scrimBehind; mScrimInFront = scrimInFront; mScrimStateListener = scrimStateListener; @@ -197,6 +198,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo // to make sure that text on top of it is legible. mScrimBehindAlpha = mScrimBehindAlphaResValue; mDozeParameters = dozeParameters; + keyguardMonitor.addCallback(new KeyguardMonitor.Callback() { + @Override + public void onKeyguardFadingAwayChanged() { + setKeyguardFadingAway(keyguardMonitor.isKeyguardFadingAway(), + keyguardMonitor.getKeyguardFadingAwayDuration()); + } + }); mColorExtractor = Dependency.get(SysuiColorExtractor.class); mColorExtractor.addOnColorsChangedListener(this); @@ -948,9 +956,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo } } - public void setUnlockIsFading(boolean unlockFading) { + private void setKeyguardFadingAway(boolean fadingAway, long duration) { for (ScrimState state : ScrimState.values()) { - state.setUnlockIsFading(unlockFading); + state.setKeyguardFadingAway(fadingAway, duration); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java index b45914b2e83d..9fdd3b88e9d0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java @@ -156,8 +156,8 @@ public enum ScrimState { public void prepare(ScrimState previousState) { mCurrentBehindAlpha = 0; mCurrentInFrontAlpha = 0; - mAnimationDuration = mUnlockIsFading - ? KeyguardBypassController.BYPASS_PANEL_FADE_DURATION + mAnimationDuration = mKeyguardFadingAway + ? mKeyguardFadingAwayDuration : StatusBar.FADE_KEYGUARD_DURATION; mAnimateChange = !mLaunchingAffordanceWithPreview; @@ -209,7 +209,8 @@ public enum ScrimState { boolean mHasBackdrop; boolean mLaunchingAffordanceWithPreview; boolean mWakeLockScreenSensorActive; - boolean mUnlockIsFading; + boolean mKeyguardFadingAway; + long mKeyguardFadingAwayDuration; ScrimState(int index) { mIndex = index; @@ -298,7 +299,8 @@ public enum ScrimState { mWakeLockScreenSensorActive = active; } - public void setUnlockIsFading(boolean unlockIsFading) { - mUnlockIsFading = unlockIsFading; + public void setKeyguardFadingAway(boolean fadingAway, long duration) { + mKeyguardFadingAway = fadingAway; + mKeyguardFadingAwayDuration = duration; } }
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index c943a04c0f2a..d12bed9d4f6d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -938,7 +938,8 @@ public class StatusBar extends SystemUI implements DemoMode, mStatusBarWindow.onScrimVisibilityChanged(scrimsVisible); } }, DozeParameters.getInstance(mContext), - mContext.getSystemService(AlarmManager.class)); + mContext.getSystemService(AlarmManager.class), + mKeyguardMonitor); mNotificationPanel.initDependencies(this, mGroupManager, mNotificationShelf, mHeadsUpManager, mNotificationIconAreaController, mScrimController); mDozeScrimController = new DozeScrimController(DozeParameters.getInstance(context)); @@ -3864,7 +3865,6 @@ public class StatusBar extends SystemUI implements DemoMode, public void notifyBiometricAuthModeChanged() { updateDozing(); - mScrimController.setUnlockIsFading(mBiometricUnlockController.isUnlockFading()); updateScrimController(); mStatusBarWindow.onBiometricAuthModeChanged(mBiometricUnlockController.isWakeAndUnlock(), mBiometricUnlockController.isBiometricUnlock()); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java index 070136ec94c1..e1ef809a883c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java @@ -76,7 +76,7 @@ public interface KeyguardMonitor extends CallbackController<Callback> { } interface Callback { - void onKeyguardShowingChanged(); + default void onKeyguardShowingChanged() {} default void onKeyguardFadingAwayChanged() {} } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java index 8829be4ee0f8..87ed14a9eeec 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitorImpl.java @@ -142,10 +142,10 @@ public class KeyguardMonitorImpl extends KeyguardUpdateMonitorCallback } public void notifyKeyguardFadingAway(long delay, long fadeoutDuration, boolean isBypassFading) { - setKeyguardFadingAway(true); mKeyguardFadingAwayDelay = delay; mKeyguardFadingAwayDuration = fadeoutDuration; mBypassFadingAnimation = isBypassFading; + setKeyguardFadingAway(true); } private void setKeyguardFadingAway(boolean keyguardFadingAway) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 0dbf30881ffe..97ad47ec3f0c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -47,6 +47,7 @@ import com.android.internal.colorextraction.ColorExtractor.GradientColors; import com.android.internal.util.function.TriConsumer; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.ScrimView; +import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.util.wakelock.WakeLock; import com.android.systemui.utils.os.FakeHandler; @@ -96,7 +97,8 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimBehindAlpha = scrimBehindAlpha; mScrimInFrontColor = scrimInFrontColor; }, - visible -> mScrimVisibility = visible, mDozeParamenters, mAlarmManager); + visible -> mScrimVisibility = visible, mDozeParamenters, mAlarmManager, + mock(KeyguardMonitor.class)); mScrimController.setHasBackdrop(false); mScrimController.setWallpaperSupportsAmbientMode(false); mScrimController.transitionTo(ScrimState.KEYGUARD); @@ -681,9 +683,9 @@ public class ScrimControllerTest extends SysuiTestCase { SynchronousScrimController(ScrimView scrimBehind, ScrimView scrimInFront, TriConsumer<ScrimState, Float, GradientColors> scrimStateListener, Consumer<Integer> scrimVisibleListener, DozeParameters dozeParameters, - AlarmManager alarmManager) { + AlarmManager alarmManager, KeyguardMonitor keyguardMonitor) { super(scrimBehind, scrimInFront, scrimStateListener, scrimVisibleListener, - dozeParameters, alarmManager); + dozeParameters, alarmManager, keyguardMonitor); } @Override |