summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Julia Reynolds <juliacr@google.com> 2017-04-23 12:39:32 -0400
committer Julia Reynolds <juliacr@google.com> 2017-04-23 17:13:28 +0000
commitca80d1632e205ac93e234203947efad4f8c7a164 (patch)
tree9da2daa1217344d1a51685f4a5ed508b95f8e025
parent9da73961a7ab48cf01856cceafc06dee5791fd3f (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.java2
-rw-r--r--services/tests/notification/src/com/android/server/notification/BuzzBeepBlinkTest.java21
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;