diff options
| author | 2017-04-23 12:39:32 -0400 | |
|---|---|---|
| committer | 2017-04-23 17:13:28 +0000 | |
| commit | ca80d1632e205ac93e234203947efad4f8c7a164 (patch) | |
| tree | 9da2daa1217344d1a51685f4a5ed508b95f8e025 | |
| parent | 9da73961a7ab48cf01856cceafc06dee5791fd3f (diff) | |
Don't consider uri empty a valid sound
Test: runtest systemui-notification
Change-Id: Ia838237e04eb11bd79e3ad5990bbb52c7ab853ee
Fixes: 36848349
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationManagerService.java | 2 | ||||
| -rw-r--r-- | services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java | 21 |
2 files changed, 21 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 9f693df9e1e6..02b93a232bb1 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -3648,7 +3648,7 @@ public class NotificationManagerService extends SystemService { if (DBG) Slog.v(TAG, "Interrupting!"); Uri soundUri = record.getSound(); - hasValidSound = (soundUri != null); + hasValidSound = soundUri != null && !Uri.EMPTY.equals(soundUri); long[] vibration = record.getVibration(); // Demote sound to vibration if vibration missing & phone in vibration mode. if (vibration == null diff --git a/services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java b/services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java index d383aea5a679..1106006352aa 100644 --- a/services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java +++ b/services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java @@ -15,6 +15,8 @@ */ package com.android.server.notification; +import static android.app.NotificationManager.IMPORTANCE_HIGH; + import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; @@ -198,7 +200,7 @@ public class BuzzBeepBlinkTest { boolean noisy, boolean buzzy, boolean lights, boolean defaultVibration, boolean defaultSound, boolean defaultLights) { NotificationChannel channel = - new NotificationChannel("test", "test", NotificationManager.IMPORTANCE_HIGH); + new NotificationChannel("test", "test", IMPORTANCE_HIGH); final Builder builder = new Builder(getContext()) .setContentTitle("foo") .setSmallIcon(android.R.drawable.sym_def_app_icon) @@ -680,6 +682,23 @@ public class BuzzBeepBlinkTest { verifyStopVibrate(); } + @Test + public void testEmptyUriSoundTreatedAsNoSound() throws Exception { + NotificationChannel channel = new NotificationChannel("test", "test", IMPORTANCE_HIGH); + channel.setSound(Uri.EMPTY, null); + final Notification n = new Builder(getContext(), "test") + .setSmallIcon(android.R.drawable.sym_def_app_icon).build(); + + StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid, + mPid, n, mUser, null, System.currentTimeMillis()); + NotificationRecord r = new NotificationRecord(getContext(), sbn, channel); + mService.addNotification(r); + + mService.buzzBeepBlinkLocked(r); + + verifyNeverBeep(); + } + static class VibrateRepeatMatcher implements ArgumentMatcher<VibrationEffect> { private final int mRepeatIndex; |