diff options
Diffstat (limited to 'media/java/android/media/Ringtone.java')
-rw-r--r-- | media/java/android/media/Ringtone.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index c2bcd93..2f96d1f 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -214,8 +214,14 @@ public class Ringtone { if (Settings.AUTHORITY.equals(authority)) { if (followSettingsUri) { - Uri actualUri = RingtoneManager.getActualDefaultRingtoneUri(context, - RingtoneManager.getDefaultType(uri)); + Uri actualUri; + if (RingtoneManager.getDefaultType(uri) == RingtoneManager.TYPE_RINGTONE) { + actualUri = RingtoneManager.getActualRingtoneUriBySubId(context, + RingtoneManager.getDefaultRingtoneSubIdByUri(uri)); + } else { + actualUri = RingtoneManager.getActualDefaultRingtoneUri(context, + RingtoneManager.getDefaultType(uri)); + } String actualTitle = getTitle( context, actualUri, false /*followSettingsUri*/, allowRemote); title = context @@ -412,9 +418,9 @@ public class Ringtone { private boolean playFallbackRingtone() { if (mAudioManager.getStreamVolume(AudioAttributes.toLegacyStreamType(mAudioAttributes)) != 0) { - int ringtoneType = RingtoneManager.getDefaultType(mUri); - if (ringtoneType == -1 || - RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) { + int subId = RingtoneManager.getDefaultRingtoneSubIdByUri(mUri); + if (subId != -1 && + RingtoneManager.getActualRingtoneUriBySubId(mContext, subId) != null) { // Default ringtone, try fallback ringtone. try { AssetFileDescriptor afd = mContext.getResources().openRawResourceFd( |