Merge "Possible fix and additional logging for b/337742708" into main
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 65a59f5..c023b83 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -4536,6 +4536,13 @@
private final class StatusBarStateListener implements StateListener {
@Override
public void onStateChanged(int statusBarState) {
+ onStateChanged(statusBarState, false);
+ }
+
+ private void onStateChanged(
+ int statusBarState,
+ boolean animatingUnlockedShadeToKeyguardBypass
+ ) {
boolean goingToFullShade = mStatusBarStateController.goingToFullShade();
boolean keyguardFadingAway = mKeyguardStateController.isKeyguardFadingAway();
int oldState = mBarState;
@@ -4607,15 +4614,14 @@
// - getting notified again about the current SHADE or KEYGUARD state
final boolean animatingUnlockedShadeToKeyguard = oldState == SHADE
&& statusBarState == KEYGUARD
- && mScreenOffAnimationController.isKeyguardShowDelayed();
+ && mScreenOffAnimationController.isKeyguardShowDelayed()
+ //Bypasses animatingUnlockedShadeToKeyguard for b/337742708
+ && !animatingUnlockedShadeToKeyguardBypass;
if (!animatingUnlockedShadeToKeyguard) {
// Only make the status bar visible if we're not animating the screen off, since
// we only want to be showing the clock/notifications during the animation.
- if (keyguardShowing) {
- mShadeLog.v("Updating keyguard status bar state to visible");
- } else {
- mShadeLog.v("Updating keyguard status bar state to invisible");
- }
+ mShadeLog.logKeyguardStatudBarVisibiliy(keyguardShowing, isOnAod(),
+ animatingUnlockedShadeToKeyguardBypass, oldState, statusBarState);
mKeyguardStatusBarViewController.updateViewState(
/* alpha= */ 1f,
keyguardShowing ? View.VISIBLE : View.INVISIBLE);
@@ -4692,7 +4698,8 @@
.addTagListener(QS.TAG, mQsController.getQsFragmentListener());
if (!SceneContainerFlag.isEnabled()) {
mStatusBarStateController.addCallback(mStatusBarStateListener);
- mStatusBarStateListener.onStateChanged(mStatusBarStateController.getState());
+ // Bypass animatingUnlockedShadeToKeyguard in onStateChanged for b/337742708
+ mStatusBarStateListener.onStateChanged(mStatusBarStateController.getState(), true);
}
mConfigurationController.addCallback(mConfigurationListener);
// Theme might have changed between inflating this view and attaching it to the
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
index 66a310c..f1eaec8 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
@@ -411,4 +411,29 @@
}
)
}
+
+ fun logKeyguardStatudBarVisibiliy(
+ visibility: Boolean,
+ isOnAod: Boolean,
+ animatingUnlockedShadeToKeyguardBypass: Boolean,
+ oldShadeState: Int,
+ newShadeState: Int,
+ ) {
+ buffer.log(
+ TAG,
+ LogLevel.VERBOSE,
+ {
+ bool1 = visibility
+ bool2 = isOnAod
+ bool3 = animatingUnlockedShadeToKeyguardBypass
+ int1 = oldShadeState
+ int2 = newShadeState
+ },
+ {
+ "Setting keyguard status bar visibility to: $bool1, isOnAod: $bool2" +
+ "oldShadeState: $int1, newShadeState: $int2," +
+ "animatingUnlockedShadeToKeyguardBypass: $bool3"
+ }
+ )
+ }
}