diff --git a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java index 733d0d937d7..29b9266335d 100644 --- a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java +++ b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java @@ -20,6 +20,7 @@ import android.content.Context; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; +import android.util.Log; import androidx.preference.Preference; @@ -54,11 +55,12 @@ public abstract class RingtonePreferenceControllerBase extends AbstractPreferenc mContext, getRingtoneType()); final CharSequence summary; - if (ringtoneUri == null) { - summary = null; - } else { + try { summary = Ringtone.getTitle( mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */); + } catch (IllegalArgumentException e) { + Log.w(TAG, "Error getting ringtone summary.", e); + return; } if (summary != null) { ThreadUtils.postOnMainThread(() -> preference.setSummary(summary)); diff --git a/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java index 2fb1738f25a..8fd3973c278 100644 --- a/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java +++ b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java @@ -64,16 +64,6 @@ public class RingtonePreferenceControllerBaseTest { verify(preference).setSummary(anyString()); } - @Test - public void updateState_nullRingtone_shouldNotGetTitle() { - Preference preference = mock(Preference.class); - Settings.System.putString(mContext.getContentResolver(), Settings.System.RINGTONE, null); - - mController.updateState(preference); - - verify(preference, never()).setSummary(anyString()); - } - private class RingtonePreferenceControllerBaseTestable extends RingtonePreferenceControllerBase { RingtonePreferenceControllerBaseTestable(Context context) {