Bug 1958138 - Use Bitmap.toDrawable instead of BitmapDrawable. r=android-reviewers,mcarare

Differential Revision: https://phabricator.services.mozilla.com/D244313
This commit is contained in:
Ryan VanderMeulen
2025-04-03 14:18:41 +00:00
parent ee6664c570
commit fdd1baf3bb
4 changed files with 6 additions and 38 deletions

View File

@@ -1917,39 +1917,6 @@
column="9"/> column="9"/>
</issue> </issue>
<issue
id="UseKtx"
message="Use the KTX extension function `Bitmap.toDrawable` instead?"
errorLine1=" val engineIcon = BitmapDrawable(res, engine.icon)"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/search/RadioSearchEngineListPreference.kt"
line="137"
column="26"/>
</issue>
<issue
id="UseKtx"
message="Use the KTX extension function `Bitmap.toDrawable` instead?"
errorLine1=" BitmapDrawable(context.resources, searchEngine.icon).apply {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/toolbar/SearchSelectorBinding.kt"
line="68"
column="21"/>
</issue>
<issue
id="UseKtx"
message="Use the KTX extension function `Bitmap.toDrawable` instead?"
errorLine1=" return BitmapDrawable(context.resources, scaledIcon)"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/search/toolbar/SearchSelectorToolbarAction.kt"
line="127"
column="12"/>
</issue>
<issue <issue
id="ClickableViewAccessibility" id="ClickableViewAccessibility"
message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`" message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"

View File

@@ -5,7 +5,7 @@
package org.mozilla.fenix.home.toolbar package org.mozilla.fenix.home.toolbar
import android.content.Context import android.content.Context
import android.graphics.drawable.BitmapDrawable import androidx.core.graphics.drawable.toDrawable
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@@ -65,7 +65,7 @@ class SearchSelectorBinding(
val icon = searchEngine?.let { val icon = searchEngine?.let {
val iconSize = val iconSize =
context.resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size) context.resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size)
BitmapDrawable(context.resources, searchEngine.icon).apply { searchEngine.icon.toDrawable(context.resources).apply {
setBounds(0, 0, iconSize, iconSize) setBounds(0, 0, iconSize, iconSize)
// Setting tint manually for icons that were converted from Drawable // Setting tint manually for icons that were converted from Drawable
// to Bitmap. Search Engine icons are stored as Bitmaps, hence // to Bitmap. Search Engine icons are stored as Bitmaps, hence

View File

@@ -9,6 +9,7 @@ import android.graphics.drawable.BitmapDrawable
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import androidx.core.graphics.drawable.toDrawable
import androidx.core.graphics.scale import androidx.core.graphics.scale
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.distinctUntilChanged
@@ -124,5 +125,5 @@ internal fun SearchEngine.getScaledIcon(context: Context): BitmapDrawable {
context.resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size) context.resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size)
val scaledIcon = icon.scale(iconSize, iconSize, filter = true) val scaledIcon = icon.scale(iconSize, iconSize, filter = true)
return BitmapDrawable(context.resources, scaledIcon) return scaledIcon.toDrawable(context.resources)
} }

View File

@@ -6,7 +6,6 @@ package org.mozilla.fenix.settings.search
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@@ -14,6 +13,7 @@ import android.view.ViewGroup
import android.widget.CompoundButton import android.widget.CompoundButton
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.RadioGroup import android.widget.RadioGroup
import androidx.core.graphics.drawable.toDrawable
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.navigation.Navigation.findNavController import androidx.navigation.Navigation.findNavController
import androidx.preference.Preference import androidx.preference.Preference
@@ -134,7 +134,7 @@ class RadioSearchEngineListPreference @JvmOverloads constructor(
).menuBuilder.build(context).show(binding.overflowMenu) ).menuBuilder.build(context).show(binding.overflowMenu)
} }
val iconSize = res.getDimension(R.dimen.preference_icon_drawable_size).toInt() val iconSize = res.getDimension(R.dimen.preference_icon_drawable_size).toInt()
val engineIcon = BitmapDrawable(res, engine.icon) val engineIcon = engine.icon.toDrawable(res)
engineIcon.setBounds(0, 0, iconSize, iconSize) engineIcon.setBounds(0, 0, iconSize, iconSize)
binding.engineIcon.setImageDrawable(engineIcon) binding.engineIcon.setImageDrawable(engineIcon)
return wrapper return wrapper