From e8a6c8e40bc169f5b58a6a2da887e6ec599e0b1c Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Thu, 18 Dec 2025 19:30:46 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E9=80=80=E5=87=BA?= =?UTF-8?q?=E4=B9=A6=E7=B1=8D=E6=8F=90=E7=A4=BA=E6=B7=BB=E5=8A=A0=E4=B9=A6?= =?UTF-8?q?=E6=9E=B6=EF=BC=8C=E7=82=B9=E5=87=BB=E7=A1=AE=E5=AE=9A=E5=90=8E?= =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E6=9C=AA=E6=98=BE=E7=A4=BA=20#458?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/audio/AudioPlayActivity.kt | 23 --------------- .../app/ui/book/info/BookInfoActivity.kt | 28 ++++++++++++++++++- .../app/ui/book/manga/ReadMangaActivity.kt | 22 --------------- .../app/ui/book/read/ReadBookActivity.kt | 24 ---------------- 4 files changed, 27 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt index fd9865061..5cc1763b2 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt @@ -581,29 +581,6 @@ class AudioPlayActivity : } } - override fun finish() { - val book = AudioPlay.book ?: return super.finish() - - if (AudioPlay.inBookshelf) { - return super.finish() - } - - if (!AppConfig.showAddToShelfAlert) { - viewModel.removeFromBookshelf { super.finish() } - } else { - alert(title = getString(R.string.add_to_bookshelf)) { - setMessage(getString(R.string.check_add_bookshelf, book.name)) - okButton { - AudioPlay.book?.removeType(BookType.notShelf) - AudioPlay.book?.save() - AudioPlay.inBookshelf = true - setResult(RESULT_OK) - } - noButton { viewModel.removeFromBookshelf { super.finish() } } - } - } - } - override fun onDestroy() { super.onDestroy() if (AudioPlay.status != Status.PLAY) { 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 6a446d462..90334c2bf 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 @@ -22,6 +22,8 @@ import android.view.MenuItem import android.view.View import android.widget.CheckBox import android.widget.LinearLayout +import androidx.activity.OnBackPressedCallback +import androidx.activity.addCallback import androidx.activity.viewModels import androidx.core.app.ActivityCompat import androidx.core.app.ActivityOptionsCompat @@ -51,6 +53,7 @@ import io.legado.app.help.book.isAudio import io.legado.app.help.book.isImage import io.legado.app.help.book.isLocal import io.legado.app.help.book.isLocalTxt +import io.legado.app.help.book.isNotShelf import io.legado.app.help.book.isWebFile import io.legado.app.help.book.removeType import io.legado.app.help.config.AppConfig @@ -58,6 +61,7 @@ import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector import io.legado.app.model.BookCover +import io.legado.app.model.ReadBook import io.legado.app.model.remote.RemoteBookWebDav import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.book.audio.AudioPlayActivity @@ -153,7 +157,7 @@ class BookInfoActivity : viewModel.refreshBook(book) } } - + private lateinit var backCallback: OnBackPressedCallback private var surfaceFinalColor: Int = 0 private var surfaceContainerFinalColor: Int = 0 private var secondaryFinalColor: Int = 0 @@ -184,6 +188,7 @@ class BookInfoActivity : window.sharedElementReturnTransition = transform window.sharedElementsUseOverlay = false super.onCreate(savedInstanceState) + setupBackCallback() surfaceFinalColor = MaterialColors.getColor(this, com.google.android.material.R.attr.colorSurface, -1) secondaryFinalColor = @@ -381,6 +386,27 @@ class BookInfoActivity : // return super.dispatchTouchEvent(ev) // } + private fun setupBackCallback() { + onBackPressedDispatcher.addCallback(this) { + if (!viewModel.inBookshelf) { + viewModel.getBook()?.let { book -> + alert(title = getString(R.string.add_to_bookshelf)) { + setMessage(getString(R.string.check_add_bookshelf, book.name)) + okButton { + book.removeType(BookType.notShelf) + book.save() + viewModel.inBookshelf = true + super.finish() + } + noButton { super.finish() } + } + } + } else { + finish() + } + } + } + private fun refreshBook() { upLoading(true) viewModel.getBook()?.let { diff --git a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt index 681c9e14d..2f74e89a0 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt @@ -928,28 +928,6 @@ class ReadMangaActivity : VMBaseActivity