优化
This commit is contained in:
@@ -14,6 +14,7 @@ import io.legado.app.constant.PageAnim
|
|||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.help.book.BookHelp
|
import io.legado.app.help.book.BookHelp
|
||||||
import io.legado.app.help.book.ContentProcessor
|
import io.legado.app.help.book.ContentProcessor
|
||||||
|
import io.legado.app.help.book.getFolderNameNoCache
|
||||||
import io.legado.app.help.book.isEpub
|
import io.legado.app.help.book.isEpub
|
||||||
import io.legado.app.help.book.isImage
|
import io.legado.app.help.book.isImage
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
import io.legado.app.help.book.simulatedTotalChapterNum
|
||||||
@@ -21,14 +22,12 @@ import io.legado.app.help.config.AppConfig
|
|||||||
import io.legado.app.help.config.ReadBookConfig
|
import io.legado.app.help.config.ReadBookConfig
|
||||||
import io.legado.app.model.ReadBook
|
import io.legado.app.model.ReadBook
|
||||||
import io.legado.app.utils.GSON
|
import io.legado.app.utils.GSON
|
||||||
import io.legado.app.utils.MD5Utils
|
|
||||||
import io.legado.app.utils.fromJsonObject
|
import io.legado.app.utils.fromJsonObject
|
||||||
import kotlinx.parcelize.IgnoredOnParcel
|
import kotlinx.parcelize.IgnoredOnParcel
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import java.nio.charset.Charset
|
import java.nio.charset.Charset
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
@TypeConverters(Book.Converters::class)
|
@TypeConverters(Book.Converters::class)
|
||||||
@@ -316,12 +315,6 @@ data class Book(
|
|||||||
return folderName!!
|
return folderName!!
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFolderNameNoCache(): String {
|
|
||||||
return name.replace(AppPattern.fileNameRegex, "").let {
|
|
||||||
it.substring(0, min(9, it.length)) + MD5Utils.md5Encode16(bookUrl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun toSearchBook() = SearchBook(
|
fun toSearchBook() = SearchBook(
|
||||||
name = name,
|
name = name,
|
||||||
author = author,
|
author = author,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import android.net.Uri
|
|||||||
import com.script.buildScriptBindings
|
import com.script.buildScriptBindings
|
||||||
import com.script.rhino.RhinoScriptEngine
|
import com.script.rhino.RhinoScriptEngine
|
||||||
import io.legado.app.constant.AppLog
|
import io.legado.app.constant.AppLog
|
||||||
|
import io.legado.app.constant.AppPattern
|
||||||
import io.legado.app.constant.BookSourceType
|
import io.legado.app.constant.BookSourceType
|
||||||
import io.legado.app.constant.BookType
|
import io.legado.app.constant.BookType
|
||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
@@ -17,6 +18,7 @@ import io.legado.app.help.config.AppConfig
|
|||||||
import io.legado.app.model.localBook.LocalBook
|
import io.legado.app.model.localBook.LocalBook
|
||||||
import io.legado.app.utils.FileDoc
|
import io.legado.app.utils.FileDoc
|
||||||
import io.legado.app.utils.GSON
|
import io.legado.app.utils.GSON
|
||||||
|
import io.legado.app.utils.MD5Utils
|
||||||
import io.legado.app.utils.exists
|
import io.legado.app.utils.exists
|
||||||
import io.legado.app.utils.find
|
import io.legado.app.utils.find
|
||||||
import io.legado.app.utils.inputStream
|
import io.legado.app.utils.inputStream
|
||||||
@@ -277,6 +279,12 @@ fun Book.updateTo(newBook: Book): Book {
|
|||||||
return newBook
|
return newBook
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Book.getFolderNameNoCache(): String {
|
||||||
|
return name.replace(AppPattern.fileNameRegex, "").let {
|
||||||
|
it.substring(0, min(9, it.length)) + MD5Utils.md5Encode16(bookUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun Book.getBookSource(): BookSource? {
|
fun Book.getBookSource(): BookSource? {
|
||||||
return appDb.bookSourceDao.getBookSource(origin)
|
return appDb.bookSourceDao.getBookSource(origin)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import io.legado.app.help.book.ContentProcessor
|
|||||||
import io.legado.app.help.book.isImage
|
import io.legado.app.help.book.isImage
|
||||||
import io.legado.app.help.book.isLocal
|
import io.legado.app.help.book.isLocal
|
||||||
import io.legado.app.help.book.isPdf
|
import io.legado.app.help.book.isPdf
|
||||||
|
import io.legado.app.help.book.isSameNameAuthor
|
||||||
import io.legado.app.help.book.readSimulating
|
import io.legado.app.help.book.readSimulating
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
import io.legado.app.help.book.simulatedTotalChapterNum
|
||||||
import io.legado.app.help.book.update
|
import io.legado.app.help.book.update
|
||||||
@@ -921,6 +922,18 @@ object ReadBook : CoroutineScope by MainScope() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun onChapterListUpdated(newBook: Book) {
|
||||||
|
if (newBook.isSameNameAuthor(book)) {
|
||||||
|
book = newBook
|
||||||
|
chapterSize = newBook.totalChapterNum
|
||||||
|
simulatedChapterSize = newBook.simulatedTotalChapterNum()
|
||||||
|
if (simulatedChapterSize > 0 && durChapterIndex > simulatedChapterSize - 1) {
|
||||||
|
durChapterIndex = simulatedChapterSize - 1
|
||||||
|
}
|
||||||
|
clearTextChapter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册回调
|
* 注册回调
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ import io.legado.app.help.book.isPdf
|
|||||||
import io.legado.app.help.book.isUmd
|
import io.legado.app.help.book.isUmd
|
||||||
import io.legado.app.help.book.removeLocalUriCache
|
import io.legado.app.help.book.removeLocalUriCache
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
import io.legado.app.help.book.simulatedTotalChapterNum
|
||||||
import io.legado.app.help.book.update
|
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.lib.webdav.WebDav
|
import io.legado.app.lib.webdav.WebDav
|
||||||
import io.legado.app.lib.webdav.WebDavException
|
import io.legado.app.lib.webdav.WebDavException
|
||||||
@@ -152,7 +151,7 @@ object LocalBook {
|
|||||||
list.getOrElse(book.simulatedTotalChapterNum() - 1) { list.last() }
|
list.getOrElse(book.simulatedTotalChapterNum() - 1) { list.last() }
|
||||||
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
||||||
book.totalChapterNum = list.size
|
book.totalChapterNum = list.size
|
||||||
book.update()
|
book.latestChapterTime = System.currentTimeMillis()
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import io.legado.app.help.AppWebDav
|
|||||||
import io.legado.app.help.book.BookHelp
|
import io.legado.app.help.book.BookHelp
|
||||||
import io.legado.app.help.book.ContentProcessor
|
import io.legado.app.help.book.ContentProcessor
|
||||||
import io.legado.app.help.book.getExportFileName
|
import io.legado.app.help.book.getExportFileName
|
||||||
import io.legado.app.help.book.isLocal
|
|
||||||
import io.legado.app.help.book.isLocalModified
|
import io.legado.app.help.book.isLocalModified
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
|
import io.legado.app.model.ReadBook
|
||||||
import io.legado.app.model.localBook.LocalBook
|
import io.legado.app.model.localBook.LocalBook
|
||||||
import io.legado.app.ui.book.cache.CacheActivity
|
import io.legado.app.ui.book.cache.CacheActivity
|
||||||
import io.legado.app.utils.FileDoc
|
import io.legado.app.utils.FileDoc
|
||||||
@@ -212,15 +212,16 @@ class ExportBookService : BaseService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun refreshChapterList(book: Book) {
|
private fun refreshChapterList(book: Book) {
|
||||||
if (!book.isLocal || !book.isLocalModified()) {
|
if (!book.isLocalModified()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
kotlin.runCatching {
|
kotlin.runCatching {
|
||||||
LocalBook.getChapterList(book)
|
LocalBook.getChapterList(book)
|
||||||
}.onSuccess {
|
}.onSuccess {
|
||||||
book.latestChapterTime = System.currentTimeMillis()
|
|
||||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
|
appDb.bookDao.update(book)
|
||||||
|
ReadBook.onChapterListUpdated(book)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import io.legado.app.help.book.isNotShelf
|
|||||||
import io.legado.app.help.book.isSameNameAuthor
|
import io.legado.app.help.book.isSameNameAuthor
|
||||||
import io.legado.app.help.book.isWebFile
|
import io.legado.app.help.book.isWebFile
|
||||||
import io.legado.app.help.book.removeType
|
import io.legado.app.help.book.removeType
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
|
||||||
import io.legado.app.help.book.updateTo
|
import io.legado.app.help.book.updateTo
|
||||||
import io.legado.app.help.coroutine.Coroutine
|
import io.legado.app.help.coroutine.Coroutine
|
||||||
import io.legado.app.lib.webdav.ObjectNotFoundException
|
import io.legado.app.lib.webdav.ObjectNotFoundException
|
||||||
@@ -226,12 +225,8 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
appDb.bookDao.update(book)
|
appDb.bookDao.update(book)
|
||||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
if (book.isSameNameAuthor(ReadBook.book)) {
|
ReadBook.onChapterListUpdated(book)
|
||||||
ReadBook.book = book
|
bookData.postValue(book)
|
||||||
ReadBook.chapterSize = book.totalChapterNum
|
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
ReadBook.clearTextChapter()
|
|
||||||
}
|
|
||||||
chapterListData.postValue(it)
|
chapterListData.postValue(it)
|
||||||
}
|
}
|
||||||
}.onError {
|
}.onError {
|
||||||
@@ -258,12 +253,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
}
|
}
|
||||||
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
if (book.isSameNameAuthor(ReadBook.book)) {
|
ReadBook.onChapterListUpdated(book)
|
||||||
ReadBook.book = book
|
|
||||||
ReadBook.chapterSize = book.totalChapterNum
|
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
ReadBook.clearTextChapter()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
bookData.postValue(book)
|
bookData.postValue(book)
|
||||||
chapterListData.postValue(it)
|
chapterListData.postValue(it)
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ class BookInfoEditActivity :
|
|||||||
book.customIntro = if (customIntro == book.intro) null else customIntro
|
book.customIntro = if (customIntro == book.intro) null else customIntro
|
||||||
BookHelp.updateCacheFolder(oldBook, book)
|
BookHelp.updateCacheFolder(oldBook, book)
|
||||||
viewModel.saveBook(book) {
|
viewModel.saveBook(book) {
|
||||||
setResult(Activity.RESULT_OK)
|
setResult(RESULT_OK)
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package io.legado.app.ui.book.read
|
package io.legado.app.ui.book.read
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Activity
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
@@ -1578,7 +1577,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
|||||||
ReadBook.book?.removeType(BookType.notShelf)
|
ReadBook.book?.removeType(BookType.notShelf)
|
||||||
ReadBook.book?.save()
|
ReadBook.book?.save()
|
||||||
ReadBook.inBookshelf = true
|
ReadBook.inBookshelf = true
|
||||||
setResult(Activity.RESULT_OK)
|
setResult(RESULT_OK)
|
||||||
}
|
}
|
||||||
noButton { viewModel.removeFromBookshelf { super.finish() } }
|
noButton { viewModel.removeFromBookshelf { super.finish() } }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
ReadBook.upMsg(null)
|
ReadBook.upMsg(null)
|
||||||
ensureChapterExist()
|
|
||||||
if (!isSameBook) {
|
if (!isSameBook) {
|
||||||
ReadBook.loadContent(resetPageOffset = true)
|
ReadBook.loadContent(resetPageOffset = true)
|
||||||
} else {
|
} else {
|
||||||
@@ -157,12 +156,6 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ensureChapterExist() {
|
|
||||||
if (ReadBook.simulatedChapterSize > 0 && ReadBook.durChapterIndex > ReadBook.simulatedChapterSize - 1) {
|
|
||||||
ReadBook.durChapterIndex = ReadBook.simulatedChapterSize - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载详情页
|
* 加载详情页
|
||||||
*/
|
*/
|
||||||
@@ -183,7 +176,6 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
fun loadChapterList(book: Book) {
|
fun loadChapterList(book: Book) {
|
||||||
execute {
|
execute {
|
||||||
if (loadChapterListAwait(book)) {
|
if (loadChapterListAwait(book)) {
|
||||||
ensureChapterExist()
|
|
||||||
ReadBook.upMsg(null)
|
ReadBook.upMsg(null)
|
||||||
ReadBook.loadContent(resetPageOffset = true)
|
ReadBook.loadContent(resetPageOffset = true)
|
||||||
}
|
}
|
||||||
@@ -194,13 +186,10 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
if (book.isLocal) {
|
if (book.isLocal) {
|
||||||
kotlin.runCatching {
|
kotlin.runCatching {
|
||||||
LocalBook.getChapterList(book).let {
|
LocalBook.getChapterList(book).let {
|
||||||
book.latestChapterTime = System.currentTimeMillis()
|
|
||||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
appDb.bookDao.update(book)
|
appDb.bookDao.update(book)
|
||||||
ReadBook.chapterSize = it.size
|
ReadBook.onChapterListUpdated(book)
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
ReadBook.clearTextChapter()
|
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
@@ -229,8 +218,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
}
|
}
|
||||||
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
appDb.bookChapterDao.delByBook(oldBook.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*cList.toTypedArray())
|
appDb.bookChapterDao.insert(*cList.toTypedArray())
|
||||||
ReadBook.chapterSize = cList.size
|
ReadBook.onChapterListUpdated(book)
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
return true
|
return true
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
ReadBook.upMsg(context.getString(R.string.error_load_toc))
|
ReadBook.upMsg(context.getString(R.string.error_load_toc))
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import io.legado.app.base.VMBaseActivity
|
|||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
import io.legado.app.databinding.ActivityChapterListBinding
|
import io.legado.app.databinding.ActivityChapterListBinding
|
||||||
import io.legado.app.help.book.isLocalTxt
|
import io.legado.app.help.book.isLocalTxt
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.lib.theme.accentColor
|
import io.legado.app.lib.theme.accentColor
|
||||||
import io.legado.app.lib.theme.primaryTextColor
|
import io.legado.app.lib.theme.primaryTextColor
|
||||||
@@ -198,9 +197,6 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
|
|||||||
waitDialog.dismiss()
|
waitDialog.dismiss()
|
||||||
ReadBook.book?.let { readBook ->
|
ReadBook.book?.let { readBook ->
|
||||||
if (readBook == book) {
|
if (readBook == book) {
|
||||||
ReadBook.book = book
|
|
||||||
ReadBook.chapterSize = book.totalChapterNum
|
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
ReadBook.upMsg(null)
|
ReadBook.upMsg(null)
|
||||||
ReadBook.loadContent(resetPageOffset = true)
|
ReadBook.loadContent(resetPageOffset = true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import io.legado.app.constant.AppLog
|
|||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
import io.legado.app.exception.NoStackTraceException
|
import io.legado.app.exception.NoStackTraceException
|
||||||
|
import io.legado.app.model.ReadBook
|
||||||
import io.legado.app.model.localBook.LocalBook
|
import io.legado.app.model.localBook.LocalBook
|
||||||
import io.legado.app.utils.FileDoc
|
import io.legado.app.utils.FileDoc
|
||||||
import io.legado.app.utils.GSON
|
import io.legado.app.utils.GSON
|
||||||
@@ -38,10 +39,10 @@ class TocViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
execute {
|
execute {
|
||||||
appDb.bookDao.update(book)
|
appDb.bookDao.update(book)
|
||||||
LocalBook.getChapterList(book).let {
|
LocalBook.getChapterList(book).let {
|
||||||
book.latestChapterTime = System.currentTimeMillis()
|
|
||||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
appDb.bookDao.update(book)
|
appDb.bookDao.update(book)
|
||||||
|
ReadBook.onChapterListUpdated(book)
|
||||||
bookData.postValue(book)
|
bookData.postValue(book)
|
||||||
}
|
}
|
||||||
}.onFinally {
|
}.onFinally {
|
||||||
|
|||||||
@@ -17,10 +17,8 @@ import io.legado.app.help.DefaultData
|
|||||||
import io.legado.app.help.book.BookHelp
|
import io.legado.app.help.book.BookHelp
|
||||||
import io.legado.app.help.book.addType
|
import io.legado.app.help.book.addType
|
||||||
import io.legado.app.help.book.isLocal
|
import io.legado.app.help.book.isLocal
|
||||||
import io.legado.app.help.book.isSameNameAuthor
|
|
||||||
import io.legado.app.help.book.isUpError
|
import io.legado.app.help.book.isUpError
|
||||||
import io.legado.app.help.book.removeType
|
import io.legado.app.help.book.removeType
|
||||||
import io.legado.app.help.book.simulatedTotalChapterNum
|
|
||||||
import io.legado.app.help.book.sync
|
import io.legado.app.help.book.sync
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.model.CacheBook
|
import io.legado.app.model.CacheBook
|
||||||
@@ -169,12 +167,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
}
|
}
|
||||||
appDb.bookChapterDao.delByBook(bookUrl)
|
appDb.bookChapterDao.delByBook(bookUrl)
|
||||||
appDb.bookChapterDao.insert(*toc.toTypedArray())
|
appDb.bookChapterDao.insert(*toc.toTypedArray())
|
||||||
if (book.isSameNameAuthor(ReadBook.book)) {
|
ReadBook.onChapterListUpdated(book)
|
||||||
ReadBook.book = book
|
|
||||||
ReadBook.chapterSize = book.totalChapterNum
|
|
||||||
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
|
||||||
ReadBook.clearTextChapter()
|
|
||||||
}
|
|
||||||
addDownload(source, book)
|
addDownload(source, book)
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
AppLog.put("${book.name} 更新目录失败\n${it.localizedMessage}", it)
|
AppLog.put("${book.name} 更新目录失败\n${it.localizedMessage}", it)
|
||||||
|
|||||||
Reference in New Issue
Block a user