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 5ee55eb98..e337a2b4b 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 000000000..15940a2a2 --- /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 f02af96fd..65675bb34 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 48ef9fdc8..15fbe257e 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 da6322747..2e92a20e5 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 02b5f5a6c..2b2154fd3 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) } }