Fix incorrect notification sound when channel is set to silent.

Fixes #12317
This commit is contained in:
Cody Henthorne 2022-07-08 15:03:27 -04:00 committed by Alex Hart
parent e80df64698
commit 748dbc2ba5
3 changed files with 5 additions and 3 deletions

View file

@ -25,7 +25,8 @@ class CustomNotificationsSettingsRepository(context: Context) {
val recipient = Recipient.resolved(recipientId)
val database = SignalDatabase.recipients
if (recipient.notificationChannel != null) {
database.setMessageRingtone(recipient.id, NotificationChannels.getMessageRingtone(context, recipient))
val ringtoneUri: Uri? = NotificationChannels.getMessageRingtone(context, recipient)
database.setMessageRingtone(recipient.id, if (ringtoneUri == Uri.EMPTY) null else ringtoneUri)
database.setMessageVibrate(recipient.id, RecipientDatabase.VibrateState.fromBoolean(NotificationChannels.getMessageVibrate(context, recipient)))
}
}

View file

@ -296,7 +296,8 @@ public class NotificationChannels {
return null;
}
return channel.getSound();
Uri channelSound = channel.getSound();
return channelSound != null ? channelSound : Uri.EMPTY;
}
/**

View file

@ -274,7 +274,7 @@ object NotificationFactory {
recipient.messageRingtone ?: SignalStore.settings().messageNotificationSound
}
if (uri.toString().isEmpty()) {
if (uri == Uri.EMPTY || uri.toString().isEmpty()) {
Log.d(TAG, "ringtone uri is empty")
return
}