diff --git a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkDialog.kt b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkDialog.kt index 3fa0146c4..9457f8309 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkDialog.kt @@ -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) + + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt index d9bb8b4f6..0e6925d6b 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt @@ -24,6 +24,7 @@ import kotlinx.coroutines.withContext class BookmarkFragment : VMBaseFragment(R.layout.fragment_bookmark), BookmarkAdapter.Callback, + BookmarkDialog.Callback, TocViewModel.BookmarkCallBack { override val viewModel by activityViewModels() private val binding by viewBinding(FragmentBookmarkBinding::bind) @@ -85,4 +86,12 @@ class BookmarkFragment : VMBaseFragment(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) + } } \ No newline at end of file