From 49e9dfb7a2d864c7cf861f04669e7af29b9c0c46 Mon Sep 17 00:00:00 2001 From: kunfei Date: Tue, 27 Sep 2022 11:41:26 +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 --- app/src/main/java/io/legado/app/constant/PreferKey.kt | 1 + .../main/java/io/legado/app/help/config/AppConfig.kt | 6 ++++++ .../io/legado/app/ui/book/read/ReadBookActivity.kt | 11 +++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index c1d22ada3..c2cd4488a 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -130,5 +130,6 @@ object PreferKey { const val bgImageNBlurring = "backgroundImageNightBlurring" const val showReadTitleAddition = "showReadTitleAddition" const val readBarStyleFollowPage = "readBarStyleFollowPage" + const val contentSelectSpeakMod = "contentReadAloudMod" } diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index db3b3be78..16006ccc8 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -306,6 +306,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefBoolean(PreferKey.changeSourceLoadToc, value) } + var contentSelectSpeakMod: Int + get() = appCtx.getPrefInt(PreferKey.contentSelectSpeakMod) + set(value) { + appCtx.putPrefInt(PreferKey.contentSelectSpeakMod, value) + } + val importKeepName get() = appCtx.getPrefBoolean(PreferKey.importKeepName) var preDownloadNum diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index de8c10744..645b2d04a 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -25,6 +25,7 @@ import io.legado.app.exception.NoStackTraceException import io.legado.app.help.AppWebDav import io.legado.app.help.BookHelp import io.legado.app.help.IntentData +import io.legado.app.help.TTS import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ReadTipConfig @@ -140,6 +141,7 @@ class ReadBookActivity : BaseReadBookActivity(), private var autoPageJob: Job? = null private var backupJob: Job? = null private var keepScreenJon: Job? = null + private val tts by lazy { TTS() } val textActionMenu: TextActionMenu by lazy { TextActionMenu(this, this) } @@ -629,7 +631,10 @@ class ReadBookActivity : BaseReadBookActivity(), */ override fun onMenuItemSelected(itemId: Int): Boolean { when (itemId) { - R.id.menu_aloud -> binding.readView.aloudStartSelect() + R.id.menu_aloud -> when (AppConfig.contentSelectSpeakMod) { + 1 -> binding.readView.aloudStartSelect() + else -> tts.speak(binding.readView.getSelectText()) + } R.id.menu_bookmark -> binding.readView.curPage.let { val bookmark = it.createBookmark() if (bookmark == null) { @@ -984,7 +989,8 @@ class ReadBookActivity : BaseReadBookActivity(), setMessage(chapter.title) yesButton { Coroutine.async { - val source = ReadBook.bookSource ?: throw NoStackTraceException("no book source") + val source = + ReadBook.bookSource ?: throw NoStackTraceException("no book source") val payAction = source.getContentRule().payAction if (payAction.isNullOrBlank()) { throw NoStackTraceException("no pay action") @@ -1190,6 +1196,7 @@ class ReadBookActivity : BaseReadBookActivity(), override fun onDestroy() { super.onDestroy() + tts.clearTts() textActionMenu.dismiss() popupAction.dismiss() binding.readView.onDestroy()