Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed4117ac authored by Mady Mellor's avatar Mady Mellor Committed by android-build-merger
Browse files

Merge "Drop the 'initial' of suppressInitialNotification API" into qt-dev

am: d8913d7e

Change-Id: I6096370bee4970c3aaa369430d50207233d22d98
parents ccc155ea d8913d7e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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;
  }
@@ -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 {
+39 −8
Original line number Diff line number Diff line
@@ -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) {
@@ -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 =
@@ -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;
            }

+10 −6
Original line number Diff line number Diff line
@@ -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);
            }
        }

@@ -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);
@@ -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.
     *