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" /> - -