Fix bug with clearing bubble to expand
When BubbleController receives multiple status bar state updates, it can clear the bubble to be expanded information. This can happen when user receives a bubble notification on lockscreen and taps on it. In this case we set the bubble to be expanded field on the controller as the device is locked and we can't expand the bubble yet. Phone unlock flow triggers multiple statusbar updates to the BubbleController which can clear the bubble to be expanded field. Make sure field is only cleared when bubble actually is going to be expanded. Bug: 240226362 Test: atest BubblesTest Test: have bubbles stacked, pattern lock screen, lock device and receive an incoming notification to one of the bubbles, click on the notification to unlock device. Observe bubbles is expanded after unlocking device. Change-Id: I61f1d6a1fb673a89fa9b7a1d6b6253874d0c5778
This commit is contained in:
@@ -538,7 +538,6 @@ public class BubbleController implements ConfigurationChangeListener {
|
||||
|
||||
if (mNotifEntryToExpandOnShadeUnlock != null) {
|
||||
expandStackAndSelectBubble(mNotifEntryToExpandOnShadeUnlock);
|
||||
mNotifEntryToExpandOnShadeUnlock = null;
|
||||
}
|
||||
|
||||
updateStack();
|
||||
|
||||
@@ -1370,6 +1370,33 @@ public class BubblesTest extends SysuiTestCase {
|
||||
assertThat(stackView.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to verify behavior for following situation:
|
||||
* <ul>
|
||||
* <li>status bar shade state is set to <code>false</code></li>
|
||||
* <li>there is a bubble pending to be expanded</li>
|
||||
* </ul>
|
||||
* Test that duplicate status bar state updates to <code>false</code> do not clear the
|
||||
* pending bubble to be
|
||||
* expanded.
|
||||
*/
|
||||
@Test
|
||||
public void testOnStatusBarStateChanged_statusBarChangeDoesNotClearExpandingBubble() {
|
||||
mBubbleController.updateBubble(mBubbleEntry);
|
||||
mBubbleController.onStatusBarStateChanged(false);
|
||||
// Set the bubble to expand once status bar state changes
|
||||
mBubbleController.expandStackAndSelectBubble(mBubbleEntry);
|
||||
// Check that stack is currently collapsed
|
||||
assertStackCollapsed();
|
||||
// Post status bar state change update with the same value
|
||||
mBubbleController.onStatusBarStateChanged(false);
|
||||
// Stack should remain collapsedb
|
||||
assertStackCollapsed();
|
||||
// Post status bar state change which should trigger bubble to expand
|
||||
mBubbleController.onStatusBarStateChanged(true);
|
||||
assertStackExpanded();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetShouldAutoExpand_notifiesFlagChanged() {
|
||||
mBubbleController.updateBubble(mBubbleEntry);
|
||||
|
||||
Reference in New Issue
Block a user