From e727ae5d7efec064df31c4aa22787841cce09cc4 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Mon, 16 Dec 2019 22:35:36 -0600 Subject: [PATCH] Fix 5366 - Use VectorDrawableCompat for all imagery (#7221) * Fix 5366 - Use VectorDrawableCompat for all imagery * Fix detekt lint issues * Restore previous comment contents --- .../mozilla/fenix/collections/CollectionCreationView.kt | 5 +++-- .../downloads/DownloadNotificationBottomSheetDialog.kt | 7 +++++-- .../fenix/home/sessioncontrol/viewholders/TabViewHolder.kt | 5 +++-- .../bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt | 6 +++++- .../bookmarks/viewholders/BookmarkFolderViewHolder.kt | 6 +++++- .../fenix/search/awesomebar/ShortcutsSuggestionProvider.kt | 3 ++- app/src/main/java/org/mozilla/fenix/settings/Extensions.kt | 3 ++- .../fenix/settings/quicksettings/WebsiteInfoView.kt | 3 ++- .../main/java/org/mozilla/fenix/utils/ClearableEditText.kt | 3 ++- app/src/main/res/layout/fragment_about.xml | 2 +- .../fragment_manage_site_permissions_feature_phone.xml | 5 +++-- 11 files changed, 33 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt index c2183f21e..e10a06415 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt @@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.transition.AutoTransition import androidx.transition.Transition import androidx.transition.TransitionManager +import androidx.appcompat.content.res.AppCompatResources import kotlinx.android.extensions.LayoutContainer import kotlinx.android.synthetic.main.component_collection_creation.* import kotlinx.android.synthetic.main.component_collection_creation.view.* @@ -137,7 +138,7 @@ class CollectionCreationView( view.bottom_button_bar_layout.setOnClickListener(null) view.bottom_button_bar_layout.isClickable = false - val drawable = view.context.getDrawable(R.drawable.ic_close) + val drawable = AppCompatResources.getDrawable(view.context, R.drawable.ic_close) drawable?.setTint(ContextCompat.getColor(view.context, R.color.photonWhite)) view.bottom_bar_icon_button.setImageDrawable(drawable) view.bottom_bar_icon_button.contentDescription = @@ -197,7 +198,7 @@ class CollectionCreationView( view.bottom_bar_text.text = view.context.getString(R.string.create_collection_add_new_collection) - val drawable = view.context.getDrawable(R.drawable.ic_new) + val drawable = AppCompatResources.getDrawable(view.context, R.drawable.ic_new) drawable?.setTint(ContextCompat.getColor(view.context, R.color.photonWhite)) view.bottom_bar_icon_button.setImageDrawable(drawable) view.bottom_bar_icon_button.contentDescription = null diff --git a/app/src/main/java/org/mozilla/fenix/downloads/DownloadNotificationBottomSheetDialog.kt b/app/src/main/java/org/mozilla/fenix/downloads/DownloadNotificationBottomSheetDialog.kt index 77e9af5dd..492ea520d 100644 --- a/app/src/main/java/org/mozilla/fenix/downloads/DownloadNotificationBottomSheetDialog.kt +++ b/app/src/main/java/org/mozilla/fenix/downloads/DownloadNotificationBottomSheetDialog.kt @@ -10,6 +10,7 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.ViewGroup import androidx.core.content.ContextCompat +import androidx.appcompat.content.res.AppCompatResources import com.google.android.material.bottomsheet.BottomSheetDialog import kotlinx.android.synthetic.main.download_notification_layout.* import mozilla.components.browser.state.state.content.DownloadState @@ -35,7 +36,8 @@ class DownloadNotificationBottomSheetDialog( download_notification_title.text = context.getString(R.string.mozac_feature_downloads_failed_notification_text2) - download_notification_icon.setImageDrawable(context.getDrawable( + download_notification_icon.setImageDrawable(AppCompatResources.getDrawable( + context, mozilla.components.feature.downloads.R.drawable.mozac_feature_download_ic_download_failed )) @@ -56,7 +58,8 @@ class DownloadNotificationBottomSheetDialog( download_notification_title.text = titleText - download_notification_icon.setImageDrawable(context.getDrawable( + download_notification_icon.setImageDrawable(AppCompatResources.getDrawable( + context, mozilla.components.feature.downloads.R.drawable.mozac_feature_download_ic_download_complete )) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabViewHolder.kt index 6003f1e55..dc48c2cfb 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabViewHolder.kt @@ -8,6 +8,7 @@ import android.graphics.Bitmap import android.graphics.Outline import android.view.View import android.view.ViewOutlineProvider +import androidx.appcompat.content.res.AppCompatResources import androidx.recyclerview.widget.RecyclerView import kotlinx.android.extensions.LayoutContainer import kotlinx.android.synthetic.main.tab_list_row.* @@ -98,11 +99,11 @@ class TabViewHolder( if (mediaState is MediaState.Playing) { play_pause_button.contentDescription = context.getString(R.string.mozac_feature_media_notification_action_pause) - setImageDrawable(context.getDrawable(R.drawable.pause_with_background)) + setImageDrawable(AppCompatResources.getDrawable(context, R.drawable.pause_with_background)) } else { play_pause_button.contentDescription = context.getString(R.string.mozac_feature_media_notification_action_play) - setImageDrawable(context.getDrawable(R.drawable.play_with_background)) + setImageDrawable(AppCompatResources.getDrawable(context, R.drawable.play_with_background)) } } } diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt index 702381ee7..aac6aa22f 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt @@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView +import androidx.appcompat.content.res.AppCompatResources import kotlinx.android.extensions.LayoutContainer import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarkNodeType @@ -71,7 +72,10 @@ class SelectBookmarkFolderAdapter(private val sharedViewModel: BookmarksSharedVi fun bind(folder: BookmarkNodeWithDepth, selected: Boolean, onSelect: (BookmarkNode) -> Unit) { view.changeSelected(selected) - view.iconView.image = containerView.context.getDrawable(R.drawable.ic_folder_icon)?.apply { + view.iconView.image = AppCompatResources.getDrawable( + containerView.context, + R.drawable.ic_folder_icon + )?.apply { setTint(ContextCompat.getColor(containerView.context, R.color.primary_text_light_theme)) } view.titleView.text = folder.node.title diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkFolderViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkFolderViewHolder.kt index bd47afb12..2fd8b0c92 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkFolderViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkFolderViewHolder.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.library.bookmarks.viewholders import android.view.View import androidx.core.content.ContextCompat +import androidx.appcompat.content.res.AppCompatResources import mozilla.components.concept.storage.BookmarkNode import org.jetbrains.anko.image import org.mozilla.fenix.R @@ -43,7 +44,10 @@ class BookmarkFolderViewHolder( } containerView.changeSelected(item in selectionHolder.selectedItems) - containerView.iconView.image = containerView.context.getDrawable(R.drawable.ic_folder_icon)?.apply { + containerView.iconView.image = AppCompatResources.getDrawable( + containerView.context, + R.drawable.ic_folder_icon + )?.apply { setTint(ContextCompat.getColor(containerView.context, R.color.primary_text_light_theme)) } containerView.titleView.text = item.title diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/ShortcutsSuggestionProvider.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/ShortcutsSuggestionProvider.kt index 50a4641cd..2e598bf97 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/ShortcutsSuggestionProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/ShortcutsSuggestionProvider.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.search.awesomebar import android.content.Context import androidx.core.graphics.drawable.toBitmap +import androidx.appcompat.content.res.AppCompatResources import mozilla.components.browser.search.SearchEngine import mozilla.components.concept.awesomebar.AwesomeBar import org.mozilla.fenix.R @@ -27,7 +28,7 @@ class ShortcutsSuggestionProvider( get() = false private val settingsIcon by lazy { - context.getDrawable(R.drawable.ic_settings)?.toBitmap() + AppCompatResources.getDrawable(context, R.drawable.ic_settings)?.toBitmap() } override suspend fun onInputChanged(text: String): List { diff --git a/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt b/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt index 59312eac4..b7f087257 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/Extensions.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.settings import android.view.View import android.widget.RadioButton import android.widget.TextView +import androidx.appcompat.content.res.AppCompatResources import androidx.core.text.HtmlCompat import androidx.preference.Preference import mozilla.components.feature.sitepermissions.SitePermissions @@ -30,7 +31,7 @@ fun SitePermissions.toggle(featurePhone: PhoneFeature): SitePermissions { */ fun RadioButton.setStartCheckedIndicator() { val attr = ThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context) - val buttonDrawable = context.getDrawable(attr) + val buttonDrawable = AppCompatResources.getDrawable(context, attr) buttonDrawable?.apply { setBounds(0, 0, intrinsicWidth, intrinsicHeight) } diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt index 8476375d1..914933659 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt @@ -10,6 +10,7 @@ import android.view.ViewGroup import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat import kotlinx.android.extensions.LayoutContainer import kotlinx.android.synthetic.main.quicksettings_website_info.view.* @@ -48,7 +49,7 @@ class WebsiteInfoView( @DrawableRes iconRes: Int, @ColorRes iconTintRes: Int ) { - val icon = view.context.getDrawable(iconRes) + val icon = AppCompatResources.getDrawable(view.context, iconRes) icon?.setTint(ContextCompat.getColor(view.context, iconTintRes)) view.securityInfo.setText(securityInfoRes) view.securityInfo.putCompoundDrawablesRelativeWithIntrinsicBounds(start = icon) diff --git a/app/src/main/java/org/mozilla/fenix/utils/ClearableEditText.kt b/app/src/main/java/org/mozilla/fenix/utils/ClearableEditText.kt index e92b517b5..9e6228fda 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/ClearableEditText.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/ClearableEditText.kt @@ -11,6 +11,7 @@ import android.graphics.PorterDuffColorFilter import android.util.AttributeSet import android.view.MotionEvent import android.view.MotionEvent.ACTION_UP +import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.widget.AppCompatEditText import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds import org.mozilla.fenix.R @@ -47,7 +48,7 @@ class ClearableEditText @JvmOverloads constructor( override fun onTextChanged(text: CharSequence?, start: Int, lengthBefore: Int, lengthAfter: Int) { super.onTextChanged(text, start, lengthBefore, lengthAfter) val drawable = if (shouldShowClearButton(lengthAfter)) { - context.getDrawable(R.drawable.ic_clear)?.apply { + AppCompatResources.getDrawable(context, R.drawable.ic_clear)?.apply { colorFilter = PorterDuffColorFilter(context.getColorFromAttr(R.attr.primaryText), SRC_IN) } } else { diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 6830fccd9..ed022e28d 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -26,7 +26,7 @@ android:layout_marginEnd="@dimen/about_header_icon_margin_start_end" android:contentDescription="@string/app_name" android:importantForAccessibility="no" - android:src="?fenixLogo" + app:srcCompat="?fenixLogo" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/fragment_manage_site_permissions_feature_phone.xml b/app/src/main/res/layout/fragment_manage_site_permissions_feature_phone.xml index 7f198e6fe..e83c6b3ac 100644 --- a/app/src/main/res/layout/fragment_manage_site_permissions_feature_phone.xml +++ b/app/src/main/res/layout/fragment_manage_site_permissions_feature_phone.xml @@ -7,6 +7,7 @@ android:layout_height="fill_parent" >