Merge \"Move the MIME type icon detection into the platform.\" into nyc-mr1-dev
am: 9459f93c97
Change-Id: I151a72b8ee1c16ef94da70e85378dd44b4ac077c
This commit is contained in:
@@ -34,6 +34,7 @@ import android.database.CrossProcessCursorWrapper;
|
||||
import android.database.Cursor;
|
||||
import android.database.IContentObserver;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.CancellationSignal;
|
||||
@@ -51,6 +52,7 @@ import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.MimeIconUtils;
|
||||
import com.android.internal.util.Preconditions;
|
||||
|
||||
import dalvik.system.CloseGuard;
|
||||
@@ -2693,4 +2695,9 @@ public abstract class ContentResolver {
|
||||
public int resolveUserId(Uri uri) {
|
||||
return ContentProvider.getUserIdFromUri(uri, mContext.getUserId());
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public Drawable getTypeDrawable(String mimeType) {
|
||||
return MimeIconUtils.loadMimeIcon(mContext, mimeType);
|
||||
}
|
||||
}
|
||||
|
||||
230
core/java/com/android/internal/util/MimeIconUtils.java
Normal file
230
core/java/com/android/internal/util/MimeIconUtils.java
Normal file
@@ -0,0 +1,230 @@
|
||||
/*
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.internal.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.provider.DocumentsContract;
|
||||
|
||||
import com.android.internal.R;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class MimeIconUtils {
|
||||
|
||||
private static HashMap<String, Integer> sMimeIcons = new HashMap<>();
|
||||
|
||||
private static void add(String mimeType, int resId) {
|
||||
if (sMimeIcons.put(mimeType, resId) != null) {
|
||||
throw new RuntimeException(mimeType + " already registered!");
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
int icon;
|
||||
|
||||
// Package
|
||||
icon = R.drawable.ic_doc_apk;
|
||||
add("application/vnd.android.package-archive", icon);
|
||||
|
||||
// Audio
|
||||
icon = R.drawable.ic_doc_audio;
|
||||
add("application/ogg", icon);
|
||||
add("application/x-flac", icon);
|
||||
|
||||
// Certificate
|
||||
icon = R.drawable.ic_doc_certificate;
|
||||
add("application/pgp-keys", icon);
|
||||
add("application/pgp-signature", icon);
|
||||
add("application/x-pkcs12", icon);
|
||||
add("application/x-pkcs7-certreqresp", icon);
|
||||
add("application/x-pkcs7-crl", icon);
|
||||
add("application/x-x509-ca-cert", icon);
|
||||
add("application/x-x509-user-cert", icon);
|
||||
add("application/x-pkcs7-certificates", icon);
|
||||
add("application/x-pkcs7-mime", icon);
|
||||
add("application/x-pkcs7-signature", icon);
|
||||
|
||||
// Source code
|
||||
icon = R.drawable.ic_doc_codes;
|
||||
add("application/rdf+xml", icon);
|
||||
add("application/rss+xml", icon);
|
||||
add("application/x-object", icon);
|
||||
add("application/xhtml+xml", icon);
|
||||
add("text/css", icon);
|
||||
add("text/html", icon);
|
||||
add("text/xml", icon);
|
||||
add("text/x-c++hdr", icon);
|
||||
add("text/x-c++src", icon);
|
||||
add("text/x-chdr", icon);
|
||||
add("text/x-csrc", icon);
|
||||
add("text/x-dsrc", icon);
|
||||
add("text/x-csh", icon);
|
||||
add("text/x-haskell", icon);
|
||||
add("text/x-java", icon);
|
||||
add("text/x-literate-haskell", icon);
|
||||
add("text/x-pascal", icon);
|
||||
add("text/x-tcl", icon);
|
||||
add("text/x-tex", icon);
|
||||
add("application/x-latex", icon);
|
||||
add("application/x-texinfo", icon);
|
||||
add("application/atom+xml", icon);
|
||||
add("application/ecmascript", icon);
|
||||
add("application/json", icon);
|
||||
add("application/javascript", icon);
|
||||
add("application/xml", icon);
|
||||
add("text/javascript", icon);
|
||||
add("application/x-javascript", icon);
|
||||
|
||||
// Compressed
|
||||
icon = R.drawable.ic_doc_compressed;
|
||||
add("application/mac-binhex40", icon);
|
||||
add("application/rar", icon);
|
||||
add("application/zip", icon);
|
||||
add("application/x-apple-diskimage", icon);
|
||||
add("application/x-debian-package", icon);
|
||||
add("application/x-gtar", icon);
|
||||
add("application/x-iso9660-image", icon);
|
||||
add("application/x-lha", icon);
|
||||
add("application/x-lzh", icon);
|
||||
add("application/x-lzx", icon);
|
||||
add("application/x-stuffit", icon);
|
||||
add("application/x-tar", icon);
|
||||
add("application/x-webarchive", icon);
|
||||
add("application/x-webarchive-xml", icon);
|
||||
add("application/gzip", icon);
|
||||
add("application/x-7z-compressed", icon);
|
||||
add("application/x-deb", icon);
|
||||
add("application/x-rar-compressed", icon);
|
||||
|
||||
// Contact
|
||||
icon = R.drawable.ic_doc_contact;
|
||||
add("text/x-vcard", icon);
|
||||
add("text/vcard", icon);
|
||||
|
||||
// Event
|
||||
icon = R.drawable.ic_doc_event;
|
||||
add("text/calendar", icon);
|
||||
add("text/x-vcalendar", icon);
|
||||
|
||||
// Font
|
||||
icon = R.drawable.ic_doc_font;
|
||||
add("application/x-font", icon);
|
||||
add("application/font-woff", icon);
|
||||
add("application/x-font-woff", icon);
|
||||
add("application/x-font-ttf", icon);
|
||||
|
||||
// Image
|
||||
icon = R.drawable.ic_doc_image;
|
||||
add("application/vnd.oasis.opendocument.graphics", icon);
|
||||
add("application/vnd.oasis.opendocument.graphics-template", icon);
|
||||
add("application/vnd.oasis.opendocument.image", icon);
|
||||
add("application/vnd.stardivision.draw", icon);
|
||||
add("application/vnd.sun.xml.draw", icon);
|
||||
add("application/vnd.sun.xml.draw.template", icon);
|
||||
|
||||
// PDF
|
||||
icon = R.drawable.ic_doc_pdf;
|
||||
add("application/pdf", icon);
|
||||
|
||||
// Presentation
|
||||
icon = R.drawable.ic_doc_presentation;
|
||||
add("application/vnd.stardivision.impress", icon);
|
||||
add("application/vnd.sun.xml.impress", icon);
|
||||
add("application/vnd.sun.xml.impress.template", icon);
|
||||
add("application/x-kpresenter", icon);
|
||||
add("application/vnd.oasis.opendocument.presentation", icon);
|
||||
|
||||
// Spreadsheet
|
||||
icon = R.drawable.ic_doc_spreadsheet;
|
||||
add("application/vnd.oasis.opendocument.spreadsheet", icon);
|
||||
add("application/vnd.oasis.opendocument.spreadsheet-template", icon);
|
||||
add("application/vnd.stardivision.calc", icon);
|
||||
add("application/vnd.sun.xml.calc", icon);
|
||||
add("application/vnd.sun.xml.calc.template", icon);
|
||||
add("application/x-kspread", icon);
|
||||
|
||||
// Document
|
||||
icon = R.drawable.ic_doc_document;
|
||||
add("application/vnd.oasis.opendocument.text", icon);
|
||||
add("application/vnd.oasis.opendocument.text-master", icon);
|
||||
add("application/vnd.oasis.opendocument.text-template", icon);
|
||||
add("application/vnd.oasis.opendocument.text-web", icon);
|
||||
add("application/vnd.stardivision.writer", icon);
|
||||
add("application/vnd.stardivision.writer-global", icon);
|
||||
add("application/vnd.sun.xml.writer", icon);
|
||||
add("application/vnd.sun.xml.writer.global", icon);
|
||||
add("application/vnd.sun.xml.writer.template", icon);
|
||||
add("application/x-abiword", icon);
|
||||
add("application/x-kword", icon);
|
||||
|
||||
// Video
|
||||
icon = R.drawable.ic_doc_video;
|
||||
add("application/x-quicktimeplayer", icon);
|
||||
add("application/x-shockwave-flash", icon);
|
||||
|
||||
// Word
|
||||
icon = R.drawable.ic_doc_word;
|
||||
add("application/msword", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.wordprocessingml.document", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.wordprocessingml.template", icon);
|
||||
|
||||
// Excel
|
||||
icon = R.drawable.ic_doc_excel;
|
||||
add("application/vnd.ms-excel", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.spreadsheetml.template", icon);
|
||||
|
||||
// Powerpoint
|
||||
icon = R.drawable.ic_doc_powerpoint;
|
||||
add("application/vnd.ms-powerpoint", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.presentation", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.template", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.slideshow", icon);
|
||||
}
|
||||
|
||||
public static Drawable loadMimeIcon(Context context, String mimeType) {
|
||||
if (DocumentsContract.Document.MIME_TYPE_DIR.equals(mimeType)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_folder);
|
||||
}
|
||||
|
||||
// Look for exact match first
|
||||
Integer resId = sMimeIcons.get(mimeType);
|
||||
if (resId != null) {
|
||||
return context.getDrawable(resId);
|
||||
}
|
||||
|
||||
if (mimeType == null) {
|
||||
// TODO: generic icon?
|
||||
return null;
|
||||
}
|
||||
|
||||
// Otherwise look for partial match
|
||||
final String typeOnly = mimeType.split("/")[0];
|
||||
if ("audio".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_audio);
|
||||
} else if ("image".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_image);
|
||||
} else if ("text".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_text);
|
||||
} else if ("video".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_video);
|
||||
} else {
|
||||
return context.getDrawable(R.drawable.ic_doc_generic);
|
||||
}
|
||||
}
|
||||
}
|
||||
24
core/res/res/drawable/ic_doc_folder.xml
Normal file
24
core/res/res/drawable/ic_doc_folder.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
Copyright (C) 2015 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF737373"
|
||||
android:pathData="M10 4H4c-1.1 0,-1.99.9,-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2,-.9 2,-2V8c0,-1.1,-.9,-2,-2,-2h-8l-2,-2z"/>
|
||||
</vector>
|
||||
24
core/res/res/drawable/ic_doc_text.xml
Normal file
24
core/res/res/drawable/ic_doc_text.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
Copyright (C) 2015 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF737373"
|
||||
android:pathData="M14 2H6c-1.1 0,-1.99.9,-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2,-.9 2,-2V8l-6,-6zm2 16H8v-2h8v2zm0,-4H8v-2h8v2zm-3,-5V3.5L18.5 9H13z"/>
|
||||
</vector>
|
||||
@@ -2638,4 +2638,30 @@
|
||||
|
||||
<!-- Package name for the device provisioning package -->
|
||||
<java-symbol type="string" name="config_deviceProvisioningPackage" />
|
||||
|
||||
<!-- Used for MimeIconUtils. -->
|
||||
<java-symbol type="drawable" name="ic_doc_apk" />
|
||||
<java-symbol type="drawable" name="ic_doc_audio" />
|
||||
<java-symbol type="drawable" name="ic_doc_certificate" />
|
||||
<java-symbol type="drawable" name="ic_doc_codes" />
|
||||
<java-symbol type="drawable" name="ic_doc_compressed" />
|
||||
<java-symbol type="drawable" name="ic_doc_contact" />
|
||||
<java-symbol type="drawable" name="ic_doc_event" />
|
||||
<java-symbol type="drawable" name="ic_doc_font" />
|
||||
<java-symbol type="drawable" name="ic_doc_image" />
|
||||
<java-symbol type="drawable" name="ic_doc_pdf" />
|
||||
<java-symbol type="drawable" name="ic_doc_presentation" />
|
||||
<java-symbol type="drawable" name="ic_doc_spreadsheet" />
|
||||
<java-symbol type="drawable" name="ic_doc_document" />
|
||||
<java-symbol type="drawable" name="ic_doc_video" />
|
||||
<java-symbol type="drawable" name="ic_doc_word" />
|
||||
<java-symbol type="drawable" name="ic_doc_excel" />
|
||||
<java-symbol type="drawable" name="ic_doc_powerpoint" />
|
||||
<java-symbol type="drawable" name="ic_doc_folder" />
|
||||
<java-symbol type="drawable" name="ic_doc_audio" />
|
||||
<java-symbol type="drawable" name="ic_doc_image" />
|
||||
<java-symbol type="drawable" name="ic_doc_text" />
|
||||
<java-symbol type="drawable" name="ic_doc_video" />
|
||||
<java-symbol type="drawable" name="ic_doc_generic" />
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -23,181 +23,7 @@ import android.graphics.drawable.Drawable;
|
||||
import android.provider.DocumentsContract.Document;
|
||||
import android.util.TypedValue;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class IconUtils {
|
||||
|
||||
private static HashMap<String, Integer> sMimeIcons = new HashMap<>();
|
||||
|
||||
private static void add(String mimeType, int resId) {
|
||||
if (sMimeIcons.put(mimeType, resId) != null) {
|
||||
throw new RuntimeException(mimeType + " already registered!");
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
int icon;
|
||||
|
||||
// Package
|
||||
icon = R.drawable.ic_doc_apk;
|
||||
add("application/vnd.android.package-archive", icon);
|
||||
|
||||
// Audio
|
||||
icon = R.drawable.ic_doc_audio;
|
||||
add("application/ogg", icon);
|
||||
add("application/x-flac", icon);
|
||||
|
||||
// Certificate
|
||||
icon = R.drawable.ic_doc_certificate;
|
||||
add("application/pgp-keys", icon);
|
||||
add("application/pgp-signature", icon);
|
||||
add("application/x-pkcs12", icon);
|
||||
add("application/x-pkcs7-certreqresp", icon);
|
||||
add("application/x-pkcs7-crl", icon);
|
||||
add("application/x-x509-ca-cert", icon);
|
||||
add("application/x-x509-user-cert", icon);
|
||||
add("application/x-pkcs7-certificates", icon);
|
||||
add("application/x-pkcs7-mime", icon);
|
||||
add("application/x-pkcs7-signature", icon);
|
||||
|
||||
// Source code
|
||||
icon = R.drawable.ic_doc_codes;
|
||||
add("application/rdf+xml", icon);
|
||||
add("application/rss+xml", icon);
|
||||
add("application/x-object", icon);
|
||||
add("application/xhtml+xml", icon);
|
||||
add("text/css", icon);
|
||||
add("text/html", icon);
|
||||
add("text/xml", icon);
|
||||
add("text/x-c++hdr", icon);
|
||||
add("text/x-c++src", icon);
|
||||
add("text/x-chdr", icon);
|
||||
add("text/x-csrc", icon);
|
||||
add("text/x-dsrc", icon);
|
||||
add("text/x-csh", icon);
|
||||
add("text/x-haskell", icon);
|
||||
add("text/x-java", icon);
|
||||
add("text/x-literate-haskell", icon);
|
||||
add("text/x-pascal", icon);
|
||||
add("text/x-tcl", icon);
|
||||
add("text/x-tex", icon);
|
||||
add("application/x-latex", icon);
|
||||
add("application/x-texinfo", icon);
|
||||
add("application/atom+xml", icon);
|
||||
add("application/ecmascript", icon);
|
||||
add("application/json", icon);
|
||||
add("application/javascript", icon);
|
||||
add("application/xml", icon);
|
||||
add("text/javascript", icon);
|
||||
add("application/x-javascript", icon);
|
||||
|
||||
// Compressed
|
||||
icon = R.drawable.ic_doc_compressed;
|
||||
add("application/mac-binhex40", icon);
|
||||
add("application/rar", icon);
|
||||
add("application/zip", icon);
|
||||
add("application/x-apple-diskimage", icon);
|
||||
add("application/x-debian-package", icon);
|
||||
add("application/x-gtar", icon);
|
||||
add("application/x-iso9660-image", icon);
|
||||
add("application/x-lha", icon);
|
||||
add("application/x-lzh", icon);
|
||||
add("application/x-lzx", icon);
|
||||
add("application/x-stuffit", icon);
|
||||
add("application/x-tar", icon);
|
||||
add("application/x-webarchive", icon);
|
||||
add("application/x-webarchive-xml", icon);
|
||||
add("application/gzip", icon);
|
||||
add("application/x-7z-compressed", icon);
|
||||
add("application/x-deb", icon);
|
||||
add("application/x-rar-compressed", icon);
|
||||
|
||||
// Contact
|
||||
icon = R.drawable.ic_doc_contact;
|
||||
add("text/x-vcard", icon);
|
||||
add("text/vcard", icon);
|
||||
|
||||
// Event
|
||||
icon = R.drawable.ic_doc_event;
|
||||
add("text/calendar", icon);
|
||||
add("text/x-vcalendar", icon);
|
||||
|
||||
// Font
|
||||
icon = R.drawable.ic_doc_font;
|
||||
add("application/x-font", icon);
|
||||
add("application/font-woff", icon);
|
||||
add("application/x-font-woff", icon);
|
||||
add("application/x-font-ttf", icon);
|
||||
|
||||
// Image
|
||||
icon = R.drawable.ic_doc_image;
|
||||
add("application/vnd.oasis.opendocument.graphics", icon);
|
||||
add("application/vnd.oasis.opendocument.graphics-template", icon);
|
||||
add("application/vnd.oasis.opendocument.image", icon);
|
||||
add("application/vnd.stardivision.draw", icon);
|
||||
add("application/vnd.sun.xml.draw", icon);
|
||||
add("application/vnd.sun.xml.draw.template", icon);
|
||||
|
||||
// PDF
|
||||
icon = R.drawable.ic_doc_pdf;
|
||||
add("application/pdf", icon);
|
||||
|
||||
// Presentation
|
||||
icon = R.drawable.ic_doc_presentation;
|
||||
add("application/vnd.stardivision.impress", icon);
|
||||
add("application/vnd.sun.xml.impress", icon);
|
||||
add("application/vnd.sun.xml.impress.template", icon);
|
||||
add("application/x-kpresenter", icon);
|
||||
add("application/vnd.oasis.opendocument.presentation", icon);
|
||||
|
||||
// Spreadsheet
|
||||
icon = R.drawable.ic_doc_spreadsheet;
|
||||
add("application/vnd.oasis.opendocument.spreadsheet", icon);
|
||||
add("application/vnd.oasis.opendocument.spreadsheet-template", icon);
|
||||
add("application/vnd.stardivision.calc", icon);
|
||||
add("application/vnd.sun.xml.calc", icon);
|
||||
add("application/vnd.sun.xml.calc.template", icon);
|
||||
add("application/x-kspread", icon);
|
||||
|
||||
// Document
|
||||
icon = R.drawable.ic_doc_document;
|
||||
add("application/vnd.oasis.opendocument.text", icon);
|
||||
add("application/vnd.oasis.opendocument.text-master", icon);
|
||||
add("application/vnd.oasis.opendocument.text-template", icon);
|
||||
add("application/vnd.oasis.opendocument.text-web", icon);
|
||||
add("application/vnd.stardivision.writer", icon);
|
||||
add("application/vnd.stardivision.writer-global", icon);
|
||||
add("application/vnd.sun.xml.writer", icon);
|
||||
add("application/vnd.sun.xml.writer.global", icon);
|
||||
add("application/vnd.sun.xml.writer.template", icon);
|
||||
add("application/x-abiword", icon);
|
||||
add("application/x-kword", icon);
|
||||
|
||||
// Video
|
||||
icon = R.drawable.ic_doc_video;
|
||||
add("application/x-quicktimeplayer", icon);
|
||||
add("application/x-shockwave-flash", icon);
|
||||
|
||||
// Word
|
||||
icon = R.drawable.ic_doc_word;
|
||||
add("application/msword", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.wordprocessingml.document", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.wordprocessingml.template", icon);
|
||||
|
||||
// Excel
|
||||
icon = R.drawable.ic_doc_excel;
|
||||
add("application/vnd.ms-excel", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.spreadsheetml.template", icon);
|
||||
|
||||
// Powerpoint
|
||||
icon = R.drawable.ic_doc_powerpoint;
|
||||
add("application/vnd.ms-powerpoint", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.presentation", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.template", icon);
|
||||
add("application/vnd.openxmlformats-officedocument.presentationml.slideshow", icon);
|
||||
}
|
||||
|
||||
public static Drawable loadPackageIcon(Context context, String authority, int icon) {
|
||||
if (icon != 0) {
|
||||
if (authority != null) {
|
||||
@@ -225,7 +51,7 @@ public class IconUtils {
|
||||
if (mode == State.MODE_GRID) {
|
||||
return context.getDrawable(R.drawable.ic_grid_folder);
|
||||
} else {
|
||||
return context.getDrawable(R.drawable.ic_doc_folder);
|
||||
return context.getDrawable(com.android.internal.R.drawable.ic_doc_folder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,34 +59,7 @@ public class IconUtils {
|
||||
}
|
||||
|
||||
public static Drawable loadMimeIcon(Context context, String mimeType) {
|
||||
if (Document.MIME_TYPE_DIR.equals(mimeType)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_folder);
|
||||
}
|
||||
|
||||
// Look for exact match first
|
||||
Integer resId = sMimeIcons.get(mimeType);
|
||||
if (resId != null) {
|
||||
return context.getDrawable(resId);
|
||||
}
|
||||
|
||||
if (mimeType == null) {
|
||||
// TODO: generic icon?
|
||||
return null;
|
||||
}
|
||||
|
||||
// Otherwise look for partial match
|
||||
final String typeOnly = mimeType.split("/")[0];
|
||||
if ("audio".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_audio);
|
||||
} else if ("image".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_image);
|
||||
} else if ("text".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_text);
|
||||
} else if ("video".equals(typeOnly)) {
|
||||
return context.getDrawable(R.drawable.ic_doc_video);
|
||||
} else {
|
||||
return context.getDrawable(R.drawable.ic_doc_generic);
|
||||
}
|
||||
return context.getContentResolver().getTypeDrawable(mimeType);
|
||||
}
|
||||
|
||||
public static Drawable applyTintColor(Context context, int drawableId, int tintColorId) {
|
||||
|
||||
@@ -1391,7 +1391,7 @@ public class DirectoryFragment extends Fragment
|
||||
return mIconHelper.getDocumentIcon(mContext, doc.authority, doc.documentId,
|
||||
doc.mimeType, doc.icon);
|
||||
}
|
||||
return mContext.getDrawable(R.drawable.ic_doc_generic);
|
||||
return mContext.getDrawable(com.android.internal.R.drawable.ic_doc_generic);
|
||||
}
|
||||
|
||||
private String getTitle(List<DocumentInfo> docs) {
|
||||
|
||||
@@ -213,13 +213,13 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> {
|
||||
derivedIcon = R.drawable.ic_root_download;
|
||||
} else if (isImages()) {
|
||||
derivedType = TYPE_IMAGES;
|
||||
derivedIcon = R.drawable.ic_doc_image;
|
||||
derivedIcon = com.android.internal.R.drawable.ic_doc_image;
|
||||
} else if (isVideos()) {
|
||||
derivedType = TYPE_VIDEO;
|
||||
derivedIcon = R.drawable.ic_doc_video;
|
||||
derivedIcon = com.android.internal.R.drawable.ic_doc_video;
|
||||
} else if (isAudio()) {
|
||||
derivedType = TYPE_AUDIO;
|
||||
derivedIcon = R.drawable.ic_doc_audio;
|
||||
derivedIcon = com.android.internal.R.drawable.ic_doc_audio;
|
||||
} else if (isRecents()) {
|
||||
derivedType = TYPE_RECENTS;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user