diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolder.kt
index 5ee55eb98c..e337a2b4b6 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolder.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolder.kt
@@ -64,10 +64,11 @@ class TopSiteItemViewHolder(
fun bind(topSite: TopSite) {
top_site_title.text = topSite.title
- pin_indicator.visibility = if (topSite.type == PINNED || topSite.type == DEFAULT) {
- View.VISIBLE
+ if (topSite.type == PINNED || topSite.type == DEFAULT) {
+ val pinIndicator = getDrawable(itemView.context, R.drawable.ic_new_pin)
+ top_site_title.setCompoundDrawablesWithIntrinsicBounds(pinIndicator, null, null, null)
} else {
- View.GONE
+ top_site_title.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null)
}
when (topSite.url) {
diff --git a/app/src/main/res/drawable/ic_new_pin.xml b/app/src/main/res/drawable/ic_new_pin.xml
new file mode 100644
index 0000000000..15940a2a22
--- /dev/null
+++ b/app/src/main/res/drawable/ic_new_pin.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/top_site_item.xml b/app/src/main/res/layout/top_site_item.xml
index f02af96fd1..65675bb345 100644
--- a/app/src/main/res/layout/top_site_item.xml
+++ b/app/src/main/res/layout/top_site_item.xml
@@ -23,37 +23,20 @@
-
-
-
-
-
+ tools:ignore="RtlCompat,SmallSp" />
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 48ef9fdc8e..15fbe257ef 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -80,7 +80,7 @@
@color/top_site_title_text_dark_theme
#3A3944
#5B5B66
- @color/photonViolet50
+ @color/foundation_light_theme
@color/photonDarkGrey90
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index da6322747b..2e92a20e58 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -277,7 +277,7 @@
@color/top_site_title_text_light_theme
@color/photonLightGrey30
@color/photonLightGrey50
- @color/photonInk20
+ @color/foundation_dark_theme
@color/photonLightGrey30
diff --git a/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolderTest.kt b/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolderTest.kt
index 02b5f5a6c1..2b2154fd36 100644
--- a/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolderTest.kt
+++ b/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/topsites/TopSiteItemViewHolderTest.kt
@@ -6,15 +6,14 @@ package org.mozilla.fenix.home.sessioncontrol.viewholders.topsites
import android.view.LayoutInflater
import android.view.View
-import android.widget.FrameLayout
-import androidx.core.view.isVisible
+import android.widget.TextView
import io.mockk.mockk
import io.mockk.verify
import kotlinx.android.synthetic.main.top_site_item.view.*
import mozilla.components.feature.top.sites.TopSite
import mozilla.components.support.test.robolectric.testContext
-import org.junit.Assert.assertFalse
-import org.junit.Assert.assertTrue
+import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -59,7 +58,7 @@ class TopSiteItemViewHolderTest {
}
@Test
- fun `pin indicator is visible for default top sites`() {
+ fun `GIVEN a default top site WHEN bind is called THEN the title has a pin indicator`() {
val defaultTopSite = TopSite(
id = 1L,
title = "Pocket",
@@ -69,13 +68,13 @@ class TopSiteItemViewHolderTest {
)
TopSiteItemViewHolder(view, interactor).bind(defaultTopSite)
- val pinIndicator = view.findViewById(R.id.pin_indicator)
+ val pinIndicator = view.findViewById(R.id.top_site_title).compoundDrawables[0]
- assertTrue(pinIndicator.isVisible)
+ assertNotNull(pinIndicator)
}
@Test
- fun `pin indicator is visible for pinned top sites`() {
+ fun `GIVEN a pinned top site WHEN bind is called THEN the title has a pin indicator`() {
val pinnedTopSite = TopSite(
id = 1L,
title = "Mozilla",
@@ -85,13 +84,13 @@ class TopSiteItemViewHolderTest {
)
TopSiteItemViewHolder(view, interactor).bind(pinnedTopSite)
- val pinIndicator = view.findViewById(R.id.pin_indicator)
+ val pinIndicator = view.findViewById(R.id.top_site_title).compoundDrawables[0]
- assertTrue(pinIndicator.isVisible)
+ assertNotNull(pinIndicator)
}
@Test
- fun `pin indicator is not visible for frecent top sites`() {
+ fun `GIVEN a frecent top site WHEN bind is called THEN the title does not have a pin indicator`() {
val frecentTopSite = TopSite(
id = 1L,
title = "Mozilla",
@@ -101,8 +100,8 @@ class TopSiteItemViewHolderTest {
)
TopSiteItemViewHolder(view, interactor).bind(frecentTopSite)
- val pinIndicator = view.findViewById(R.id.pin_indicator)
+ val pinIndicator = view.findViewById(R.id.top_site_title).compoundDrawables[0]
- assertFalse(pinIndicator.isVisible)
+ assertNull(pinIndicator)
}
}