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

Commit bbe89901 authored by Tyler Gunn's avatar Tyler Gunn Committed by Gerrit Code Review
Browse files

Merge "Ensure Notification re-post with setOnlyAlertOnce(true) silences sound."

parents 20dca26f d8e8c8b2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -4081,6 +4081,8 @@ public class NotificationManagerService extends SystemService {

                        buzz = playVibration(record, vibration, hasValidSound);
                    }
                } else if ((record.getFlags() & Notification.FLAG_INSISTENT) != 0) {
                    hasValidSound = false;
                }
            }
        }
+23 −0
Original line number Diff line number Diff line
@@ -191,6 +191,11 @@ public class BuzzBeepBlinkTest extends NotificationTestCase {
                true /* noisy */, false /* buzzy*/, false /* lights */);
    }

    private NotificationRecord getInsistentBeepyOnceNotification() {
        return getNotificationRecord(mId, true /* insistent */, true /* once */,
                true /* noisy */, false /* buzzy*/, false /* lights */);
    }

    private NotificationRecord getInsistentBeepyLeanbackNotification() {
        return getLeanbackNotificationRecord(mId, true /* insistent */, false /* once */,
                true /* noisy */, false /* buzzy*/, false /* lights */);
@@ -498,6 +503,24 @@ public class BuzzBeepBlinkTest extends NotificationTestCase {
        verifyNeverStopAudio();
    }

    /**
     * Tests the case where the user re-posts a {@link Notification} with looping sound where
     * {@link Notification.Builder#setOnlyAlertOnce(true)} has been called.  This should silence
     * the sound associated with the notification.
     * @throws Exception
     */
    @Test
    public void testNoisyOnceUpdateDoesCancelAudio() throws Exception {
        NotificationRecord r = getInsistentBeepyNotification();
        NotificationRecord s = getInsistentBeepyOnceNotification();
        s.isUpdate = true;

        mService.buzzBeepBlinkLocked(r);
        mService.buzzBeepBlinkLocked(s);

        verifyStopAudio();
    }

    @Test
    public void testQuietUpdateDoesNotCancelAudioFromOther() throws Exception {
        NotificationRecord r = getBeepyNotification();