Display favicon in the tabs tray

pull/49/head
Abhijit Valluri 4 years ago
parent ba36729d7d
commit e1dcb01741

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

@ -73,6 +73,24 @@
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/mozac_browser_tabstray_icon_card"
android:layout_width="20dp"
android:layout_height="20dp"
app:layout_constraintStart_toStartOf="@id/mozac_browser_tabstray_card"
app:layout_constraintBottom_toTopOf="@id/mozac_browser_tabstray_card"
app:layout_constraintTop_toTopOf="parent"
app:cardCornerRadius="5dp" >
<ImageView
android:id="@+id/mozac_browser_tabstray_icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:importantForAccessibility="no" />
</androidx.cardview.widget.CardView>
<TextView
android:id="@+id/mozac_browser_tabstray_title"
android:layout_width="0dp"
@ -89,8 +107,7 @@
android:visibility="visible"
tools:text="Webpage tile that is long"
app:layout_constraintEnd_toStartOf="@id/mozac_browser_tabstray_close"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toEndOf="@id/mozac_browser_tabstray_icon_card"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageButton
@ -101,7 +118,6 @@
android:contentDescription="@string/close_tab"
app:layout_constraintEnd_toEndOf="@id/mozac_browser_tabstray_card"
app:layout_constraintBottom_toTopOf="@id/mozac_browser_tabstray_card"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/mozac_ic_close"
app:tint="@color/tab_tray_item_text_normal_theme" />

Loading…
Cancel
Save