From e1dcb017410bca33212b3d112402185a34cd0f87 Mon Sep 17 00:00:00 2001 From: Abhijit Valluri Date: Thu, 3 Sep 2020 00:55:41 +0100 Subject: [PATCH] Display favicon in the tabs tray --- .../fenix/tabtray/TabTrayViewHolder.kt | 16 +++++++++++--- app/src/main/res/layout/tab_tray_item.xml | 22 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayViewHolder.kt index eb1526a85..bd951df59 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayViewHolder.kt @@ -12,13 +12,13 @@ import android.widget.TextView import androidx.annotation.VisibleForTesting import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.widget.AppCompatImageButton +import androidx.cardview.widget.CardView import androidx.core.content.ContextCompat import mozilla.components.browser.state.state.MediaState import mozilla.components.browser.state.store.BrowserStore import mozilla.components.browser.tabstray.TabViewHolder import mozilla.components.browser.tabstray.TabsTrayStyling import mozilla.components.browser.tabstray.thumbnail.TabThumbnailView -import mozilla.components.browser.toolbar.MAX_URI_LENGTH import mozilla.components.concept.tabstray.Tab import mozilla.components.concept.tabstray.TabsTray import mozilla.components.feature.media.ext.pauseIfPlaying @@ -35,8 +35,6 @@ import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.ext.removeAndDisable import org.mozilla.fenix.ext.removeTouchDelegate import org.mozilla.fenix.ext.showAndEnable -import org.mozilla.fenix.ext.toShortUrl -import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.Do import kotlin.math.max @@ -50,6 +48,8 @@ class TabTrayViewHolder( private val metrics: MetricController = itemView.context.components.analytics.metrics ) : TabViewHolder(itemView) { + private val iconCard: CardView = itemView.findViewById(R.id.mozac_browser_tabstray_icon_card) + private val iconView: ImageView = itemView.findViewById(R.id.mozac_browser_tabstray_icon) private val titleView: TextView = itemView.findViewById(R.id.mozac_browser_tabstray_title) private val closeView: AppCompatImageButton = itemView.findViewById(R.id.mozac_browser_tabstray_close) @@ -74,6 +74,7 @@ class TabTrayViewHolder( // Basic text updateTitle(tab) + updateIcon(tab) updateCloseButtonDescription(tab.title) // Drawables and theme @@ -153,6 +154,15 @@ class TabTrayViewHolder( titleView.text = title } + private fun updateIcon(tab: Tab) { + if (tab.icon != null) { + iconCard.visibility = View.VISIBLE + iconView.setImageBitmap(tab.icon) + } else { + iconCard.visibility = View.GONE + } + } + @VisibleForTesting internal fun updateBackgroundColor(isSelected: Boolean) { val color = if (isSelected) { diff --git a/app/src/main/res/layout/tab_tray_item.xml b/app/src/main/res/layout/tab_tray_item.xml index c237b8752..61cb90a0a 100644 --- a/app/src/main/res/layout/tab_tray_item.xml +++ b/app/src/main/res/layout/tab_tray_item.xml @@ -73,6 +73,24 @@ + + + + + + +