From aaa19ced731d96451cb6331c658c3e38371565ac Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 16 Apr 2019 13:47:35 -0600 Subject: [PATCH] Canonicalize ringtones before returning. Bug: 130475623 Test: none Change-Id: I6408800290077dfc7d0252a9b23443c3a70d4563 --- media/java/android/media/RingtoneManager.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index fefb0d7a55bf6..e207721f19183 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -495,15 +495,17 @@ public class RingtoneManager { if (mCursor == null || !mCursor.moveToPosition(position)) { return null; } - - return getUriFromCursor(mCursor); + + return getUriFromCursor(mContext, mCursor); } - private static Uri getUriFromCursor(Cursor cursor) { - return ContentUris.withAppendedId(Uri.parse(cursor.getString(URI_COLUMN_INDEX)), cursor - .getLong(ID_COLUMN_INDEX)); + private static Uri getUriFromCursor(Context context, Cursor cursor) { + final Uri uri = ContentUris.withAppendedId(Uri.parse(cursor.getString(URI_COLUMN_INDEX)), + cursor.getLong(ID_COLUMN_INDEX)); + final Uri canonicalized = context.getContentResolver().canonicalize(uri); + return (canonicalized != null) ? canonicalized : uri; } - + /** * Gets the position of a {@link Uri} within this {@link RingtoneManager}. * @@ -569,7 +571,7 @@ public class RingtoneManager { Uri uri = null; if (cursor.moveToFirst()) { - uri = getUriFromCursor(cursor); + uri = getUriFromCursor(context, cursor); } cursor.close();