Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java +12 −0 Original line number Diff line number Diff line Loading @@ -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} Loading @@ -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. Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +15 −4 Original line number Diff line number Diff line Loading @@ -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()); Loading Loading @@ -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; } Loading Loading @@ -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."); Loading Loading @@ -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 Loading Loading @@ -1820,9 +1828,12 @@ public class BubbleStackView extends FrameLayout { * @return the number of bubbles in the stack view. */ public int getBubbleCount() { if (BubbleExperimentConfig.allowBubbleOverflow(mContext)) { // Subtract 1 for the overflow button that is always in the bubble container. return mBubbleContainer.getChildCount() - 1; } return mBubbleContainer.getChildCount(); } /** * Finds the bubble index within the stack. Loading Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java +12 −0 Original line number Diff line number Diff line Loading @@ -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} Loading @@ -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. Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +15 −4 Original line number Diff line number Diff line Loading @@ -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()); Loading Loading @@ -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; } Loading Loading @@ -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."); Loading Loading @@ -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 Loading Loading @@ -1820,9 +1828,12 @@ public class BubbleStackView extends FrameLayout { * @return the number of bubbles in the stack view. */ public int getBubbleCount() { if (BubbleExperimentConfig.allowBubbleOverflow(mContext)) { // Subtract 1 for the overflow button that is always in the bubble container. return mBubbleContainer.getChildCount() - 1; } return mBubbleContainer.getChildCount(); } /** * Finds the bubble index within the stack. Loading