Merge "Hide silent notifications when AOD animation starts" into sc-dev

This commit is contained in:
Ned Burns
2021-07-02 20:31:03 +00:00
committed by Android (Google) Code Review
4 changed files with 30 additions and 1 deletions

View File

@@ -435,7 +435,8 @@ public class NotificationViewHierarchyManager implements DynamicPrivacyControlle
final int N = mListContainer.getContainerChildCount(); final int N = mListContainer.getContainerChildCount();
int visibleNotifications = 0; int visibleNotifications = 0;
boolean onKeyguard = mStatusBarStateController.getState() == StatusBarState.KEYGUARD; boolean onKeyguard =
mStatusBarStateController.getCurrentOrUpcomingState() == StatusBarState.KEYGUARD;
Stack<ExpandableNotificationRow> stack = new Stack<>(); Stack<ExpandableNotificationRow> stack = new Stack<>();
for (int i = N - 1; i >= 0; i--) { for (int i = N - 1; i >= 0; i--) {
View child = mListContainer.getContainerChildAt(i); View child = mListContainer.getContainerChildAt(i);

View File

@@ -82,6 +82,7 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
private final UiEventLogger mUiEventLogger; private final UiEventLogger mUiEventLogger;
private int mState; private int mState;
private int mLastState; private int mLastState;
private int mUpcomingState;
private boolean mLeaveOpenOnKeyguardHide; private boolean mLeaveOpenOnKeyguardHide;
private boolean mKeyguardRequested; private boolean mKeyguardRequested;
@@ -169,6 +170,7 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
} }
mLastState = mState; mLastState = mState;
mState = state; mState = state;
mUpcomingState = state;
mUiEventLogger.log(StatusBarStateEvent.fromState(mState)); mUiEventLogger.log(StatusBarStateEvent.fromState(mState));
for (RankedListener rl : new ArrayList<>(mListeners)) { for (RankedListener rl : new ArrayList<>(mListeners)) {
rl.mListener.onStateChanged(mState); rl.mListener.onStateChanged(mState);
@@ -183,6 +185,16 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
return true; return true;
} }
@Override
public void setUpcomingState(int nextState) {
mUpcomingState = nextState;
}
@Override
public int getCurrentOrUpcomingState() {
return mUpcomingState;
}
@Override @Override
public boolean isDozing() { public boolean isDozing() {
return mIsDozing; return mIsDozing;

View File

@@ -73,6 +73,20 @@ public interface SysuiStatusBarStateController extends StatusBarStateController
*/ */
boolean setState(int state, boolean force); boolean setState(int state, boolean force);
/**
* Provides a hint that the status bar has started to transition to another
* {@link StatusBarState}. This suggests that a matching call to setState() with the same value
* will happen in the near future, although that may not happen if the animation is canceled,
* etc.
*/
void setUpcomingState(int state);
/**
* If the status bar is in the process of transitioning to a new state, returns that state.
* Otherwise, returns the current state.
*/
int getCurrentOrUpcomingState();
/** /**
* Update the dozing state from {@link StatusBar}'s perspective * Update the dozing state from {@link StatusBar}'s perspective
* @param isDozing well, are we dozing? * @param isDozing well, are we dozing?

View File

@@ -4398,6 +4398,8 @@ public class NotificationPanelViewController extends PanelViewController {
*/ */
public void showAodUi() { public void showAodUi() {
setDozing(true /* dozing */, false /* animate */, null); setDozing(true /* dozing */, false /* animate */, null);
mStatusBarStateController.setUpcomingState(KEYGUARD);
mEntryManager.updateNotifications("showAodUi");
mStatusBarStateListener.onStateChanged(KEYGUARD); mStatusBarStateListener.onStateChanged(KEYGUARD);
mStatusBarStateListener.onDozeAmountChanged(1f, 1f); mStatusBarStateListener.onDozeAmountChanged(1f, 1f);
setExpandedFraction(1f); setExpandedFraction(1f);