优化
This commit is contained in:
@@ -164,12 +164,15 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
||||
canReName: Boolean = true,
|
||||
scope: CoroutineScope = viewModelScope
|
||||
) {
|
||||
execute(scope) {
|
||||
if (book.isLocal) {
|
||||
loadChapter(book, scope)
|
||||
} else {
|
||||
bookSource?.let { bookSource ->
|
||||
WebBook.getBookInfo(this, bookSource, book, canReName = canReName)
|
||||
val bookSource = bookSource ?: let {
|
||||
chapterListData.postValue(emptyList())
|
||||
context.toastOnUi(R.string.error_no_source)
|
||||
return
|
||||
}
|
||||
WebBook.getBookInfo(scope, bookSource, book, canReName = canReName)
|
||||
.onSuccess(IO) {
|
||||
val dbBook = appDb.bookDao.getBook(book.name, book.author)
|
||||
if (dbBook != null) {
|
||||
@@ -192,11 +195,6 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
||||
AppLog.put("获取书籍信息失败\n${it.localizedMessage}", it)
|
||||
context.toastOnUi(R.string.error_get_book_info)
|
||||
}
|
||||
} ?: let {
|
||||
chapterListData.postValue(emptyList())
|
||||
context.toastOnUi(R.string.error_no_source)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,18 +202,25 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
||||
book: Book,
|
||||
scope: CoroutineScope = viewModelScope
|
||||
) {
|
||||
execute(scope) {
|
||||
if (book.isLocal) {
|
||||
execute(scope) {
|
||||
LocalBook.getChapterList(book).let {
|
||||
appDb.bookDao.update(book)
|
||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||
chapterListData.postValue(it)
|
||||
}
|
||||
}.onError {
|
||||
context.toastOnUi("LoadTocError:${it.localizedMessage}")
|
||||
}
|
||||
} else {
|
||||
bookSource?.let { bookSource ->
|
||||
val bookSource = bookSource ?: let {
|
||||
chapterListData.postValue(emptyList())
|
||||
context.toastOnUi(R.string.error_no_source)
|
||||
return
|
||||
}
|
||||
val oldBook = book.copy()
|
||||
WebBook.getChapterList(this, bookSource, book, true)
|
||||
WebBook.getChapterList(scope, bookSource, book, true)
|
||||
.onSuccess(IO) {
|
||||
val dbBook = appDb.bookDao.getBook(book.name, book.author)
|
||||
if (dbBook?.bookUrl == oldBook.bookUrl) {
|
||||
@@ -238,13 +243,6 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
||||
AppLog.put("获取目录失败\n${it.localizedMessage}", it)
|
||||
context.toastOnUi(R.string.error_get_chapter_list)
|
||||
}
|
||||
} ?: let {
|
||||
chapterListData.postValue(emptyList())
|
||||
context.toastOnUi(R.string.error_no_source)
|
||||
}
|
||||
}
|
||||
}.onError {
|
||||
context.toastOnUi("LoadTocError:${it.localizedMessage}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user