Add missing sound to important channels.

Test: runtest systemui-notification
Change-Id: I7b091d312220e3830f2cd613b7ac08f75c5f0a8c
diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java
index 76890b1..867af9a 100644
--- a/services/core/java/com/android/server/notification/RankingHelper.java
+++ b/services/core/java/com/android/server/notification/RankingHelper.java
@@ -32,6 +32,7 @@
 import android.content.pm.ParceledListSlice;
 import android.os.Build;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.service.notification.NotificationListenerService.Ranking;
 import android.text.TextUtils;
 import android.util.ArrayMap;
@@ -516,6 +517,10 @@
         if (!r.showBadge) {
             channel.setShowBadge(false);
         }
+        if (channel.getSound() == null) {
+            channel.setSound(Settings.System.DEFAULT_NOTIFICATION_URI,
+                    Notification.AUDIO_ATTRIBUTES_DEFAULT);
+        }
         r.channels.put(channel.getId(), channel);
         updateConfig();
     }
diff --git a/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java b/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java
index 9ea9ce9..8210072 100644
--- a/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java
+++ b/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java
@@ -776,6 +776,26 @@
     }
 
     @Test
+    public void testCreateChannel_addMissingSound() throws Exception {
+        final NotificationChannel channel =
+                new NotificationChannel("id2", "name2", IMPORTANCE_LOW);
+        mHelper.createNotificationChannel(pkg, uid, channel, true);
+        assertNotNull(mHelper.getNotificationChannel(
+                pkg, uid, channel.getId(), false).getSound());
+    }
+
+    @Test
+    public void testCreateChannel_noOverrideSound() throws Exception {
+        Uri sound = new Uri.Builder().scheme("test").build();
+        final NotificationChannel channel = new NotificationChannel("id2", "name2",
+                 NotificationManager.IMPORTANCE_DEFAULT);
+        channel.setSound(sound, mAudioAttributes);
+        mHelper.createNotificationChannel(pkg, uid, channel, true);
+        assertEquals(sound, mHelper.getNotificationChannel(
+                pkg, uid, channel.getId(), false).getSound());
+    }
+
+    @Test
     public void testPermanentlyDeleteChannels() throws Exception {
         NotificationChannel channel1 =
                 new NotificationChannel("id1", "name1", NotificationManager.IMPORTANCE_HIGH);