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"/>
</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
id="ClickableViewAccessibility"
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
import android.content.Context
import android.graphics.drawable.BitmapDrawable
import androidx.core.graphics.drawable.toDrawable
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
@@ -65,7 +65,7 @@ class SearchSelectorBinding(
val icon = searchEngine?.let {
val iconSize =
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)
// Setting tint manually for icons that were converted from Drawable
// 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.ViewGroup
import androidx.annotation.VisibleForTesting
import androidx.core.graphics.drawable.toDrawable
import androidx.core.graphics.scale
import kotlinx.coroutines.Job
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)
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.res.Resources
import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
@@ -14,6 +13,7 @@ import android.view.ViewGroup
import android.widget.CompoundButton
import android.widget.LinearLayout
import android.widget.RadioGroup
import androidx.core.graphics.drawable.toDrawable
import androidx.core.view.isVisible
import androidx.navigation.Navigation.findNavController
import androidx.preference.Preference
@@ -134,7 +134,7 @@ class RadioSearchEngineListPreference @JvmOverloads constructor(
).menuBuilder.build(context).show(binding.overflowMenu)
}
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)
binding.engineIcon.setImageDrawable(engineIcon)
return wrapper