diff options
| author | 2022-04-04 18:15:24 +0000 | |
|---|---|---|
| committer | 2022-04-04 18:15:24 +0000 | |
| commit | 0340a16437e17f36f750bac23f2c976c170ae87a (patch) | |
| tree | f2fb54954b5307cf24b6d4d6907b6b2d8049a704 | |
| parent | b46b98ee488b7f96adab100c31aebd434b683731 (diff) | |
| parent | b76c8250da0d8b028cde8d40d4b2b95bdea11742 (diff) | |
Merge "Hide manage & clear affordances on transition to KG" into tm-dev
4 files changed, 34 insertions, 4 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java index 9829918a0302..9ed3bac57e66 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java @@ -94,6 +94,12 @@ public interface StatusBarStateController { } /** + * Callback to be notified about upcoming state changes. Typically, is immediately followed + * by #onStateChanged, unless there was an intentional delay in updating the state changed. + */ + default void onUpcomingStateChanged(int upcomingState) {} + + /** * Callback to be notified when Dozing changes. Dozing is stored separately from state. */ default void onDozingChanged(boolean isDozing) {} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java index 93103e2c3f49..e026c1973197 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java @@ -205,7 +205,7 @@ public class StatusBarStateControllerImpl implements } mLastState = mState; mState = state; - mUpcomingState = state; + updateUpcomingState(mState); mUiEventLogger.log(StatusBarStateEvent.fromState(mState)); Trace.instantForTrack(Trace.TRACE_TAG_APP, "UI Events", "StatusBarState " + tag); for (RankedListener rl : new ArrayList<>(mListeners)) { @@ -223,8 +223,18 @@ public class StatusBarStateControllerImpl implements @Override public void setUpcomingState(int nextState) { - mUpcomingState = nextState; - recordHistoricalState(mUpcomingState /* newState */, mState /* lastState */, true); + recordHistoricalState(nextState /* newState */, mState /* lastState */, true); + updateUpcomingState(nextState); + + } + + private void updateUpcomingState(int upcomingState) { + if (mUpcomingState != upcomingState) { + mUpcomingState = upcomingState; + for (RankedListener rl : new ArrayList<>(mListeners)) { + rl.mListener.onUpcomingStateChanged(mUpcomingState); + } + } } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 61e0fda9c8d3..8271a8894014 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -427,6 +427,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable private boolean mInHeadsUpPinnedMode; private boolean mHeadsUpAnimatingAway; private int mStatusBarState; + private int mUpcomingStatusBarState; private int mCachedBackgroundColor; private boolean mHeadsUpGoingAwayAnimationsAllowed = true; private Runnable mReflingAndAnimateScroll = () -> { @@ -690,7 +691,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable mController.hasActiveClearableNotifications(ROWS_ALL); boolean showFooterView = (showDismissView || mController.getVisibleNotificationCount() > 0) && mIsCurrentUserSetup // see: b/193149550 - && mStatusBarState != StatusBarState.KEYGUARD + && !onKeyguard() + && mUpcomingStatusBarState != StatusBarState.KEYGUARD // quick settings don't affect notifications when not in full screen && (mQsExpansionFraction != 1 || !mQsFullScreen) && !mScreenOffAnimationController.shouldHideNotificationsFooter() @@ -4960,6 +4962,13 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable updateDismissBehavior(); } + void setUpcomingStatusBarState(int upcomingStatusBarState) { + mUpcomingStatusBarState = upcomingStatusBarState; + if (mUpcomingStatusBarState != mStatusBarState) { + updateFooter(); + } + } + void onStatePostChange(boolean fromShadeLocked) { boolean onKeyguard = onKeyguard(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java index 3e630cdf8f97..6d7c95f96de6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java @@ -310,6 +310,11 @@ public class NotificationStackScrollLayoutController { } @Override + public void onUpcomingStateChanged(int newState) { + mView.setUpcomingStatusBarState(newState); + } + + @Override public void onStatePostChange() { mView.updateSensitiveness(mStatusBarStateController.goingToFullShade(), mLockscreenUserManager.isAnyProfilePublicMode()); |