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

Commit c4b8d34e authored by Ivan Chiang's avatar Ivan Chiang
Browse files

Change the Documents search filter mime types

Bug: 143442208
Test: atest DocumentsUIGoogleTests
Change-Id: I5b8ac0468032b06301b110750fe83de165f43c8b
parent 264c41fe
Loading
Loading
Loading
Loading
+96 −5
Original line number Diff line number Diff line
@@ -15,14 +15,18 @@
 */
package com.android.documentsui.base;

import androidx.annotation.Nullable;
import android.provider.DocumentsContract.Document;
import android.util.ArraySet;

import androidx.annotation.Nullable;

import java.util.List;
import java.util.Set;

public final class MimeTypes {

    private MimeTypes() {}
    private MimeTypes() {
    }

    public static final String APK_TYPE = "application/vnd.android.package-archive";
    public static final String GENERIC_TYPE = "application/*";
@@ -31,9 +35,96 @@ public final class MimeTypes {
    public static final String AUDIO_MIME = "audio/*";
    public static final String VIDEO_MIME = "video/*";

    private static final Set<String> sDocumentsMimeTypes = new ArraySet<>();

    static {
        sDocumentsMimeTypes.add("application/epub+zip");
        sDocumentsMimeTypes.add("application/javascript");
        sDocumentsMimeTypes.add("application/pdf");
        sDocumentsMimeTypes.add("application/rar");
        sDocumentsMimeTypes.add("application/rtf");
        sDocumentsMimeTypes.add("application/vnd.ms-excel");
        sDocumentsMimeTypes.add("application/vnd.ms-excel.addin.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-excel.sheet.binary.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-excel.sheet.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-excel.template.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-powerpoint");
        sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.addin.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.presentation.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.slideshow.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.template.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-word.document.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.ms-word.template.macroEnabled.12");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.chart");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.database");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.formula");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.graphics");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.graphics-template");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.presentation");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.presentation-template");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.spreadsheet");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.spreadsheet-template");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-master");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-template");
        sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-web");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.presentationml.presentation");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.presentationml.slideshow");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.presentationml.template");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.spreadsheetml.template");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
        sDocumentsMimeTypes.add(
                "application/vnd.openxmlformats-officedocument.wordprocessingml.template");
        sDocumentsMimeTypes.add("application/vnd.stardivision.calc");
        sDocumentsMimeTypes.add("application/vnd.stardivision.chart");
        sDocumentsMimeTypes.add("application/vnd.stardivision.draw");
        sDocumentsMimeTypes.add("application/vnd.stardivision.impress");
        sDocumentsMimeTypes.add("application/vnd.stardivision.impress-packed");
        sDocumentsMimeTypes.add("application/vnd.stardivision.mail");
        sDocumentsMimeTypes.add("application/vnd.stardivision.math");
        sDocumentsMimeTypes.add("application/vnd.stardivision.writer");
        sDocumentsMimeTypes.add("application/vnd.stardivision.writer-global");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.calc");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.calc.template");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.draw");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.draw.template");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.impress");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.impress.template");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.math");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.writer");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.writer.global");
        sDocumentsMimeTypes.add("application/vnd.sun.xml.writer.template");
        sDocumentsMimeTypes.add("application/x-mspublisher");
        sDocumentsMimeTypes.add("application/xml");
        sDocumentsMimeTypes.add("application/zip");
        sDocumentsMimeTypes.add("text/calendar");
        sDocumentsMimeTypes.add("text/css");
        sDocumentsMimeTypes.add("text/csv");
        sDocumentsMimeTypes.add("text/html");
        sDocumentsMimeTypes.add("text/plain");
        sDocumentsMimeTypes.add("text/tab-separated-values");
        sDocumentsMimeTypes.add("text/vcard");
    }

    /**
     * Get the Document mime type array
     *
     * @return the mime type array of document
     */
    public static String[] getDocumentMimeTypeArray() {
        return sDocumentsMimeTypes.toArray((new String[0]));
    }

    /**
     * MIME types that are visual in nature. For example, they should always be
     * shown as thumbnails in list mode.
     * MIME types that are visual in nature. For example, they should always be shown as thumbnails
     * in list mode.
     */
    public static final String[] VISUAL_MIMES = new String[]{IMAGE_MIME, VIDEO_MIME};

+3 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ public class SearchChipViewManager {
    private static final String[] VIDEOS_MIMETYPES = new String[]{"video/*"};
    private static final String[] AUDIO_MIMETYPES =
            new String[]{"audio/*", "application/ogg", "application/x-flac"};
    private static final String[] DOCUMENTS_MIMETYPES = new String[]{"application/*", "text/*"};
    private static final String[] DOCUMENTS_MIMETYPES = MimeTypes.getDocumentMimeTypeArray();
    private static final String[] EMPTY_MIMETYPES = new String[]{""};

    private static final Map<Integer, SearchChipData> sMimeTypesChipItems = new HashMap<>();
@@ -377,6 +377,8 @@ public class SearchChipViewManager {
            chipIcon = context.getDrawable(R.drawable.ic_chip_large_files);
        } else if (chipData.getChipType() == TYPE_FROM_THIS_WEEK) {
            chipIcon = context.getDrawable(R.drawable.ic_chip_from_this_week);
        } else if (chipData.getChipType() == TYPE_DOCUMENTS) {
            chipIcon = IconUtils.loadMimeIcon(context, MimeTypes.GENERIC_TYPE);
        } else {
            // get the icon drawable with the first mimeType in chipData
            chipIcon = IconUtils.loadMimeIcon(context, chipData.getMimeTypes()[0]);