Bug 1826466 – fix unified search icons visibility (#1582)

Co-authored-by: mike a <mavduevskiy@gmail.com>
fenix/112.1.0
mergify[bot] 1 year ago committed by GitHub
parent 556b33b1cf
commit 2798961b61

@ -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))
}
}
}

@ -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,
)
}

Loading…
Cancel
Save