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

Commit 5668b16a authored by Josh Guilfoyle's avatar Josh Guilfoyle
Browse files

Updated RingtoneManager to support new URI syntax from PackageResourcesProvider.

CR: Sergey Ten
parent 8172bfd7
Loading
Loading
Loading
Loading
+31 −10
Original line number Diff line number Diff line
@@ -195,22 +195,26 @@ public class RingtoneManager {
    
    private static final String[] INTERNAL_COLUMNS = new String[] {
        MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE,
        "\"" + MediaStore.Audio.Media.INTERNAL_CONTENT_URI + "\""
        "\"" + MediaStore.Audio.Media.INTERNAL_CONTENT_URI + "\"",
        "null"
    };

    private static final String[] DRM_COLUMNS = new String[] {
        DrmStore.Audio._ID, DrmStore.Audio.TITLE,
        "\"" + DrmStore.Audio.CONTENT_URI + "\""
        "\"" + DrmStore.Audio.CONTENT_URI + "\"",
        "null"
    };

    private static final String[] MEDIA_COLUMNS = new String[] {
        MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE,
        "\"" + MediaStore.Audio.Media.EXTERNAL_CONTENT_URI + "\""
        "\"" + MediaStore.Audio.Media.EXTERNAL_CONTENT_URI + "\"",
        "null"
    };

    private static final String[] THEME_COLUMNS = new String[] {
        MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE,
        "\"" + Uri.parse("content://" + THEME_AUTHORITY + "/ringtone") + "\""
        "\"" + Uri.parse("content://" + THEME_AUTHORITY + "/ringtone") + "\"",
        "package"
    };
    
    /**
@@ -231,6 +235,12 @@ public class RingtoneManager {
     */
    public static final int URI_COLUMN_INDEX = 2;

    /**
     * Optional part to append to the final URI.
     * @hide
     */
    public static final int URI_PART_COLUMN_INDEX = 3;

    private Activity mActivity;
    private Context mContext;
    
@@ -421,9 +431,21 @@ public class RingtoneManager {
        return getUriFromCursor(cursor);
    }

    private static Uri getUriFromCursor(Uri baseUri, Cursor cursor) {
        Uri.Builder builder = baseUri.buildUpon();

        String uriPartString = cursor.getString(URI_PART_COLUMN_INDEX);
        if (uriPartString != null) {
            builder.appendPath(uriPartString);
        }

        builder.appendEncodedPath(String.valueOf(cursor.getLong(ID_COLUMN_INDEX)));

        return builder.build();
    }

    private static Uri getUriFromCursor(Cursor cursor) {
        return ContentUris.withAppendedId(Uri.parse(cursor.getString(URI_COLUMN_INDEX)), cursor
                .getLong(ID_COLUMN_INDEX));
        return getUriFromCursor(Uri.parse(cursor.getString(URI_COLUMN_INDEX)), cursor);
    }
    
    /**
@@ -452,8 +474,7 @@ public class RingtoneManager {
                currentUri = Uri.parse(uriString);
            }

            if (ringtoneUri.equals(ContentUris.withAppendedId(currentUri, cursor
                    .getLong(ID_COLUMN_INDEX)))) {
            if (ringtoneUri.equals(getUriFromCursor(currentUri, cursor))) {
                return i;
            }