From 7e955b61180354a3f03e30d64f70d3e8ebd05465 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 7 Mar 2023 17:51:05 +0800 Subject: [PATCH] fix --- .../app/ui/book/info/BookInfoActivity.kt | 19 ++++++++----------- .../app/ui/book/info/BookInfoViewModel.kt | 10 +++++----- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 469fb8a1b..6cfdc25fe 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -2,6 +2,7 @@ package io.legado.app.ui.book.info import android.annotation.SuppressLint import android.content.Intent +import android.net.Uri import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -329,7 +330,7 @@ class BookInfoActivity : viewModel.bookData.value?.let { book -> if (book.isWebFile) { showWebFileDownloadAlert { - readBook(book) + readBook(it) } } else { readBook(book) @@ -342,11 +343,7 @@ class BookInfoActivity : deleteBook() } else { if (book.isWebFile) { - showWebFileDownloadAlert { - viewModel.addToBookshelf { - upTvBookshelf() - } - } + showWebFileDownloadAlert() } else { viewModel.addToBookshelf { upTvBookshelf() @@ -497,13 +494,13 @@ class BookInfoActivity : } } - private fun showWebFileDownloadAlert(onClick: (() -> Unit)?) { + private fun showWebFileDownloadAlert(onClick: ((Book) -> Unit)?) { viewModel.webFileData.value?.let { alert(titleResource = R.string.download_and_import_file) { items(it) { _, webFile, _ -> if (webFile.isSupported) { - viewModel.importOrDownloadWebFile(webFile) { - onClick?.invoke() + viewModel.importOrDownloadWebFile(webFile) { + onClick?.invoke(it) } } else { alert( @@ -511,8 +508,8 @@ class BookInfoActivity : message = getString(R.string.file_not_supported, webFile.name) ) { neutralButton(R.string.open_fun) { - viewModel.importOrDownloadWebFile(webFile) { uri -> - openFileUri(uri!!, "*/*") + viewModel.importOrDownloadWebFile(webFile) { uri -> + openFileUri(uri, "*/*") } } noButton() diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt index 5d009847d..509c4b509 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt @@ -270,18 +270,18 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { } } - fun importOrDownloadWebFile(webFile: WebFile, success: ((Uri?) -> Unit)?) { + fun importOrDownloadWebFile(webFile: WebFile, success: ((T) -> Unit)?) { bookSource ?: return execute { if (webFile.isSupported) { - LocalBook.importFileOnLine(webFile.url, webFile.name, bookSource).let { - changeToLocalBook(it) - } + val book = LocalBook.importFileOnLine(webFile.url, webFile.name, bookSource) + changeToLocalBook(book) + book } else { LocalBook.saveBookFile(webFile.url, webFile.name, bookSource) } }.onSuccess { - success?.invoke(it as? Uri) + success?.invoke(it as T) }.onError { context.toastOnUi("ImportWebFileError\n${it.localizedMessage}") }