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

Commit 7d33321c authored by woongki min's avatar woongki min
Browse files

Need to check current user when triggering notification lights

Notification Lights also requires user check like sound and vibration.
Otherwise, lights can occur without notifications.

Test: runtest BuzzBeepBlinkTest

Change-Id: I625db35796b7a479283ce51973ad2350559bd47f
parent a77fbc25
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5981,6 +5981,10 @@ public class NotificationManagerService extends SystemService {
        if (isInCall() || mScreenOn) {
            return false;
        }
        // check current user
        if (!isNotificationForCurrentUser(record)) {
            return false;
        }

        return true;
    }
+16 −0
Original line number Diff line number Diff line
@@ -1291,6 +1291,22 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
        assertEquals(-1, group.getLastAudiblyAlertedMs());
    }

    @Test
    public void testLightsCheckCurrentUser() {
        final Notification n = new Builder(getContext(), "test")
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();
        int userId = mUser.getIdentifier() + 10;
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
                mPid, n, UserHandle.of(userId), null, System.currentTimeMillis());
        NotificationRecord r = new NotificationRecord(getContext(), sbn,
                new NotificationChannel("test", "test", IMPORTANCE_HIGH));

        mService.buzzBeepBlinkLocked(r);
        verifyNeverLights();
        assertFalse(r.isInterruptive());
        assertEquals(-1, r.getLastAudiblyAlertedMs());
    }

    @Test
    public void testListenerHintCall() throws Exception {
        NotificationRecord r = getCallRecord(1, true);