diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index c8d89204d8d48..b3320d6f69760 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -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); + } } diff --git a/core/java/com/android/internal/util/MimeIconUtils.java b/core/java/com/android/internal/util/MimeIconUtils.java new file mode 100644 index 0000000000000..841ec7ca994ce --- /dev/null +++ b/core/java/com/android/internal/util/MimeIconUtils.java @@ -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 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); + } + } +} diff --git a/packages/DocumentsUI/res/drawable/ic_doc_apk.xml b/core/res/res/drawable/ic_doc_apk.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_apk.xml rename to core/res/res/drawable/ic_doc_apk.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_audio.xml b/core/res/res/drawable/ic_doc_audio.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_audio.xml rename to core/res/res/drawable/ic_doc_audio.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_certificate.xml b/core/res/res/drawable/ic_doc_certificate.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_certificate.xml rename to core/res/res/drawable/ic_doc_certificate.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_codes.xml b/core/res/res/drawable/ic_doc_codes.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_codes.xml rename to core/res/res/drawable/ic_doc_codes.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_compressed.xml b/core/res/res/drawable/ic_doc_compressed.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_compressed.xml rename to core/res/res/drawable/ic_doc_compressed.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_contact.xml b/core/res/res/drawable/ic_doc_contact.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_contact.xml rename to core/res/res/drawable/ic_doc_contact.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_document.xml b/core/res/res/drawable/ic_doc_document.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_document.xml rename to core/res/res/drawable/ic_doc_document.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_event.xml b/core/res/res/drawable/ic_doc_event.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_event.xml rename to core/res/res/drawable/ic_doc_event.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_excel.xml b/core/res/res/drawable/ic_doc_excel.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_excel.xml rename to core/res/res/drawable/ic_doc_excel.xml diff --git a/core/res/res/drawable/ic_doc_folder.xml b/core/res/res/drawable/ic_doc_folder.xml new file mode 100644 index 0000000000000..dcbce010810ed --- /dev/null +++ b/core/res/res/drawable/ic_doc_folder.xml @@ -0,0 +1,24 @@ + + + + diff --git a/packages/DocumentsUI/res/drawable/ic_doc_font.xml b/core/res/res/drawable/ic_doc_font.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_font.xml rename to core/res/res/drawable/ic_doc_font.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_generic.xml b/core/res/res/drawable/ic_doc_generic.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_generic.xml rename to core/res/res/drawable/ic_doc_generic.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_image.xml b/core/res/res/drawable/ic_doc_image.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_image.xml rename to core/res/res/drawable/ic_doc_image.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_pdf.xml b/core/res/res/drawable/ic_doc_pdf.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_pdf.xml rename to core/res/res/drawable/ic_doc_pdf.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_powerpoint.xml b/core/res/res/drawable/ic_doc_powerpoint.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_powerpoint.xml rename to core/res/res/drawable/ic_doc_powerpoint.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_presentation.xml b/core/res/res/drawable/ic_doc_presentation.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_presentation.xml rename to core/res/res/drawable/ic_doc_presentation.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_spreadsheet.xml b/core/res/res/drawable/ic_doc_spreadsheet.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_spreadsheet.xml rename to core/res/res/drawable/ic_doc_spreadsheet.xml diff --git a/core/res/res/drawable/ic_doc_text.xml b/core/res/res/drawable/ic_doc_text.xml new file mode 100644 index 0000000000000..7fc04e811b1cc --- /dev/null +++ b/core/res/res/drawable/ic_doc_text.xml @@ -0,0 +1,24 @@ + + + + diff --git a/packages/DocumentsUI/res/drawable/ic_doc_video.xml b/core/res/res/drawable/ic_doc_video.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_video.xml rename to core/res/res/drawable/ic_doc_video.xml diff --git a/packages/DocumentsUI/res/drawable/ic_doc_word.xml b/core/res/res/drawable/ic_doc_word.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/ic_doc_word.xml rename to core/res/res/drawable/ic_doc_word.xml diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d426d1aef0725..a781f9a13b59b 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2638,4 +2638,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java index c28fae85cb8bf..177ba0d201544 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java +++ b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java @@ -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 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) { diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index 870c3439b8a9f..47df940bb1b51 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -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 docs) { diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java index d54bdfd580ebe..649dde049fc48 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java @@ -213,13 +213,13 @@ public class RootInfo implements Durable, Parcelable, Comparable { 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 {