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 26009eb80..271bcdfc0 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -224,4 +224,6 @@ object PreferKey { const val exploreFilterState = "explore_filter_state" const val exploreLayoutState = "exploreLayoutState" + + const val defaultSourceChangeAll = "defaultSourceChangeAll" } 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 b34c3e06b..1f5702901 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 @@ -909,5 +909,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefInt(PreferKey.exploreLayoutState, value) } + var defaultSourceChangeAll: Boolean + get() = appCtx.getPrefBoolean(PreferKey.defaultSourceChangeAll, true) + set(value) { + appCtx.putPrefBoolean(PreferKey.defaultSourceChangeAll, value) + } } 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 d6410fb0b..d4329907a 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 @@ -522,12 +522,34 @@ class ReadBookActivity : BaseReadBookActivity(), } } + private fun defaultChangeSource() { + if (AppConfig.defaultSourceChangeAll) + { + binding.readMenu.runMenuOut() + ReadBook.book?.let { + showDialogFragment(ChangeBookSourceDialog(it.name, it.author)) + } + } else { + lifecycleScope.launch { + val book = ReadBook.book ?: return@launch + val chapter = + appDb.bookChapterDao.getChapter(book.bookUrl, ReadBook.durChapterIndex) + ?: return@launch + binding.readMenu.runMenuOut() + showDialogFragment( + ChangeChapterSourceDialog(book.name, book.author, chapter.index, chapter.title) + ) + } + } + } + /** * 菜单 */ override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.menu_change_source, + R.id.menu_change_source -> { defaultChangeSource() } + R.id.menu_book_change_source -> { binding.readMenu.runMenuOut() ReadBook.book?.let { diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index e03c48aca..e68790bf6 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1348,4 +1348,6 @@ 渐变 显示更多分组按钮 显示新章节更新标志 + 换源按钮默认弹出整书换源 + 反之则默认弹出单章换源 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cdf8b9a65..3a7e96d30 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1351,4 +1351,6 @@ 渐变 显示更多分组按钮 显示新章节更新标志 + 换源按钮默认弹出整书换源 + 反之则默认弹出单章换源 diff --git a/app/src/main/res/xml/pref_config_read.xml b/app/src/main/res/xml/pref_config_read.xml index 7a9861808..fd46fd4a0 100644 --- a/app/src/main/res/xml/pref_config_read.xml +++ b/app/src/main/res/xml/pref_config_read.xml @@ -61,6 +61,13 @@ android:title="@string/read_body_to_lh" app:isBottomBackground="true" /> + +