summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly Tai <beverlyt@google.com> 2022-04-04 18:15:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-04-04 18:15:24 +0000
commit0340a16437e17f36f750bac23f2c976c170ae87a (patch)
treef2fb54954b5307cf24b6d4d6907b6b2d8049a704
parentb46b98ee488b7f96adab100c31aebd434b683731 (diff)
parentb76c8250da0d8b028cde8d40d4b2b95bdea11742 (diff)
Merge "Hide manage & clear affordances on transition to KG" into tm-dev
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java5
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());