Ver Fonte

[新增] 可以选择默认换源行为

HapeLee há 11 meses atrás
pai
commit
0a70685343

+ 2 - 0
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"
 }

+ 5 - 0
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)
+        }
 }
 

+ 23 - 1
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 {

+ 2 - 0
app/src/main/res/values-zh/strings.xml

@@ -1348,4 +1348,6 @@
     <string name="page_anim_fade">渐变</string>
     <string name="show_bookshelf_tab_menu">显示更多分组按钮</string>
     <string name="show_unread_new">显示新章节更新标志</string>
+    <string name="read_change_all">换源按钮默认弹出整书换源</string>
+    <string name="read_change_all_s">反之则默认弹出单章换源</string>
 </resources>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -1351,4 +1351,6 @@
     <string name="page_anim_fade">渐变</string>
     <string name="show_bookshelf_tab_menu">显示更多分组按钮</string>
     <string name="show_unread_new">显示新章节更新标志</string>
+    <string name="read_change_all">换源按钮默认弹出整书换源</string>
+    <string name="read_change_all_s">反之则默认弹出单章换源</string>
 </resources>

+ 7 - 0
app/src/main/res/xml/pref_config_read.xml

@@ -61,6 +61,13 @@
             android:title="@string/read_body_to_lh"
             app:isBottomBackground="true" />
 
+        <io.legado.app.lib.prefs.SwitchPreference
+            android:defaultValue="true"
+            android:key="defaultSourceChangeAll"
+            android:title="@string/read_change_all"
+            android:summary="@string/read_change_all_s"
+            app:isBottomBackground="true" />
+
         <io.legado.app.lib.prefs.SwitchPreference
             android:defaultValue="true"
             android:key="textFullJustify"