This commit is contained in:
kunfei 2022-03-08 00:18:21 +08:00
parent 49785f97a1
commit 24a4db9e7c
2 changed files with 22 additions and 0 deletions

View File

@ -59,6 +59,7 @@ class BookmarkDialog() : BaseDialogFragment(R.layout.dialog_bookmark) {
withContext(IO) {
appDb.bookmarkDao.insert(bookmark)
}
getCallback()?.upBookmark(editPos, bookmark)
dismiss()
}
}
@ -67,11 +68,23 @@ class BookmarkDialog() : BaseDialogFragment(R.layout.dialog_bookmark) {
withContext(IO) {
appDb.bookmarkDao.delete(bookmark)
}
getCallback()?.deleteBookmark(editPos)
dismiss()
}
}
}
}
fun getCallback(): Callback? {
return parentFragment as? Callback
}
interface Callback {
fun upBookmark(pos: Int, bookmark: Bookmark)
fun deleteBookmark(pos: Int)
}
}

View File

@ -24,6 +24,7 @@ import kotlinx.coroutines.withContext
class BookmarkFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_bookmark),
BookmarkAdapter.Callback,
BookmarkDialog.Callback,
TocViewModel.BookmarkCallBack {
override val viewModel by activityViewModels<TocViewModel>()
private val binding by viewBinding(FragmentBookmarkBinding::bind)
@ -85,4 +86,12 @@ class BookmarkFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_bookmark
override fun onLongClick(bookmark: Bookmark) {
showDialogFragment(BookmarkDialog(bookmark))
}
override fun upBookmark(pos: Int, bookmark: Bookmark) {
adapter.setItem(pos, bookmark)
}
override fun deleteBookmark(pos: Int) {
adapter.removeItem(pos)
}
}