|
|
|
@ -10,6 +10,7 @@ import androidx.lifecycle.MutableLiveData |
|
|
|
|
import io.legado.app.R |
|
|
|
|
import io.legado.app.base.BaseDialogFragment |
|
|
|
|
import io.legado.app.base.BaseViewModel |
|
|
|
|
import io.legado.app.constant.AppLog |
|
|
|
|
import io.legado.app.data.appDb |
|
|
|
|
import io.legado.app.data.entities.Book |
|
|
|
|
import io.legado.app.databinding.DialogAddToBookshelfBinding |
|
|
|
@ -54,6 +55,9 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe |
|
|
|
|
viewModel.loadStateLiveData.observe(this) { |
|
|
|
|
//todo |
|
|
|
|
} |
|
|
|
|
viewModel.loadErrorLiveData.observe(this) { |
|
|
|
|
//todo |
|
|
|
|
} |
|
|
|
|
viewModel.load(bookUrl) { |
|
|
|
|
//todo |
|
|
|
|
} |
|
|
|
@ -62,6 +66,7 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe |
|
|
|
|
class ViewModel(application: Application) : BaseViewModel(application) { |
|
|
|
|
|
|
|
|
|
val loadStateLiveData = MutableLiveData<Boolean>() |
|
|
|
|
val loadErrorLiveData = MutableLiveData<String>() |
|
|
|
|
|
|
|
|
|
fun load(bookUrl: String, success: (book: Book) -> Unit) { |
|
|
|
|
execute { |
|
|
|
@ -90,6 +95,9 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe |
|
|
|
|
book.order = appDb.bookDao.minOrder - 1 |
|
|
|
|
return@execute book |
|
|
|
|
} ?: throw NoStackTraceException("未找到匹配书源") |
|
|
|
|
}.onError { |
|
|
|
|
AppLog.put("添加书籍 ${bookUrl} 出错", it) |
|
|
|
|
loadErrorLiveData.postValue(it.localizedMessage) |
|
|
|
|
}.onSuccess { |
|
|
|
|
success.invoke(it) |
|
|
|
|
}.onStart { |
|
|
|
|