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

Commit 3359d455 authored by Daichi Hirono's avatar Daichi Hirono
Browse files

Support major format code in MtpDocumentsProvider.

Start to use common MeidaFile helper class that can convert major format
code into mime type.

BUG=25096009

Change-Id: I8379cc6f11945c8e2215d36492367e73377fdc26
parent d532a4a0
Loading
Loading
Loading
Loading
+10 −23
Original line number Diff line number Diff line
@@ -17,13 +17,12 @@
package com.android.mtp;

import android.database.MatrixCursor;
import android.media.MediaFile;
import android.mtp.MtpConstants;
import android.mtp.MtpObjectInfo;
import android.provider.DocumentsContract;
import android.provider.DocumentsContract.Document;

import java.util.Date;

final class CursorHelper {
    static final int DUMMY_HANDLE_FOR_ROOT = 0;

@@ -71,30 +70,18 @@ final class CursorHelper {
    }

    static String formatTypeToMimeType(int format) {
        // TODO: Add complete list of mime types.
        switch (format) {
            case MtpConstants.FORMAT_ASSOCIATION:
        if (format == MtpConstants.FORMAT_ASSOCIATION) {
            return DocumentsContract.Document.MIME_TYPE_DIR;
            case MtpConstants.FORMAT_MP3:
                return "audio/mp3";
            case MtpConstants.FORMAT_EXIF_JPEG:
                return "image/jpeg";
            default:
                return "application/octet-stream";
        } else {
            return MediaFile.getMimeTypeForFormatCode(format);
        }
    }

    static int mimeTypeToFormatType(String mimeType) {
        // TODO: Add complete list of mime types.
        switch (mimeType.toLowerCase()) {
            case Document.MIME_TYPE_DIR:
    static int mimeTypeToFormatType(String fileName, String mimeType) {
        if (Document.MIME_TYPE_DIR.equals(mimeType)) {
            return MtpConstants.FORMAT_ASSOCIATION;
            case "audio/mp3":
                return MtpConstants.FORMAT_MP3;
            case "image/jpeg":
                return MtpConstants.FORMAT_EXIF_JPEG;
            default:
                return MtpConstants.FORMAT_UNDEFINED;
        } else {
            return MediaFile.getFormatCode(fileName, mimeType);
        }
    }
}
+1 −2
Original line number Diff line number Diff line
@@ -59,7 +59,6 @@ public class MtpDocumentsProvider extends DocumentsProvider {
    private MtpManager mMtpManager;
    private ContentResolver mResolver;
    private Map<Integer, DeviceToolkit> mDeviceToolkits;
    private DocumentLoader mDocumentLoaders;
    private RootScanner mRootScanner;

    /**
@@ -241,7 +240,7 @@ public class MtpDocumentsProvider extends DocumentsProvider {
                    new MtpObjectInfo.Builder()
                            .setStorageId(parentId.mStorageId)
                            .setParent(parentId.mObjectHandle)
                            .setFormat(CursorHelper.mimeTypeToFormatType(mimeType))
                            .setFormat(CursorHelper.mimeTypeToFormatType(displayName, mimeType))
                            .setName(displayName)
                            .build(), pipe[1]);
            final String documentId = new Identifier(parentId.mDeviceId, parentId.mStorageId,