From 95a32d6761174b43c58ac45092e0788600f47a00 Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 16 Mar 2023 19:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/data/dao/BookmarkDao.kt | 4 ++++ .../ui/book/bookmark/AllBookmarkActivity.kt | 22 ++++++------------- .../ui/book/bookmark/AllBookmarkViewModel.kt | 15 ------------- .../app/ui/book/bookmark/BookmarkDialog.kt | 15 ------------- .../app/ui/book/toc/BookmarkFragment.kt | 8 ------- 5 files changed, 11 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/io/legado/app/data/dao/BookmarkDao.kt b/app/src/main/java/io/legado/app/data/dao/BookmarkDao.kt index 02451f168..9d22cce20 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookmarkDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookmarkDao.kt @@ -2,6 +2,7 @@ package io.legado.app.data.dao import androidx.room.* import io.legado.app.data.entities.Bookmark +import kotlinx.coroutines.flow.Flow @Dao @@ -14,6 +15,9 @@ interface BookmarkDao { ) val all: List + @Query("select * from bookmarks order by bookName collate localized, bookAuthor collate localized, chapterIndex, chapterPos") + fun flowAll(): Flow> + @Query( """select * from bookmarks where bookName = :bookName and bookAuthor = :bookAuthor diff --git a/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt b/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt index c2ed19fc9..9b2727782 100644 --- a/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt @@ -6,16 +6,17 @@ import android.view.MenuItem import androidx.activity.viewModels import io.legado.app.R import io.legado.app.base.VMBaseActivity +import io.legado.app.data.appDb import io.legado.app.data.entities.Bookmark import io.legado.app.databinding.ActivityAllBookmarkBinding import io.legado.app.ui.document.HandleFileContract import io.legado.app.utils.launch import io.legado.app.utils.showDialogFragment import io.legado.app.utils.viewbindingdelegate.viewBinding +import kotlinx.coroutines.launch class AllBookmarkActivity : VMBaseActivity(), - BookmarkAdapter.Callback, - BookmarkDialog.Callback { + BookmarkAdapter.Callback { override val viewModel by viewModels() override val binding by viewBinding(ActivityAllBookmarkBinding::inflate) @@ -30,8 +31,10 @@ class AllBookmarkActivity : VMBaseActivity) -> Unit) { - execute { - appDb.bookmarkDao.all - }.onSuccess { - onSuccess.invoke(it) - } - } - - fun deleteBookmark(bookmark: Bookmark) { - execute { - appDb.bookmarkDao.delete(bookmark) - } - } - @Suppress("BlockingMethodInNonBlockingContext") @SuppressLint("SimpleDateFormat") fun saveToFile(treeUri: Uri) { diff --git a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt index 3688ae131..a08c1edc4 100644 --- a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt @@ -61,7 +61,6 @@ class BookmarkDialog() : BaseDialogFragment(R.layout.dialog_bookmark, true) { withContext(IO) { appDb.bookmarkDao.insert(bookmark) } - getCallback()?.upBookmark(editPos, bookmark) dismiss() } } @@ -70,24 +69,10 @@ class BookmarkDialog() : BaseDialogFragment(R.layout.dialog_bookmark, true) { withContext(IO) { appDb.bookmarkDao.delete(bookmark) } - getCallback()?.deleteBookmark(editPos) dismiss() } } } } - private fun getCallback(): Callback? { - return (parentFragment as? Callback) - ?: activity 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 8bcf03930..59f743174 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 @@ -25,7 +25,6 @@ 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) @@ -88,11 +87,4 @@ class BookmarkFragment : VMBaseFragment(R.layout.fragment_bookmark showDialogFragment(BookmarkDialog(bookmark, pos)) } - 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