From 59d42fe62fcfb5101b6b1aaae3b323e61e06ec7d Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 29 May 2016 11:47:36 -0400 Subject: [PATCH] Show empty ringtone name in case of RuntimeException Fixes #116 --- .../uhabits/fragments/SettingsFragment.java | 1 + .../uhabits/helpers/ReminderHelper.java | 33 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java index 83852758..29ab76a4 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java @@ -134,6 +134,7 @@ public class SettingsFragment extends PreferenceFragmentCompat private void updateRingtoneDescription() { String ringtoneName = ReminderHelper.getRingtoneName(getContext()); + if(ringtoneName == null) return; Preference ringtonePreference = findPreference("reminderSound"); ringtonePreference.setSummary(ringtoneName); } diff --git a/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java index 35e1a92a..2956815a 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java @@ -144,21 +144,30 @@ public class ReminderHelper fragment.startActivityForResult(intent, requestCode); } + @Nullable public static String getRingtoneName(Context context) { - Uri ringtoneUri = getRingtoneUri(context); - String ringtoneName = context.getResources().getString(R.string.none); - - if(ringtoneUri != null) + try { - Ringtone ringtone = RingtoneManager.getRingtone(context, ringtoneUri); - if(ringtone != null) - { - ringtoneName = ringtone.getTitle(context); - ringtone.stop(); - } - } + Uri ringtoneUri = getRingtoneUri(context); + String ringtoneName = context.getResources().getString(R.string.none); - return ringtoneName; + if (ringtoneUri != null) + { + Ringtone ringtone = RingtoneManager.getRingtone(context, ringtoneUri); + if (ringtone != null) + { + ringtoneName = ringtone.getTitle(context); + ringtone.stop(); + } + } + + return ringtoneName; + } + catch (RuntimeException e) + { + e.printStackTrace(); + return null; + } } }