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

Commit 184b86da authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Allow notification channels to be silent.

This better accomodates those apps that play their own sounds.
Since most apps don't play their own sounds, update the documentation
on notificationchannel to add guidance about when they should add a
sound.

Fixes: 37237013
Test: runtest systemui-notification
Change-Id: If00b15b1b44da66d24dacb2895e9a6c0a06d1890
parent 889280c4
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.media.AudioAttributes;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.Settings;
import android.service.notification.NotificationListenerService;
import android.text.TextUtils;

@@ -139,7 +140,7 @@ public final class NotificationChannel implements Parcelable {
    private int mImportance = DEFAULT_IMPORTANCE;
    private boolean mBypassDnd;
    private int mLockscreenVisibility = DEFAULT_VISIBILITY;
    private Uri mSound;
    private Uri mSound = Settings.System.DEFAULT_NOTIFICATION_URI;
    private boolean mLights;
    private int mLightColor = DEFAULT_LIGHT_COLOR;
    private long[] mVibration;
@@ -330,7 +331,8 @@ public final class NotificationChannel implements Parcelable {

    /**
     * Sets the sound that should be played for notifications posted to this channel and its
     * audio attributes.
     * audio attributes. Notification channels with an {@link #getImportance() importance} of at
     * least {@link NotificationManager#IMPORTANCE_DEFAULT} should have a sound.
     *
     * Only modifiable before the channel is submitted to
     * {@link NotificationManager#notify(String, int, Notification)}.
@@ -445,7 +447,7 @@ public final class NotificationChannel implements Parcelable {
    }

    /**
     * Returns the user specified importance {e.g. @link NotificationManager#IMPORTANCE_LOW} for
     * Returns the user specified importance e.g. {@link NotificationManager#IMPORTANCE_LOW} for
     * notifications posted to this channel.
     */
    public int getImportance() {
+0 −4
Original line number Diff line number Diff line
@@ -570,10 +570,6 @@ public class RankingHelper implements RankingConfig {
        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);
        MetricsLogger.action(getChannelLog(channel, pkg).setType(
                MetricsProto.MetricsEvent.TYPE_OPEN));
+2 −0
Original line number Diff line number Diff line
@@ -215,6 +215,8 @@ public class BuzzBeepBlinkTest {
                builder.setSound(CUSTOM_SOUND);
                channel.setSound(CUSTOM_SOUND, CUSTOM_ATTRIBUTES);
            }
        } else {
            channel.setSound(null, null);
        }
        if (buzzy) {
            if (defaultVibration) {
+0 −9
Original line number Diff line number Diff line
@@ -737,15 +737,6 @@ public class RankingHelperTest {
                mHelper.getNotificationChannel(PKG, UID, newChannel.getId(), false));
    }

    @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();