Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit caf558ec authored by Robert Chou's avatar Robert Chou Committed by Automerger Merge Worker
Browse files

Merge "Ringtone uri should add type query" am: 96d98a9f

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1426651

Change-Id: I06a7b6696daebe999e90887bcc5dcb645a683002
parents eeeb5b50 96d98a9f
Loading
Loading
Loading
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -1129,12 +1129,14 @@ public class RingtoneManager {
            }
            }


            // Try finding the scanned ringtone
            // Try finding the scanned ringtone
            final String whichAudio = getQueryStringForType(type);
            final String filename = getDefaultRingtoneFilename(type);
            final String filename = getDefaultRingtoneFilename(type);
            final String where = MediaColumns.DISPLAY_NAME + "=?," + whichAudio + "=?";
            final Uri baseUri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
            final Uri baseUri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
            try (Cursor cursor = context.getContentResolver().query(baseUri,
            try (Cursor cursor = context.getContentResolver().query(baseUri,
                    new String[] { MediaColumns._ID },
                    new String[] { MediaColumns._ID },
                    MediaColumns.DISPLAY_NAME + "=?",
                    where,
                    new String[] { filename }, null)) {
                    new String[] { filename , "1"}, null)) {
                if (cursor.moveToFirst()) {
                if (cursor.moveToFirst()) {
                    final Uri ringtoneUri = context.getContentResolver().canonicalizeOrElse(
                    final Uri ringtoneUri = context.getContentResolver().canonicalizeOrElse(
                            ContentUris.withAppendedId(baseUri, cursor.getLong(0)));
                            ContentUris.withAppendedId(baseUri, cursor.getLong(0)));
@@ -1162,4 +1164,13 @@ public class RingtoneManager {
            default: throw new IllegalArgumentException();
            default: throw new IllegalArgumentException();
        }
        }
    }
    }

    private static String getQueryStringForType(int type) {
        switch (type) {
            case TYPE_RINGTONE: return MediaStore.Audio.AudioColumns.IS_RINGTONE;
            case TYPE_NOTIFICATION: return MediaStore.Audio.AudioColumns.IS_NOTIFICATION;
            case TYPE_ALARM: return MediaStore.Audio.AudioColumns.IS_ALARM;
            default: throw new IllegalArgumentException();
        }
    }
}
}