From 9f1fe2784c75f52ecb9ef55db264716072fdbdf0 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 31 Dec 2019 09:47:01 +0100 Subject: [PATCH] Allow silent sound --- app/src/main/java/eu/faircode/email/Core.java | 19 +++++++++++-------- .../email/FragmentOptionsNotifications.java | 17 ++++++++++------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 6c58c60d16..c714227ad7 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3149,15 +3149,18 @@ class Core { Log.i("Notify light enabled"); } - Uri uri = (sound == null ? null : Uri.parse(sound)); - if (uri == null || !"content".equals(uri.getScheme())) - uri = null; - Log.i("Notify sound=" + uri); + if (!"".equals(sound)) { + // Not silent sound + Uri uri = (sound == null ? null : Uri.parse(sound)); + if (uri != null && !"content".equals(uri.getScheme())) + uri = null; + Log.i("Notify sound=" + uri); - if (uri == null) - def |= DEFAULT_SOUND; - else - builder.setSound(uri); + if (uri == null) + def |= DEFAULT_SOUND; + else + builder.setSound(uri); + } builder.setDefaults(def); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index 5e877e4a47..f91b7da8d3 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -436,7 +436,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared switch (requestCode) { case ActivitySetup.REQUEST_SOUND: if (resultCode == RESULT_OK && data != null) - onSelectSound((Uri) data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)); + onSelectSound(data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)); break; } } catch (Throwable ex) { @@ -446,13 +446,16 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared private void onSelectSound(Uri uri) { Log.i("Selected ringtone=" + uri); - if (uri != null && !"content".equals(uri.getScheme())) - uri = null; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - if (uri == null) - prefs.edit().remove("sound").apply(); - else - prefs.edit().putString("sound", uri.toString()).apply(); + + if (uri == null) // silent sound + prefs.edit().putString("sound", "").apply(); + else { + if ("content".equals(uri.getScheme())) + prefs.edit().putString("sound", uri.toString()).apply(); + else + prefs.edit().remove("sound").apply(); + } } }