diff --git a/app/src/main/java/org/mozilla/fenix/tabhistory/TabHistoryViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabhistory/TabHistoryViewHolder.kt index cfa2cc81a..6366dca52 100644 --- a/app/src/main/java/org/mozilla/fenix/tabhistory/TabHistoryViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabhistory/TabHistoryViewHolder.kt @@ -5,10 +5,10 @@ package org.mozilla.fenix.tabhistory import android.view.View -import androidx.core.text.bold -import androidx.core.text.buildSpannedString import androidx.core.view.isVisible import kotlinx.android.synthetic.main.tab_history_list_item.* +import mozilla.components.support.ktx.android.content.getColorFromAttr +import org.mozilla.fenix.R import org.mozilla.fenix.library.LibrarySiteItemView import org.mozilla.fenix.utils.view.ViewHolder @@ -28,15 +28,14 @@ class TabHistoryViewHolder( history_layout.displayAs(LibrarySiteItemView.ItemType.SITE) history_layout.overflowView.isVisible = false + history_layout.titleView.text = item.title history_layout.urlView.text = item.url history_layout.loadFavicon(item.url) - history_layout.titleView.text = if (item.isSelected) { - buildSpannedString { - bold { append(item.title) } - } + if (item.isSelected) { + history_layout.setBackgroundColor(history_layout.context.getColorFromAttr(R.attr.tabHistoryItemSelectedBackground)) } else { - item.title + history_layout.background = null } } } diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 5ff68a52a..29193af41 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -67,6 +67,9 @@ @color/tab_tray_item_thumbnail_icon_dark_theme @color/tab_tray_selected_mask_dark_theme + + @color/tab_tray_item_selected_background_dark_theme + @color/top_site_title_text_dark_theme diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 35eb091d7..292f24ea5 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -66,6 +66,9 @@ + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4e7101f93..3dbeaf224 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -77,6 +77,9 @@ @color/photonLightGrey60 @color/violet_70_12a + + @color/tab_tray_item_selected_background_light_theme + #FBFBFE #A7A2B7 @@ -140,6 +143,9 @@ @color/photonDarkGrey05 @color/violet_50_32a + + @color/tab_tray_item_selected_background_dark_theme + #FBFBFE #A7A2B7 @@ -195,6 +201,9 @@ @color/violet_50 @color/violet_50_48a + + @color/tab_tray_item_selected_background_dark_theme + @color/primary_text_light_theme @color/secondary_text_light_theme @@ -254,6 +263,9 @@ @color/tab_tray_item_thumbnail_icon_light_theme @color/tab_tray_selected_mask_light_theme + + @color/tab_history_item_selected_background_light_theme + #DFDFE3 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index b67e9349e..9b89fb6da 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -93,6 +93,9 @@ @color/tab_tray_item_thumbnail_background_normal_theme @color/tab_tray_item_thumbnail_icon_normal_theme + + @color/tab_history_item_selected_background_normal_theme + @drawable/ic_logo_wordmark_normal @color/foundation_normal_theme @@ -231,6 +234,9 @@ @color/tab_tray_item_thumbnail_background_normal_theme @color/tab_tray_item_thumbnail_icon_normal_theme + + @color/tab_history_item_selected_background_private_theme + @drawable/ic_logo_wordmark_private @drawable/private_home_background_gradient diff --git a/app/src/test/java/org/mozilla/fenix/tabhistory/TabHistoryAdapterTest.kt b/app/src/test/java/org/mozilla/fenix/tabhistory/TabHistoryAdapterTest.kt index 72662e807..7bfd37904 100644 --- a/app/src/test/java/org/mozilla/fenix/tabhistory/TabHistoryAdapterTest.kt +++ b/app/src/test/java/org/mozilla/fenix/tabhistory/TabHistoryAdapterTest.kt @@ -4,12 +4,14 @@ package org.mozilla.fenix.tabhistory -import android.text.Spanned +import android.content.Context +import android.graphics.drawable.ColorDrawable import android.widget.FrameLayout import androidx.appcompat.view.ContextThemeWrapper -import androidx.core.text.HtmlCompat -import io.mockk.mockk +import io.mockk.MockKAnnotations +import io.mockk.impl.annotations.MockK import kotlinx.android.synthetic.main.history_list_item.* +import mozilla.components.support.ktx.android.content.getColorFromAttr import mozilla.components.support.test.robolectric.testContext import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse @@ -23,8 +25,10 @@ import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @RunWith(FenixRobolectricTestRunner::class) class TabHistoryAdapterTest { - private lateinit var parent: FrameLayout + @MockK private lateinit var interactor: TabHistoryInteractor + private lateinit var context: Context + private lateinit var parent: FrameLayout private lateinit var adapter: TabHistoryAdapter private val selectedItem = TabHistoryItem( @@ -42,8 +46,9 @@ class TabHistoryAdapterTest { @Before fun setup() { - parent = FrameLayout(ContextThemeWrapper(testContext, R.style.NormalTheme)) - interactor = mockk() + MockKAnnotations.init(this) + context = ContextThemeWrapper(testContext, R.style.NormalTheme) + parent = FrameLayout(context) adapter = TabHistoryAdapter(interactor) } @@ -54,12 +59,15 @@ class TabHistoryAdapterTest { val holder = adapter.createViewHolder(parent, 0) adapter.bindViewHolder(holder, 0) - val htmlSelected = HtmlCompat.toHtml(holder.history_layout.titleView.text as Spanned, 0) - assertTrue(htmlSelected, "Mozilla" in htmlSelected) + assertEquals("Mozilla", holder.history_layout.titleView.text) + assertEquals( + context.getColorFromAttr(R.attr.tabHistoryItemSelectedBackground), + (holder.history_layout.background as ColorDrawable).color + ) adapter.bindViewHolder(holder, 1) - assertFalse(holder.history_layout.titleView.text is Spanned) assertEquals("Firefox", holder.history_layout.titleView.text) + assertEquals(null, holder.history_layout.background) } @Test