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