For #12125: Handle visibility updates for add to collection button.
parent
2668a68678
commit
94273bc274
|
@ -218,7 +218,8 @@ class HomeFragment : Fragment() {
|
|||
sessionControlView = SessionControlView(
|
||||
view.sessionControlRecyclerView,
|
||||
sessionControlInteractor,
|
||||
homeViewModel
|
||||
homeViewModel,
|
||||
requireComponents.core.store.state.normalTabs.isNotEmpty()
|
||||
)
|
||||
|
||||
updateSessionControlView(view)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue