Overflow dogfood flag

Bug: 150396294
Test: manual - disable flag, overflow hides; enable flag, overflow shows
Test: atest SystemUITests
Change-Id: I8714c89fd23b880431bb5beeb715060e30975a7a
This commit is contained in:
Lyn Han
2020-03-05 16:34:37 -08:00
parent f3aea16bdb
commit 8cc4bf84dd
2 changed files with 27 additions and 4 deletions

View File

@@ -73,6 +73,9 @@ public class BubbleExperimentConfig {
private static final String WHITELISTED_AUTO_BUBBLE_APPS = "whitelisted_auto_bubble_apps";
private static final String ALLOW_BUBBLE_OVERFLOW = "allow_bubble_overflow";
private static final boolean ALLOW_BUBBLE_OVERFLOW_DEFAULT = false;
/**
* When true, if a notification has the information necessary to bubble (i.e. valid
* contentIntent and an icon or image), then a {@link android.app.Notification.BubbleMetadata}
@@ -86,6 +89,15 @@ public class BubbleExperimentConfig {
ALLOW_ANY_NOTIF_TO_BUBBLE_DEFAULT ? 1 : 0) != 0;
}
/**
* When true, show a menu with dismissed and aged-out bubbles.
*/
static boolean allowBubbleOverflow(Context context) {
return Settings.Secure.getInt(context.getContentResolver(),
ALLOW_BUBBLE_OVERFLOW,
ALLOW_BUBBLE_OVERFLOW_DEFAULT ? 1 : 0) != 0;
}
/**
* Same as {@link #allowAnyNotifToBubble(Context)} except it filters for notifications that
* are using {@link Notification.MessagingStyle} and have remote input.

View File

@@ -589,6 +589,9 @@ public class BubbleStackView extends FrameLayout {
}
private void setUpOverflow() {
if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
return;
}
int overflowBtnIndex = 0;
if (mBubbleOverflow == null) {
mBubbleOverflow = new BubbleOverflow(getContext());
@@ -800,7 +803,8 @@ public class BubbleStackView extends FrameLayout {
@Nullable
Bubble getExpandedBubble() {
if (mExpandedBubble == null
|| (mExpandedBubble.getIconView() == mBubbleOverflow.getBtn()
|| (BubbleExperimentConfig.allowBubbleOverflow(mContext)
&& mExpandedBubble.getIconView() == mBubbleOverflow.getBtn()
&& BubbleOverflow.KEY.equals(mExpandedBubble.getKey()))) {
return null;
}
@@ -857,6 +861,9 @@ public class BubbleStackView extends FrameLayout {
}
private void updateOverflowBtnVisibility(boolean apply) {
if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
return;
}
if (mIsExpanded) {
if (DEBUG_BUBBLE_STACK_VIEW) {
Log.d(TAG, "Show overflow button.");
@@ -1083,7 +1090,8 @@ public class BubbleStackView extends FrameLayout {
float y = event.getRawY();
if (mIsExpanded) {
if (isIntersecting(mBubbleContainer, x, y)) {
if (isIntersecting(mBubbleOverflow.getBtn(), x, y)) {
if (BubbleExperimentConfig.allowBubbleOverflow(mContext)
&& isIntersecting(mBubbleOverflow.getBtn(), x, y)) {
return mBubbleOverflow.getBtn();
}
// Could be tapping or dragging a bubble while expanded
@@ -1820,8 +1828,11 @@ public class BubbleStackView extends FrameLayout {
* @return the number of bubbles in the stack view.
*/
public int getBubbleCount() {
// Subtract 1 for the overflow button that is always in the bubble container.
return mBubbleContainer.getChildCount() - 1;
if (BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
// Subtract 1 for the overflow button that is always in the bubble container.
return mBubbleContainer.getChildCount() - 1;
}
return mBubbleContainer.getChildCount();
}
/**