Change summary
  src/main/java/eu/siacs/conversations/ui/activity/result/PickRingtone.java                    | 10 
src/main/java/eu/siacs/conversations/ui/fragment/settings/NotificationsSettingsFragment.java |  2 
2 files changed, 8 insertions(+), 4 deletions(-)
  Detailed changes
  
  
    
    @@ -5,6 +5,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.media.RingtoneManager;
 import android.net.Uri;
+
 import androidx.activity.result.contract.ActivityResultContract;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -26,7 +27,7 @@ public class PickRingtone extends ActivityResultContract<Uri, Uri> {
         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, ringToneType);
         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
-        if (existing != null) {
+        if (noneToNull(existing) != null) {
             intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, existing);
         }
         return intent;
@@ -37,11 +38,14 @@ public class PickRingtone extends ActivityResultContract<Uri, Uri> {
         if (resultCode != Activity.RESULT_OK || data == null) {
             return null;
         }
-        final Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
-        return pickedUri == null ? NONE : pickedUri;
+        return nullToNone(data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI));
     }
 
     public static Uri noneToNull(final Uri uri) {
         return uri == null || NONE.equals(uri) ? null : uri;
     }
+
+    public static @NonNull Uri nullToNone(final Uri uri) {
+        return uri == null ? NONE : uri;
+    }
 }
  
  
  
    
    @@ -119,7 +119,7 @@ public class NotificationsSettingsFragment extends XmppPreferenceFragment {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             channelRingtone =
                     NotificationService.getCurrentIncomingCallChannel(requireContext())
-                            .transform(NotificationChannel::getSound);
+                            .transform(channel -> PickRingtone.nullToNone(channel.getSound()));
         } else {
             channelRingtone = Optional.absent();
         }