From e7c15ccd58e393ead12c718e1eb2e2376bcd51db Mon Sep 17 00:00:00 2001 From: Wenbo Jie Date: Wed, 26 Feb 2025 00:32:47 +0000 Subject: [DocsUI M3] Update icons for filter bar chips As spec the icons in the filter bar chips should use a new set of icons for image/audio/video/document, which are different from the system MIME type icons. Check the attached bug for before/after comparison. Bug: 398996996 Test: m DocumentsUIGoogle && manual inspection Flag: com.android.documentsui.flags.use_material3 Change-Id: I347fc268ad77f56e8863bb5a7596e01c3d6e3b1e --- .../drawable/ic_chip_audio.xml | 24 +++++++++++++ .../drawable/ic_chip_document.xml | 25 +++++++++++++ .../drawable/ic_chip_from_this_week.xml | 2 +- .../drawable/ic_chip_image.xml | 24 +++++++++++++ .../drawable/ic_chip_large_files.xml | 2 +- .../drawable/ic_chip_video.xml | 24 +++++++++++++ .../documentsui/queries/SearchChipViewManager.java | 41 ++++++++++++++++------ 7 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_audio.xml create mode 100644 res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_document.xml create mode 100644 res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_image.xml create mode 100644 res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_video.xml diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_audio.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_audio.xml new file mode 100644 index 000000000..ad9707b68 --- /dev/null +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_audio.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_document.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_document.xml new file mode 100644 index 000000000..45b8afe1f --- /dev/null +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_document.xml @@ -0,0 +1,25 @@ + + + + \ No newline at end of file diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_from_this_week.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_from_this_week.xml index dca3b19a0..269a2cab5 100644 --- a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_from_this_week.xml +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_from_this_week.xml @@ -20,6 +20,6 @@ android:viewportWidth="24" android:viewportHeight="24"> \ No newline at end of file diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_image.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_image.xml new file mode 100644 index 000000000..8a85244b2 --- /dev/null +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_image.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_large_files.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_large_files.xml index d0fe55090..39c09c97a 100644 --- a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_large_files.xml +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_large_files.xml @@ -20,6 +20,6 @@ android:viewportWidth="24" android:viewportHeight="24"> \ No newline at end of file diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_video.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_video.xml new file mode 100644 index 000000000..e22e2fc8a --- /dev/null +++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_chip_video.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/src/com/android/documentsui/queries/SearchChipViewManager.java b/src/com/android/documentsui/queries/SearchChipViewManager.java index ad1dfc201..8bc548493 100644 --- a/src/com/android/documentsui/queries/SearchChipViewManager.java +++ b/src/com/android/documentsui/queries/SearchChipViewManager.java @@ -395,17 +395,7 @@ public class SearchChipViewManager { final Context context = mChipGroup.getContext(); chip.setTag(chipData); chip.setText(context.getString(chipData.getTitleRes())); - Drawable chipIcon; - if (chipData.getChipType() == TYPE_LARGE_FILES) { - 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]); - } + Drawable chipIcon = getChipIcon(chipData); chip.setChipIcon(chipIcon); chip.setOnClickListener(this::onChipClick); @@ -418,6 +408,35 @@ public class SearchChipViewManager { } } + private Drawable getChipIcon(SearchChipData chipData) { + final Context context = mChipGroup.getContext(); + int chipType = chipData.getChipType(); + if (chipType == TYPE_LARGE_FILES) { + return context.getDrawable(R.drawable.ic_chip_large_files); + } + if (chipType == TYPE_FROM_THIS_WEEK) { + return context.getDrawable(R.drawable.ic_chip_from_this_week); + } + + // For M3, we don't want to use MIME type icons for image/audio/video/document from the + // system. + if (useMaterial3()) { + return switch (chipType) { + case TYPE_IMAGES -> context.getDrawable(R.drawable.ic_chip_image); + case TYPE_AUDIO -> context.getDrawable(R.drawable.ic_chip_audio); + case TYPE_VIDEOS -> context.getDrawable(R.drawable.ic_chip_video); + case TYPE_DOCUMENTS -> context.getDrawable(R.drawable.ic_chip_document); + default -> null; + }; + } + + if (chipType == TYPE_DOCUMENTS) { + return IconUtils.loadMimeIcon(context, MimeTypes.GENERIC_TYPE); + } + // get the icon drawable with the first mimeType in chipData + return IconUtils.loadMimeIcon(context, chipData.getMimeTypes()[0]); + } + /** * Reorder the chips in chip group. The checked chip has higher order. * -- cgit v1.2.3-59-g8ed1b