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 Original line Diff line number Diff line
@@ -17,13 +17,12 @@
package com.android.mtp;
package com.android.mtp;


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


import java.util.Date;

final class CursorHelper {
final class CursorHelper {
    static final int DUMMY_HANDLE_FOR_ROOT = 0;
    static final int DUMMY_HANDLE_FOR_ROOT = 0;


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


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


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


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