From d7ce5580cb26d5ef4e1302997d334ec93aa0e855 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 2 Feb 2025 10:02:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/model/localBook/EpubFile.kt | 2 +- .../ui/association/AddToBookshelfDialog.kt | 49 ++++++++----------- .../main/res/layout/activity_book_info.xml | 14 +++--- .../res/layout/dialog_add_to_bookshelf.xml | 26 +++++----- 4 files changed, 41 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt b/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt index c92d42065..065b1e91c 100644 --- a/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt +++ b/app/src/main/java/io/legado/app/model/localBook/EpubFile.kt @@ -240,7 +240,7 @@ class EpubFile(var book: Book) { it.attr("src", it.attr("xlink:href")) } bodyElement.select("img").forEach { - val src = it.attr("src").encodeURI() + val src = it.attr("src").trim().encodeURI() val href = res.href.encodeURI() val resolvedHref = URLDecoder.decode(URI(href).resolve(src).toString(), "UTF-8") it.attr("src", resolvedHref) diff --git a/app/src/main/java/io/legado/app/ui/association/AddToBookshelfDialog.kt b/app/src/main/java/io/legado/app/ui/association/AddToBookshelfDialog.kt index 63ac72c97..98c59da0f 100644 --- a/app/src/main/java/io/legado/app/ui/association/AddToBookshelfDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/AddToBookshelfDialog.kt @@ -19,8 +19,13 @@ import io.legado.app.databinding.DialogAddToBookshelfBinding import io.legado.app.exception.NoStackTraceException import io.legado.app.model.analyzeRule.AnalyzeUrl import io.legado.app.model.webBook.WebBook -import io.legado.app.ui.book.read.ReadBookActivity -import io.legado.app.utils.* +import io.legado.app.ui.book.info.BookInfoActivity +import io.legado.app.utils.GSON +import io.legado.app.utils.NetworkUtils +import io.legado.app.utils.fromJsonObject +import io.legado.app.utils.setLayout +import io.legado.app.utils.startActivity +import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding /** @@ -66,7 +71,6 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe viewModel.loadStateLiveData.observe(this) { if (it) { binding.rotateLoading.visible() - binding.bookInfo.invisible() } else { binding.rotateLoading.gone() } @@ -76,32 +80,18 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe dismiss() } viewModel.load(bookUrl) { - binding.bookInfo.visible() - binding.tvName.text = it.name - binding.tvAuthor.text = it.author - binding.tvOrigin.text = it.originName + viewModel.saveSearchBook(it) { + startActivity { + putExtra("name", it.name) + putExtra("author", it.author) + putExtra("bookUrl", it.bookUrl) + } + dismiss() + } } binding.tvCancel.setOnClickListener { dismiss() } - binding.tvOk.setOnClickListener { - viewModel.saveBook { - it?.let { - dismiss() - } ?: toastOnUi(R.string.no_book) - } - } - binding.tvRead.setOnClickListener { - viewModel.saveBook { - it?.let { - startActivity { - putExtra("bookUrl", it.bookUrl) - putExtra("inBookshelf", false) - } - dismiss() - } ?: toastOnUi(R.string.no_book) - } - } } class ViewModel(application: Application) : BaseViewModel(application) { @@ -168,12 +158,13 @@ class AddToBookshelfDialog() : BaseDialogFragment(R.layout.dialog_add_to_bookshe }.getOrNull() } - fun saveBook(success: (book: Book?) -> Unit) { + fun saveSearchBook(book: Book, success: () -> Unit) { execute { - book?.save() - book + val searchBook = book.toSearchBook() + appDb.searchBookDao.insert(searchBook) + searchBook }.onSuccess { - success.invoke(it) + success.invoke() } } diff --git a/app/src/main/res/layout/activity_book_info.xml b/app/src/main/res/layout/activity_book_info.xml index ff38c4262..4751937b1 100644 --- a/app/src/main/res/layout/activity_book_info.xml +++ b/app/src/main/res/layout/activity_book_info.xml @@ -106,8 +106,9 @@ android:paddingBottom="3dp"> @@ -115,8 +116,6 @@ android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" - android:gravity="center" android:includeFontPadding="false" android:singleLine="true" android:text="@string/book_name" @@ -126,8 +125,9 @@ @@ -135,8 +135,6 @@ android:id="@+id/lb_kind" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" - android:gravity="center" android:visibility="gone" /> diff --git a/app/src/main/res/layout/dialog_add_to_bookshelf.xml b/app/src/main/res/layout/dialog_add_to_bookshelf.xml index f613fc46b..d80c2e793 100644 --- a/app/src/main/res/layout/dialog_add_to_bookshelf.xml +++ b/app/src/main/res/layout/dialog_add_to_bookshelf.xml @@ -1,9 +1,9 @@ + android:layout_height="wrap_content"> + app:layout_constraintTop_toTopOf="@id/book_info" /> + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toBottomOf="@+id/book_info" /> + android:visibility="invisible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" /> \ No newline at end of file