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" />
+
+