From 2798961b61b29bd90a7fa2cfb7d8a706e699a4c0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 14 Apr 2023 13:59:36 -0400 Subject: [PATCH] =?UTF-8?q?Bug=201826466=20=E2=80=93=20fix=20unified=20sea?= =?UTF-8?q?rch=20icons=20visibility=20(#1582)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: mike a --- .../main/java/org/mozilla/fenix/home/HomeFragment.kt | 6 ++++++ .../search/toolbar/SearchSelectorToolbarAction.kt | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index e2d9d6c05..3ac6bacba 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -691,6 +691,12 @@ class HomeFragment : Fragment() { requireContext().resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size) BitmapDrawable(requireContext().resources, searchEngine.icon).apply { setBounds(0, 0, iconSize, iconSize) + // Setting tint manually for icons that were converted from Drawable + // to Bitmap. Search Engine icons are stored as Bitmaps, hence + // theming/attribute mechanism won't work. + if (searchEngine.type == SearchEngine.Type.APPLICATION) { + setTint(requireContext().getColorFromAttr(R.attr.textPrimary)) + } } } diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/SearchSelectorToolbarAction.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/SearchSelectorToolbarAction.kt index 7122c5cde..7c6209f49 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/SearchSelectorToolbarAction.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/SearchSelectorToolbarAction.kt @@ -18,6 +18,7 @@ import mozilla.components.browser.state.search.SearchEngine import mozilla.components.concept.menu.Orientation import mozilla.components.concept.toolbar.Toolbar import mozilla.components.lib.state.ext.flow +import mozilla.components.support.ktx.android.content.getColorFromAttr import mozilla.components.support.ktx.android.content.res.resolveAttribute import mozilla.components.support.ktx.android.view.toScope import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged @@ -89,7 +90,14 @@ class SearchSelectorToolbarAction( .ifChanged() .collect { searchEngine -> view.setIcon( - icon = searchEngine.getScaledIcon(view.context), + icon = searchEngine.getScaledIcon(view.context).apply { + // Setting tint manually for icons that were converted from Drawable + // to Bitmap. Search Engine icons are stored as Bitmaps, hence + // theming/attribute mechanism won't work. + if (searchEngine.type == SearchEngine.Type.APPLICATION) { + setTint(view.context.getColorFromAttr(R.attr.textPrimary)) + } + }, contentDescription = searchEngine.name, ) }