1
0
Fork 0

For #12125: Handle visibility updates for add to collection button.

master
mcarare 2020-07-06 20:22:29 +03:00 committed by Emily Kager
parent 2668a68678
commit 94273bc274
4 changed files with 13 additions and 6 deletions

View File

@ -218,7 +218,8 @@ class HomeFragment : Fragment() {
sessionControlView = SessionControlView( sessionControlView = SessionControlView(
view.sessionControlRecyclerView, view.sessionControlRecyclerView,
sessionControlInteractor, sessionControlInteractor,
homeViewModel homeViewModel,
requireComponents.core.store.state.normalTabs.isNotEmpty()
) )
updateSessionControlView(view) updateSessionControlView(view)

View File

@ -108,7 +108,8 @@ class AdapterItemDiffCallback : DiffUtil.ItemCallback<AdapterItem>() {
} }
class SessionControlAdapter( class SessionControlAdapter(
private val interactor: SessionControlInteractor private val interactor: SessionControlInteractor,
private val hasNormalTabsOpened: Boolean
) : ListAdapter<AdapterItem, RecyclerView.ViewHolder>(AdapterItemDiffCallback()) { ) : ListAdapter<AdapterItem, RecyclerView.ViewHolder>(AdapterItemDiffCallback()) {
// This method triggers the ComplexMethod lint error when in fact it's quite simple. // This method triggers the ComplexMethod lint error when in fact it's quite simple.
@ -119,7 +120,8 @@ class SessionControlAdapter(
ButtonTipViewHolder.LAYOUT_ID -> ButtonTipViewHolder(view, interactor) ButtonTipViewHolder.LAYOUT_ID -> ButtonTipViewHolder(view, interactor)
TopSiteViewHolder.LAYOUT_ID -> TopSiteViewHolder(view, interactor) TopSiteViewHolder.LAYOUT_ID -> TopSiteViewHolder(view, interactor)
PrivateBrowsingDescriptionViewHolder.LAYOUT_ID -> PrivateBrowsingDescriptionViewHolder(view, interactor) PrivateBrowsingDescriptionViewHolder.LAYOUT_ID -> PrivateBrowsingDescriptionViewHolder(view, interactor)
NoCollectionsMessageViewHolder.LAYOUT_ID -> NoCollectionsMessageViewHolder(view, interactor) NoCollectionsMessageViewHolder.LAYOUT_ID ->
NoCollectionsMessageViewHolder(view, interactor, hasNormalTabsOpened)
CollectionHeaderViewHolder.LAYOUT_ID -> CollectionHeaderViewHolder(view) CollectionHeaderViewHolder.LAYOUT_ID -> CollectionHeaderViewHolder(view)
CollectionViewHolder.LAYOUT_ID -> CollectionViewHolder(view, interactor) CollectionViewHolder.LAYOUT_ID -> CollectionViewHolder(view, interactor)
TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder(view, interactor, differentLastItem = true) TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder(view, interactor, differentLastItem = true)

View File

@ -114,12 +114,13 @@ private fun collectionTabItems(collection: TabCollection) = collection.tabs.mapI
class SessionControlView( class SessionControlView(
override val containerView: View?, override val containerView: View?,
interactor: SessionControlInteractor, interactor: SessionControlInteractor,
private var homeScreenViewModel: HomeScreenViewModel private var homeScreenViewModel: HomeScreenViewModel,
private val hasNormalTabsOpened: Boolean
) : LayoutContainer { ) : LayoutContainer {
val view: RecyclerView = containerView as RecyclerView val view: RecyclerView = containerView as RecyclerView
private val sessionControlAdapter = SessionControlAdapter(interactor) private val sessionControlAdapter = SessionControlAdapter(interactor, hasNormalTabsOpened)
init { init {
view.apply { view.apply {

View File

@ -5,6 +5,7 @@
package org.mozilla.fenix.home.sessioncontrol.viewholders package org.mozilla.fenix.home.sessioncontrol.viewholders
import android.view.View import android.view.View
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.no_collections_message.view.* import kotlinx.android.synthetic.main.no_collections_message.view.*
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ext.ViewHolder import org.mozilla.fenix.ext.ViewHolder
@ -12,13 +13,15 @@ import org.mozilla.fenix.home.sessioncontrol.CollectionInteractor
open class NoCollectionsMessageViewHolder( open class NoCollectionsMessageViewHolder(
view: View, view: View,
interactor: CollectionInteractor interactor: CollectionInteractor,
hasNormalTabsOpened: Boolean
) : ViewHolder(view) { ) : ViewHolder(view) {
init { init {
view.add_tabs_to_collections_button.setOnClickListener { view.add_tabs_to_collections_button.setOnClickListener {
interactor.onAddTabsToCollectionTapped() interactor.onAddTabsToCollectionTapped()
} }
view.add_tabs_to_collections_button.isVisible = hasNormalTabsOpened
} }
companion object { companion object {
const val LAYOUT_ID = R.layout.no_collections_message const val LAYOUT_ID = R.layout.no_collections_message