Merge "Don't include app bubbles in the overflow" into tm-qpr-dev

This commit is contained in:
Mady Mellor
2023-01-11 19:04:38 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ package com.android.wm.shell.bubbles;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE; import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
import static com.android.wm.shell.bubbles.Bubble.KEY_APP_BUBBLE;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_DATA; import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_DATA;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
@@ -684,7 +685,8 @@ public class BubbleData {
if (bubble.getPendingIntentCanceled() if (bubble.getPendingIntentCanceled()
|| !(reason == Bubbles.DISMISS_AGED || !(reason == Bubbles.DISMISS_AGED
|| reason == Bubbles.DISMISS_USER_GESTURE || reason == Bubbles.DISMISS_USER_GESTURE
|| reason == Bubbles.DISMISS_RELOAD_FROM_DISK)) { || reason == Bubbles.DISMISS_RELOAD_FROM_DISK)
|| KEY_APP_BUBBLE.equals(bubble.getKey())) {
return; return;
} }
if (DEBUG_BUBBLE_DATA) { if (DEBUG_BUBBLE_DATA) {

View File

@@ -16,6 +16,8 @@
package com.android.wm.shell.bubbles; package com.android.wm.shell.bubbles;
import static com.android.wm.shell.bubbles.Bubble.KEY_APP_BUBBLE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth.assertWithMessage;
@@ -32,6 +34,7 @@ import static org.mockito.Mockito.when;
import android.app.Notification; import android.app.Notification;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Intent;
import android.content.LocusId; import android.content.LocusId;
import android.graphics.drawable.Icon; import android.graphics.drawable.Icon;
import android.os.Bundle; import android.os.Bundle;
@@ -94,6 +97,7 @@ public class BubbleDataTest extends ShellTestCase {
private Bubble mBubbleInterruptive; private Bubble mBubbleInterruptive;
private Bubble mBubbleDismissed; private Bubble mBubbleDismissed;
private Bubble mBubbleLocusId; private Bubble mBubbleLocusId;
private Bubble mAppBubble;
private BubbleData mBubbleData; private BubbleData mBubbleData;
private TestableBubblePositioner mPositioner; private TestableBubblePositioner mPositioner;
@@ -178,6 +182,11 @@ public class BubbleDataTest extends ShellTestCase {
mBubbleMetadataFlagListener, mBubbleMetadataFlagListener,
mPendingIntentCanceledListener, mPendingIntentCanceledListener,
mMainExecutor); mMainExecutor);
Intent appBubbleIntent = new Intent(mContext, BubblesTestActivity.class);
appBubbleIntent.setPackage(mContext.getPackageName());
mAppBubble = new Bubble(appBubbleIntent, new UserHandle(1), mMainExecutor);
mPositioner = new TestableBubblePositioner(mContext, mPositioner = new TestableBubblePositioner(mContext,
mock(WindowManager.class)); mock(WindowManager.class));
mBubbleData = new BubbleData(getContext(), mBubbleLogger, mPositioner, mBubbleData = new BubbleData(getContext(), mBubbleLogger, mPositioner,
@@ -1089,6 +1098,18 @@ public class BubbleDataTest extends ShellTestCase {
assertOverflowChangedTo(ImmutableList.of()); assertOverflowChangedTo(ImmutableList.of());
} }
@Test
public void test_removeAppBubble_skipsOverflow() {
mBubbleData.notificationEntryUpdated(mAppBubble, true /* suppressFlyout*/,
false /* showInShade */);
assertThat(mBubbleData.getBubbleInStackWithKey(KEY_APP_BUBBLE)).isEqualTo(mAppBubble);
mBubbleData.dismissBubbleWithKey(KEY_APP_BUBBLE, Bubbles.DISMISS_USER_GESTURE);
assertThat(mBubbleData.getOverflowBubbleWithKey(KEY_APP_BUBBLE)).isNull();
assertThat(mBubbleData.getBubbleInStackWithKey(KEY_APP_BUBBLE)).isNull();
}
private void verifyUpdateReceived() { private void verifyUpdateReceived() {
verify(mListener).applyUpdate(mUpdateCaptor.capture()); verify(mListener).applyUpdate(mUpdateCaptor.capture());
reset(mListener); reset(mListener);