diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index da828bc2e..14ef665dc 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -241,14 +241,36 @@ class ReadBookActivity : BaseReadBookActivity(), showDialogFragment(ChangeSourceDialog(it.name, it.author)) } } - R.id.menu_refresh -> { + R.id.menu_refresh_dur -> { if (ReadBook.bookSource == null) { upContent() } else { ReadBook.book?.let { ReadBook.curTextChapter = null binding.readView.upContent() - viewModel.refreshContent(it) + viewModel.refreshContentDur(it) + } + } + } + R.id.menu_refresh_after -> { + if (ReadBook.bookSource == null) { + upContent() + } else { + ReadBook.book?.let { + ReadBook.clearTextChapter() + binding.readView.upContent() + viewModel.refreshContentAfter(it) + } + } + } + R.id.menu_refresh_all -> { + if (ReadBook.bookSource == null) { + upContent() + } else { + ReadBook.book?.let { + ReadBook.clearTextChapter() + binding.readView.upContent() + viewModel.refreshContentAll(it) } } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index a83bc0352..d4ebe3679 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -253,7 +253,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { } } - fun refreshContent(book: Book) { + fun refreshContentDur(book: Book) { execute { appDb.bookChapterDao.getChapter(book.bookUrl, ReadBook.durChapterIndex) ?.let { chapter -> @@ -263,6 +263,26 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { } } + fun refreshContentAfter(book: Book) { + execute { + appDb.bookChapterDao.getChapterList( + book.bookUrl, + ReadBook.durChapterIndex, + book.totalChapterNum + ).forEach { chapter -> + BookHelp.delContent(book, chapter) + } + ReadBook.loadContent(false) + } + } + + fun refreshContentAll(book: Book) { + execute { + BookHelp.clearCache(book) + ReadBook.loadContent(false) + } + } + fun reverseContent(book: Book) { execute { appDb.bookChapterDao.getChapter(book.bookUrl, ReadBook.durChapterIndex) diff --git a/app/src/main/res/menu/book_read.xml b/app/src/main/res/menu/book_read.xml index d96cf8140..b8372597f 100644 --- a/app/src/main/res/menu/book_read.xml +++ b/app/src/main/res/menu/book_read.xml @@ -15,7 +15,28 @@ android:id="@+id/menu_refresh" android:icon="@drawable/ic_refresh_black_24dp" android:title="@string/refresh" - app:showAsAction="always" /> + app:showAsAction="always"> + +
+ +