summaryrefslogtreecommitdiffstats
path: root/media/java/android/media/Ringtone.java
diff options
context:
space:
mode:
Diffstat (limited to 'media/java/android/media/Ringtone.java')
-rw-r--r--media/java/android/media/Ringtone.java16
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(