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(
view.sessionControlRecyclerView,
sessionControlInteractor,
homeViewModel
homeViewModel,
requireComponents.core.store.state.normalTabs.isNotEmpty()
)
updateSessionControlView(view)

View File

@ -108,7 +108,8 @@ class AdapterItemDiffCallback : DiffUtil.ItemCallback<AdapterItem>() {
}
class SessionControlAdapter(
private val interactor: SessionControlInteractor
private val interactor: SessionControlInteractor,
private val hasNormalTabsOpened: Boolean
) : ListAdapter<AdapterItem, RecyclerView.ViewHolder>(AdapterItemDiffCallback()) {
// 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)
TopSiteViewHolder.LAYOUT_ID -> TopSiteViewHolder(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)
CollectionViewHolder.LAYOUT_ID -> CollectionViewHolder(view, interactor)
TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder(view, interactor, differentLastItem = true)

View File

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

View File

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