diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
index 2dd904b94..9ee67d35d 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
@@ -22,12 +22,12 @@ import org.mozilla.fenix.home.OnboardingState
import org.mozilla.fenix.home.Tab
import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionHeaderViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
+import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.NoContentMessageViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.NoContentMessageWithActionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.SaveTabGroupViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabHeaderViewHolder
-import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSiteViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingAutomaticSignInViewHolder
@@ -172,7 +172,7 @@ class SessionControlAdapter(
NoContentMessageWithActionViewHolder.LAYOUT_ID -> NoContentMessageWithActionViewHolder(view)
CollectionHeaderViewHolder.LAYOUT_ID -> CollectionHeaderViewHolder(view)
CollectionViewHolder.LAYOUT_ID -> CollectionViewHolder(view, interactor)
- TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder(view, interactor)
+ TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder(view, interactor, differentLastItem = true)
OnboardingHeaderViewHolder.LAYOUT_ID -> OnboardingHeaderViewHolder(view)
OnboardingSectionHeaderViewHolder.LAYOUT_ID -> OnboardingSectionHeaderViewHolder(view)
OnboardingAutomaticSignInViewHolder.LAYOUT_ID -> OnboardingAutomaticSignInViewHolder(view)
diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SwipeToDeleteCallback.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SwipeToDeleteCallback.kt
index 1b33e4ebe..014b18801 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SwipeToDeleteCallback.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SwipeToDeleteCallback.kt
@@ -50,7 +50,7 @@ class SwipeToDeleteCallback(
icon?.setTint(recyclerView.context.getColorFromAttr(R.attr.destructive))
val backgroundDrawable = when {
- viewHolder is TabInCollectionViewHolder && viewHolder.isLastTab -> {
+ viewHolder is TabInCollectionViewHolder && viewHolder.isLastItem -> {
R.drawable.tab_in_collection_last_swipe_background
}
viewHolder is TabInCollectionViewHolder -> {
diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt
index 7677c1b8b..feca7b61f 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt
@@ -10,10 +10,9 @@ import android.view.ViewOutlineProvider
import androidx.appcompat.content.res.AppCompatResources
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.extensions.LayoutContainer
-import kotlinx.android.synthetic.main.list_element.divider_line
import kotlinx.android.synthetic.main.list_element.list_element_title
-import kotlinx.android.synthetic.main.list_element.list_item_close_button
-import kotlinx.android.synthetic.main.list_element.list_item_icon
+import kotlinx.android.synthetic.main.list_element.list_item_action_button
+import kotlinx.android.synthetic.main.list_element.list_item_favicon
import kotlinx.android.synthetic.main.list_element.list_item_url
import mozilla.components.feature.tab.collections.TabCollection
import mozilla.components.support.ktx.android.content.getColorFromAttr
@@ -29,6 +28,7 @@ import mozilla.components.feature.tab.collections.Tab as ComponentTab
class TabInCollectionViewHolder(
val view: View,
val interactor: CollectionInteractor,
+ private val differentLastItem: Boolean = false,
override val containerView: View? = view
) : RecyclerView.ViewHolder(view), LayoutContainer {
@@ -36,11 +36,11 @@ class TabInCollectionViewHolder(
private set
lateinit var tab: ComponentTab
private set
- var isLastTab = false
+ var isLastItem = false
init {
- list_item_icon.clipToOutline = true
- list_item_icon.outlineProvider = object : ViewOutlineProvider() {
+ list_item_favicon.clipToOutline = true
+ list_item_favicon.outlineProvider = object : ViewOutlineProvider() {
override fun getOutline(view: View, outline: Outline?) {
outline?.setRoundRect(
0,
@@ -56,8 +56,8 @@ class TabInCollectionViewHolder(
interactor.onCollectionOpenTabClicked(tab)
}
- list_item_close_button.increaseTapArea(buttonIncreaseDps)
- list_item_close_button.setOnClickListener {
+ list_item_action_button.increaseTapArea(buttonIncreaseDps)
+ list_item_action_button.setOnClickListener {
interactor.onCollectionRemoveTab(collection, tab)
}
}
@@ -65,7 +65,7 @@ class TabInCollectionViewHolder(
fun bindSession(collection: TabCollection, tab: ComponentTab, isLastTab: Boolean) {
this.collection = collection
this.tab = tab
- this.isLastTab = isLastTab
+ this.isLastItem = isLastTab
updateTabUI()
}
@@ -73,15 +73,13 @@ class TabInCollectionViewHolder(
list_item_url.text = tab.url.toShortUrl(view.context.components.publicSuffixList)
list_element_title.text = tab.title
- list_item_icon.context.components.core.icons.loadIntoView(list_item_icon, tab.url)
+ list_item_favicon.context.components.core.icons.loadIntoView(list_item_favicon, tab.url)
- // If I'm the last one...
- if (isLastTab) {
+ // If last item and we want to change UI for it
+ if (isLastItem && differentLastItem) {
view.background = AppCompatResources.getDrawable(view.context, R.drawable.rounded_bottom_corners)
- divider_line.visibility = View.GONE
} else {
view.setBackgroundColor(view.context.getColorFromAttr(R.attr.above))
- divider_line.visibility = View.VISIBLE
}
}
diff --git a/app/src/main/res/layout/list_element.xml b/app/src/main/res/layout/list_element.xml
index a5c5f458f..876fe21ad 100644
--- a/app/src/main/res/layout/list_element.xml
+++ b/app/src/main/res/layout/list_element.xml
@@ -16,12 +16,12 @@
android:foreground="?android:attr/selectableItemBackground">
@@ -61,7 +61,7 @@
app:layout_constraintTop_toBottomOf="@id/list_element_title" />
-
-