parent
25cd1dbac2
commit
dd5bb94f8c
|
@ -91,7 +91,7 @@ class BookmarkAdapter(val emptyView: View, val interactor: BookmarkViewInteracto
|
|||
override fun getItemCount(): Int = tree.size
|
||||
|
||||
override fun onBindViewHolder(holder: BookmarkNodeViewHolder, position: Int) {
|
||||
holder.bind(tree[position])
|
||||
holder.bind(tree[position], mode)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -139,6 +139,7 @@ class BookmarkView(
|
|||
}
|
||||
|
||||
fun update(state: BookmarkFragmentState) {
|
||||
val oldMode = mode
|
||||
tree = state.tree
|
||||
if (state.mode != mode) {
|
||||
mode = state.mode
|
||||
|
@ -148,6 +149,10 @@ class BookmarkView(
|
|||
}
|
||||
|
||||
bookmarkAdapter.updateData(state.tree, mode)
|
||||
if (state.mode != oldMode) {
|
||||
bookmarkAdapter.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
when (mode) {
|
||||
is BookmarkFragmentState.Mode.Normal -> {
|
||||
setUiForNormalMode(state.tree)
|
||||
|
|
|
@ -13,6 +13,7 @@ import org.mozilla.fenix.ext.hideAndDisable
|
|||
import org.mozilla.fenix.ext.showAndEnable
|
||||
import org.mozilla.fenix.library.LibrarySiteItemView
|
||||
import org.mozilla.fenix.library.SelectionHolder
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkFragmentState
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkViewInteractor
|
||||
import org.mozilla.fenix.library.bookmarks.inRoots
|
||||
|
||||
|
@ -27,7 +28,10 @@ class BookmarkFolderViewHolder(
|
|||
|
||||
override var item: BookmarkNode? = null
|
||||
|
||||
override fun bind(item: BookmarkNode) {
|
||||
override fun bind(
|
||||
item: BookmarkNode,
|
||||
mode: BookmarkFragmentState.Mode
|
||||
) {
|
||||
this.item = item
|
||||
|
||||
containerView.displayAs(LibrarySiteItemView.ItemType.FOLDER)
|
||||
|
@ -36,10 +40,10 @@ class BookmarkFolderViewHolder(
|
|||
|
||||
if (!item.inRoots()) {
|
||||
setupMenu(item)
|
||||
if (selectionHolder.selectedItems.isEmpty()) {
|
||||
containerView.overflowView.showAndEnable()
|
||||
} else {
|
||||
if (mode is BookmarkFragmentState.Mode.Selecting) {
|
||||
containerView.overflowView.hideAndDisable()
|
||||
} else {
|
||||
containerView.overflowView.showAndEnable()
|
||||
}
|
||||
} else {
|
||||
containerView.overflowView.visibility = View.GONE
|
||||
|
|
|
@ -9,6 +9,7 @@ import org.mozilla.fenix.ext.hideAndDisable
|
|||
import org.mozilla.fenix.ext.showAndEnable
|
||||
import org.mozilla.fenix.library.LibrarySiteItemView
|
||||
import org.mozilla.fenix.library.SelectionHolder
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkFragmentState
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkViewInteractor
|
||||
|
||||
/**
|
||||
|
@ -22,15 +23,18 @@ class BookmarkItemViewHolder(
|
|||
|
||||
override var item: BookmarkNode? = null
|
||||
|
||||
override fun bind(item: BookmarkNode) {
|
||||
override fun bind(
|
||||
item: BookmarkNode,
|
||||
mode: BookmarkFragmentState.Mode
|
||||
) {
|
||||
this.item = item
|
||||
|
||||
containerView.displayAs(LibrarySiteItemView.ItemType.SITE)
|
||||
|
||||
if (selectionHolder.selectedItems.isEmpty()) {
|
||||
containerView.overflowView.showAndEnable()
|
||||
} else {
|
||||
if (mode is BookmarkFragmentState.Mode.Selecting) {
|
||||
containerView.overflowView.hideAndDisable()
|
||||
} else {
|
||||
containerView.overflowView.showAndEnable()
|
||||
}
|
||||
setupMenu(item)
|
||||
containerView.titleView.text = if (item.title.isNullOrBlank()) item.url else item.title
|
||||
|
|
|
@ -9,6 +9,7 @@ import kotlinx.android.extensions.LayoutContainer
|
|||
import mozilla.components.concept.storage.BookmarkNode
|
||||
import org.mozilla.fenix.library.LibrarySiteItemView
|
||||
import org.mozilla.fenix.library.SelectionHolder
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkFragmentState
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkItemMenu
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkViewInteractor
|
||||
|
||||
|
@ -22,7 +23,10 @@ abstract class BookmarkNodeViewHolder(
|
|||
|
||||
abstract var item: BookmarkNode?
|
||||
|
||||
abstract fun bind(item: BookmarkNode)
|
||||
abstract fun bind(
|
||||
item: BookmarkNode,
|
||||
mode: BookmarkFragmentState.Mode
|
||||
)
|
||||
|
||||
protected fun setSelectionListeners(item: BookmarkNode, selectionHolder: SelectionHolder<BookmarkNode>) {
|
||||
containerView.setSelectionInteractor(item, selectionHolder, interactor)
|
||||
|
|
|
@ -6,6 +6,7 @@ package org.mozilla.fenix.library.bookmarks.viewholders
|
|||
|
||||
import mozilla.components.concept.storage.BookmarkNode
|
||||
import org.mozilla.fenix.library.LibrarySiteItemView
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkFragmentState
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarkViewInteractor
|
||||
|
||||
/**
|
||||
|
@ -18,7 +19,10 @@ class BookmarkSeparatorViewHolder(
|
|||
|
||||
override var item: BookmarkNode? = null
|
||||
|
||||
override fun bind(item: BookmarkNode) {
|
||||
override fun bind(
|
||||
item: BookmarkNode,
|
||||
mode: BookmarkFragmentState.Mode
|
||||
) {
|
||||
this.item = item
|
||||
containerView.displayAs(LibrarySiteItemView.ItemType.SEPARATOR)
|
||||
setupMenu(item)
|
||||
|
|
Loading…
Reference in New Issue