From ca80d1632e205ac93e234203947efad4f8c7a164 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Sun, 23 Apr 2017 12:39:32 -0400 Subject: Don't consider uri empty a valid sound Test: runtest systemui-notification Change-Id: Ia838237e04eb11bd79e3ad5990bbb52c7ab853ee Fixes: 36848349 --- .../notification/NotificationManagerService.java | 2 +- .../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 { private final int mRepeatIndex; -- cgit v1.2.3-59-g8ed1b