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 | 29 ++++++++++++------- 2 files changed, 20 insertions(+), 10 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 838527589..29ab76a4c 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 35e1a92a1..2956815a4 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) + Uri ringtoneUri = getRingtoneUri(context); + String ringtoneName = context.getResources().getString(R.string.none); + + if (ringtoneUri != null) { - ringtoneName = ringtone.getTitle(context); - ringtone.stop(); + Ringtone ringtone = RingtoneManager.getRingtone(context, ringtoneUri); + if (ringtone != null) + { + ringtoneName = ringtone.getTitle(context); + ringtone.stop(); + } } - } - return ringtoneName; + return ringtoneName; + } + catch (RuntimeException e) + { + e.printStackTrace(); + return null; + } } }