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

Commit e9b68966 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Rate limit notification sounds/vibrations"

parents 4e77ab6a 3ff26d27
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ public class AlertRateLimiter {
    static final long ALLOWED_ALERT_INTERVAL = 1000;
    private long mLastNotificationMillis = 0;

    boolean isRateLimited(long now) {
   boolean shouldRateLimitAlert(long now) {
        final long millisSinceLast = now - mLastNotificationMillis;
        if (millisSinceLast < 0 || millisSinceLast < ALLOWED_ALERT_INTERVAL) {
            return true;
+1 −1
Original line number Diff line number Diff line
@@ -595,7 +595,7 @@ public class NotificationUsageStats {
        }

        public boolean isAlertRateLimited() {
            boolean limited = alertRate.isRateLimited(SystemClock.elapsedRealtime());
            boolean limited = alertRate.shouldRateLimitAlert(SystemClock.elapsedRealtime());
            if (limited) {
                numAlertViolations++;
            }
+10 −10
Original line number Diff line number Diff line
@@ -42,31 +42,31 @@ public class AlertRateLimiterTest extends NotificationTestCase {

    @Test
    public void testFirstAlertAllowed() throws Exception {
        assertFalse(mLimiter.isRateLimited(mTestStartTime));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime));
    }

    @Test
    public void testAllowedAfterSecond() throws Exception {
        assertFalse(mLimiter.isRateLimited(mTestStartTime));
        assertFalse(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL));
    }

    @Test
    public void testAllowedAfterSecondEvenWithBlockedEntries() throws Exception {
        assertFalse(mLimiter.isRateLimited(mTestStartTime));
        assertTrue(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1));
        assertFalse(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime));
        assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL));
    }

    @Test
    public void testAllowedDisallowedBeforeSecond() throws Exception {
        assertFalse(mLimiter.isRateLimited(mTestStartTime));
        assertTrue(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime));
        assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1));
    }

    @Test
    public void testDisallowedTimePast() throws Exception {
        assertFalse(mLimiter.isRateLimited(mTestStartTime));
        assertTrue(mLimiter.isRateLimited(mTestStartTime - ALLOWED_ALERT_INTERVAL));
        assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime));
        assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime - ALLOWED_ALERT_INTERVAL));
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ import com.android.server.lights.LightsManager;
@RunWith(AndroidTestingRunner.class)
@RunWithLooper
public class NotificationManagerServiceTest extends NotificationTestCase {
    private static final long WAIT_FOR_IDLE_TIMEOUT = 2;
    private static final String TEST_CHANNEL_ID = "NotificationManagerServiceTestChannelId";
    private final int uid = Binder.getCallingUid();
    private NotificationManagerService mNotificationManagerService;
@@ -110,6 +109,7 @@ public class NotificationManagerServiceTest extends NotificationTestCase {
    private AudioManager mAudioManager;
    @Mock
    ActivityManager mActivityManager;

    private NotificationChannel mTestNotificationChannel = new NotificationChannel(
            TEST_CHANNEL_ID, TEST_CHANNEL_ID, NotificationManager.IMPORTANCE_DEFAULT);
    @Mock