pull/600/head
Colin Lee 5 years ago committed by GitHub
parent 289bc6bcfc
commit 343ae2fcfe

@ -37,6 +37,8 @@ class BookmarkUIView(
var mode: BookmarkState.Mode = BookmarkState.Mode.Normal var mode: BookmarkState.Mode = BookmarkState.Mode.Normal
private set private set
var tree: BookmarkNode? = null
private set
private var canGoBack = false private var canGoBack = false
@ -56,11 +58,14 @@ class BookmarkUIView(
override fun updateView() = Consumer<BookmarkState> { override fun updateView() = Consumer<BookmarkState> {
canGoBack = !(listOf(null, BookmarkRoot.Root.id).contains(it.tree?.guid)) canGoBack = !(listOf(null, BookmarkRoot.Root.id).contains(it.tree?.guid))
bookmarkAdapter.updateData(it.tree, it.mode) if (it.tree != tree) {
tree = it.tree
}
if (it.mode != mode) { if (it.mode != mode) {
mode = it.mode mode = it.mode
actionEmitter.onNext(BookmarkAction.ModeChanged) actionEmitter.onNext(BookmarkAction.ModeChanged)
} }
bookmarkAdapter.updateData(it.tree, it.mode)
when (val modeCopy = mode) { when (val modeCopy = mode) {
is BookmarkState.Mode.Normal -> setUIForNormalMode(it.tree) is BookmarkState.Mode.Normal -> setUIForNormalMode(it.tree)
is BookmarkState.Mode.Selecting -> setUIForSelectingMode(modeCopy) is BookmarkState.Mode.Selecting -> setUIForSelectingMode(modeCopy)
@ -68,10 +73,20 @@ class BookmarkUIView(
} }
override fun onBackPressed(): Boolean { override fun onBackPressed(): Boolean {
return if (canGoBack) { return when {
actionEmitter.onNext(BookmarkAction.BackPressed) mode is BookmarkState.Mode.Selecting -> {
true mode = BookmarkState.Mode.Normal
} else false bookmarkAdapter.updateData(tree, mode)
setUIForNormalMode(tree)
actionEmitter.onNext(BookmarkAction.ModeChanged)
true
}
canGoBack -> {
actionEmitter.onNext(BookmarkAction.BackPressed)
true
}
else -> false
}
} }
fun getSelected(): Set<BookmarkNode> = bookmarkAdapter.selected fun getSelected(): Set<BookmarkNode> = bookmarkAdapter.selected

Loading…
Cancel
Save