Loading api/current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -5481,7 +5481,8 @@ package android.app { method @DimenRes public int getDesiredHeightResId(); method @NonNull public android.graphics.drawable.Icon getIcon(); method @NonNull public android.app.PendingIntent getIntent(); method public boolean getSuppressInitialNotification(); method @Deprecated public boolean getSuppressInitialNotification(); method public boolean getSuppressNotification(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.Notification.BubbleMetadata> CREATOR; } Loading @@ -5495,7 +5496,8 @@ package android.app { method @NonNull public android.app.Notification.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int); method @NonNull public android.app.Notification.BubbleMetadata.Builder setIcon(@NonNull android.graphics.drawable.Icon); method @NonNull public android.app.Notification.BubbleMetadata.Builder setIntent(@NonNull android.app.PendingIntent); method @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressInitialNotification(boolean); method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressInitialNotification(boolean); method @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressNotification(boolean); } public static class Notification.Builder { core/java/android/app/Notification.java +39 −8 Original line number Diff line number Diff line Loading @@ -8557,16 +8557,16 @@ public class Notification implements Parcelable private static final int FLAG_AUTO_EXPAND_BUBBLE = 0x00000001; /** * If set and the app creating the bubble is in the foreground, the bubble will be posted * <b>without</b> the associated notification in the notification shade. Subsequent update * notifications to this bubble will post a notification in the shade. * If set and the app posting the bubble is in the foreground, the bubble will * be posted <b>without</b> the associated notification in the notification shade. * * <p>If the app creating the bubble is not in the foreground this flag has no effect.</p> * <p>If the app posting the bubble is not in the foreground this flag has no effect.</p> * * <p>Generally this flag should only be set if the user has performed an action to request * or create a bubble.</p> * or create a bubble, or if the user has seen the content in the notification and the * notification is no longer relevant.</p> */ private static final int FLAG_SUPPRESS_INITIAL_NOTIFICATION = 0x00000002; private static final int FLAG_SUPPRESS_NOTIFICATION = 0x00000002; private BubbleMetadata(PendingIntent expandIntent, PendingIntent deleteIntent, Icon icon, int height, @DimenRes int heightResId) { Loading Loading @@ -8645,9 +8645,20 @@ public class Notification implements Parcelable * @return whether this bubble should suppress the initial notification when it is posted. * * @see BubbleMetadata.Builder#setSuppressInitialNotification(boolean) * @deprecated TO BE REMOVED, use {@link #getSuppressNotification()} instead. */ @Deprecated public boolean getSuppressInitialNotification() { return (mFlags & FLAG_SUPPRESS_INITIAL_NOTIFICATION) != 0; return (mFlags & FLAG_SUPPRESS_NOTIFICATION) != 0; } /** * @return whether this bubble should suppress the notification when it is posted. * * @see BubbleMetadata.Builder#setSuppressInitialNotification(boolean) */ public boolean getSuppressNotification() { return (mFlags & FLAG_SUPPRESS_NOTIFICATION) != 0; } public static final @android.annotation.NonNull Parcelable.Creator<BubbleMetadata> CREATOR = Loading Loading @@ -8806,11 +8817,31 @@ public class Notification implements Parcelable * * <p>Generally this flag should only be set if the user has performed an action to * request or create a bubble.</p> * * @deprecated TO BE REMOVED, use {@link #setSuppressNotification(boolean)} instead. */ @Deprecated @NonNull public BubbleMetadata.Builder setSuppressInitialNotification( boolean shouldSupressNotif) { setFlag(FLAG_SUPPRESS_INITIAL_NOTIFICATION, shouldSupressNotif); setFlag(FLAG_SUPPRESS_NOTIFICATION, shouldSupressNotif); return this; } /** * If set and the app posting the bubble is in the foreground, the bubble will be * posted <b>without</b> the associated notification in the notification shade. * * <p>If the app posting the bubble is not in the foreground this flag has no effect. * </p> * * <p>Generally this flag should only be set if the user has performed an action to * request or create a bubble, or if the user has seen the content in the notification * and the notification is no longer relevant.</p> */ @NonNull public BubbleMetadata.Builder setSuppressNotification(boolean shouldSupressNotif) { setFlag(FLAG_SUPPRESS_NOTIFICATION, shouldSupressNotif); return this; } Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +10 −6 Original line number Diff line number Diff line Loading @@ -397,11 +397,8 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe return; } if (shouldAutoBubbleForFlags(mContext, entry) || shouldBubble(entry)) { // TODO: handle group summaries boolean suppressNotification = entry.getBubbleMetadata() != null && entry.getBubbleMetadata().getSuppressInitialNotification() && isForegroundApp(entry.notification.getPackageName()); entry.setShowInShadeWhenBubble(!suppressNotification); // TODO: handle group summaries? updateShowInShadeForSuppressNotification(entry); } } Loading @@ -422,7 +419,7 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe } if (mNotificationInterruptionStateProvider.shouldBubbleUp(entry) && alertAgain(entry, entry.notification.getNotification())) { entry.setShowInShadeWhenBubble(true); updateShowInShadeForSuppressNotification(entry); entry.setBubbleDismissed(false); // updates come back as bubbles even if dismissed updateBubble(entry); mStackView.updateDotVisibility(entry.key); Loading Loading @@ -589,6 +586,13 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe && isForegroundApp(entry.notification.getPackageName()); } private void updateShowInShadeForSuppressNotification(NotificationEntry entry) { boolean suppressNotification = entry.getBubbleMetadata() != null && entry.getBubbleMetadata().getSuppressNotification() && isForegroundApp(entry.notification.getPackageName()); entry.setShowInShadeWhenBubble(!suppressNotification); } /** * Return true if the applications with the package name is running in foreground. * Loading Loading
api/current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -5481,7 +5481,8 @@ package android.app { method @DimenRes public int getDesiredHeightResId(); method @NonNull public android.graphics.drawable.Icon getIcon(); method @NonNull public android.app.PendingIntent getIntent(); method public boolean getSuppressInitialNotification(); method @Deprecated public boolean getSuppressInitialNotification(); method public boolean getSuppressNotification(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.Notification.BubbleMetadata> CREATOR; } Loading @@ -5495,7 +5496,8 @@ package android.app { method @NonNull public android.app.Notification.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int); method @NonNull public android.app.Notification.BubbleMetadata.Builder setIcon(@NonNull android.graphics.drawable.Icon); method @NonNull public android.app.Notification.BubbleMetadata.Builder setIntent(@NonNull android.app.PendingIntent); method @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressInitialNotification(boolean); method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressInitialNotification(boolean); method @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressNotification(boolean); } public static class Notification.Builder {
core/java/android/app/Notification.java +39 −8 Original line number Diff line number Diff line Loading @@ -8557,16 +8557,16 @@ public class Notification implements Parcelable private static final int FLAG_AUTO_EXPAND_BUBBLE = 0x00000001; /** * If set and the app creating the bubble is in the foreground, the bubble will be posted * <b>without</b> the associated notification in the notification shade. Subsequent update * notifications to this bubble will post a notification in the shade. * If set and the app posting the bubble is in the foreground, the bubble will * be posted <b>without</b> the associated notification in the notification shade. * * <p>If the app creating the bubble is not in the foreground this flag has no effect.</p> * <p>If the app posting the bubble is not in the foreground this flag has no effect.</p> * * <p>Generally this flag should only be set if the user has performed an action to request * or create a bubble.</p> * or create a bubble, or if the user has seen the content in the notification and the * notification is no longer relevant.</p> */ private static final int FLAG_SUPPRESS_INITIAL_NOTIFICATION = 0x00000002; private static final int FLAG_SUPPRESS_NOTIFICATION = 0x00000002; private BubbleMetadata(PendingIntent expandIntent, PendingIntent deleteIntent, Icon icon, int height, @DimenRes int heightResId) { Loading Loading @@ -8645,9 +8645,20 @@ public class Notification implements Parcelable * @return whether this bubble should suppress the initial notification when it is posted. * * @see BubbleMetadata.Builder#setSuppressInitialNotification(boolean) * @deprecated TO BE REMOVED, use {@link #getSuppressNotification()} instead. */ @Deprecated public boolean getSuppressInitialNotification() { return (mFlags & FLAG_SUPPRESS_INITIAL_NOTIFICATION) != 0; return (mFlags & FLAG_SUPPRESS_NOTIFICATION) != 0; } /** * @return whether this bubble should suppress the notification when it is posted. * * @see BubbleMetadata.Builder#setSuppressInitialNotification(boolean) */ public boolean getSuppressNotification() { return (mFlags & FLAG_SUPPRESS_NOTIFICATION) != 0; } public static final @android.annotation.NonNull Parcelable.Creator<BubbleMetadata> CREATOR = Loading Loading @@ -8806,11 +8817,31 @@ public class Notification implements Parcelable * * <p>Generally this flag should only be set if the user has performed an action to * request or create a bubble.</p> * * @deprecated TO BE REMOVED, use {@link #setSuppressNotification(boolean)} instead. */ @Deprecated @NonNull public BubbleMetadata.Builder setSuppressInitialNotification( boolean shouldSupressNotif) { setFlag(FLAG_SUPPRESS_INITIAL_NOTIFICATION, shouldSupressNotif); setFlag(FLAG_SUPPRESS_NOTIFICATION, shouldSupressNotif); return this; } /** * If set and the app posting the bubble is in the foreground, the bubble will be * posted <b>without</b> the associated notification in the notification shade. * * <p>If the app posting the bubble is not in the foreground this flag has no effect. * </p> * * <p>Generally this flag should only be set if the user has performed an action to * request or create a bubble, or if the user has seen the content in the notification * and the notification is no longer relevant.</p> */ @NonNull public BubbleMetadata.Builder setSuppressNotification(boolean shouldSupressNotif) { setFlag(FLAG_SUPPRESS_NOTIFICATION, shouldSupressNotif); return this; } Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +10 −6 Original line number Diff line number Diff line Loading @@ -397,11 +397,8 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe return; } if (shouldAutoBubbleForFlags(mContext, entry) || shouldBubble(entry)) { // TODO: handle group summaries boolean suppressNotification = entry.getBubbleMetadata() != null && entry.getBubbleMetadata().getSuppressInitialNotification() && isForegroundApp(entry.notification.getPackageName()); entry.setShowInShadeWhenBubble(!suppressNotification); // TODO: handle group summaries? updateShowInShadeForSuppressNotification(entry); } } Loading @@ -422,7 +419,7 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe } if (mNotificationInterruptionStateProvider.shouldBubbleUp(entry) && alertAgain(entry, entry.notification.getNotification())) { entry.setShowInShadeWhenBubble(true); updateShowInShadeForSuppressNotification(entry); entry.setBubbleDismissed(false); // updates come back as bubbles even if dismissed updateBubble(entry); mStackView.updateDotVisibility(entry.key); Loading Loading @@ -589,6 +586,13 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe && isForegroundApp(entry.notification.getPackageName()); } private void updateShowInShadeForSuppressNotification(NotificationEntry entry) { boolean suppressNotification = entry.getBubbleMetadata() != null && entry.getBubbleMetadata().getSuppressNotification() && isForegroundApp(entry.notification.getPackageName()); entry.setShowInShadeWhenBubble(!suppressNotification); } /** * Return true if the applications with the package name is running in foreground. * Loading