kunfei 4 лет назад
Родитель
Сommit
5addd16954

+ 1 - 0
app/src/main/java/io/legado/app/constant/PreferKey.kt

@@ -115,6 +115,7 @@ object PreferKey {
     const val ignoreAudioFocus = "ignoreAudioFocus"
     const val ignoreAudioFocus = "ignoreAudioFocus"
     const val parallelExportBook = "parallelExportBook"
     const val parallelExportBook = "parallelExportBook"
     const val progressBarBehavior = "progressBarBehavior"
     const val progressBarBehavior = "progressBarBehavior"
+    const val sourceEditMaxLine = "sourceEditMaxLine"
 
 
     const val cPrimary = "colorPrimary"
     const val cPrimary = "colorPrimary"
     const val cAccent = "colorAccent"
     const val cAccent = "colorAccent"

+ 14 - 2
app/src/main/java/io/legado/app/help/config/AppConfig.kt

@@ -368,15 +368,27 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
             appCtx.putPrefInt(PreferKey.bitmapCacheSize, value)
             appCtx.putPrefInt(PreferKey.bitmapCacheSize, value)
         }
         }
 
 
-    var showReadTitleBarAddition : Boolean
+    var showReadTitleBarAddition: Boolean
         get() = appCtx.getPrefBoolean(PreferKey.showReadTitleAddition, true)
         get() = appCtx.getPrefBoolean(PreferKey.showReadTitleAddition, true)
         set(value) {
         set(value) {
             appCtx.putPrefBoolean(PreferKey.showReadTitleAddition, value)
             appCtx.putPrefBoolean(PreferKey.showReadTitleAddition, value)
         }
         }
-    var readBarStyleFollowPage : Boolean
+    var readBarStyleFollowPage: Boolean
         get() = appCtx.getPrefBoolean(PreferKey.readBarStyleFollowPage, false)
         get() = appCtx.getPrefBoolean(PreferKey.readBarStyleFollowPage, false)
         set(value) {
         set(value) {
             appCtx.putPrefBoolean(PreferKey.readBarStyleFollowPage, value)
             appCtx.putPrefBoolean(PreferKey.readBarStyleFollowPage, value)
         }
         }
+
+    var sourceEditMaxLine: Int
+        get() {
+            val maxLine = appCtx.getPrefInt(PreferKey.sourceEditMaxLine, Int.MAX_VALUE)
+            if (maxLine < 10) {
+                return 99
+            }
+            return maxLine
+        }
+        set(value) {
+            appCtx.putPrefInt(PreferKey.sourceEditMaxLine, value)
+        }
 }
 }
 
 

+ 6 - 1
app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditAdapter.kt

@@ -9,12 +9,15 @@ import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.RecyclerView
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.databinding.ItemSourceEditBinding
 import io.legado.app.databinding.ItemSourceEditBinding
+import io.legado.app.help.config.AppConfig
 import io.legado.app.ui.widget.code.addJsPattern
 import io.legado.app.ui.widget.code.addJsPattern
 import io.legado.app.ui.widget.code.addJsonPattern
 import io.legado.app.ui.widget.code.addJsonPattern
 import io.legado.app.ui.widget.code.addLegadoPattern
 import io.legado.app.ui.widget.code.addLegadoPattern
 
 
 class BookSourceEditAdapter : RecyclerView.Adapter<BookSourceEditAdapter.MyViewHolder>() {
 class BookSourceEditAdapter : RecyclerView.Adapter<BookSourceEditAdapter.MyViewHolder>() {
 
 
+    val editEntityMaxLine = AppConfig.sourceEditMaxLine
+
     var editEntities: ArrayList<EditEntity> = ArrayList()
     var editEntities: ArrayList<EditEntity> = ArrayList()
         @SuppressLint("NotifyDataSetChanged")
         @SuppressLint("NotifyDataSetChanged")
         set(value) {
         set(value) {
@@ -39,10 +42,12 @@ class BookSourceEditAdapter : RecyclerView.Adapter<BookSourceEditAdapter.MyViewH
         return editEntities.size
         return editEntities.size
     }
     }
 
 
-    class MyViewHolder(val binding: ItemSourceEditBinding) : RecyclerView.ViewHolder(binding.root) {
+    inner class MyViewHolder(val binding: ItemSourceEditBinding) :
+        RecyclerView.ViewHolder(binding.root) {
 
 
         fun bind(editEntity: EditEntity) = binding.run {
         fun bind(editEntity: EditEntity) = binding.run {
             editText.setTag(R.id.tag, editEntity.key)
             editText.setTag(R.id.tag, editEntity.key)
+            editText.maxLines = editEntityMaxLine
             if (editText.getTag(R.id.tag1) == null) {
             if (editText.getTag(R.id.tag1) == null) {
                 val listener = object : View.OnAttachStateChangeListener {
                 val listener = object : View.OnAttachStateChangeListener {
                     override fun onViewAttachedToWindow(v: View) {
                     override fun onViewAttachedToWindow(v: View) {

+ 14 - 1
app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt

@@ -60,6 +60,7 @@ class OtherConfigFragment : PreferenceFragment(),
         }
         }
         upPreferenceSummary(PreferKey.checkSource, CheckSource.summary)
         upPreferenceSummary(PreferKey.checkSource, CheckSource.summary)
         upPreferenceSummary(PreferKey.bitmapCacheSize, AppConfig.bitmapCacheSize.toString())
         upPreferenceSummary(PreferKey.bitmapCacheSize, AppConfig.bitmapCacheSize.toString())
+        upPreferenceSummary(PreferKey.sourceEditMaxLine, AppConfig.sourceEditMaxLine.toString())
     }
     }
 
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -119,7 +120,16 @@ class OtherConfigFragment : PreferenceFragment(),
                         ImageProvider.bitmapLruCache.resize(ImageProvider.cacheSize)
                         ImageProvider.bitmapLruCache.resize(ImageProvider.cacheSize)
                     }
                     }
             }
             }
-
+            PreferKey.sourceEditMaxLine -> {
+                NumberPickerDialog(requireContext())
+                    .setTitle(getString(R.string.source_edit_text_max_line))
+                    .setMaxValue(99)
+                    .setMinValue(10)
+                    .setValue(AppConfig.sourceEditMaxLine)
+                    .show {
+                        AppConfig.sourceEditMaxLine = it
+                    }
+            }
         }
         }
         return super.onPreferenceTreeClick(preference)
         return super.onPreferenceTreeClick(preference)
     }
     }
@@ -160,6 +170,9 @@ class OtherConfigFragment : PreferenceFragment(),
             PreferKey.bitmapCacheSize -> {
             PreferKey.bitmapCacheSize -> {
                 upPreferenceSummary(key, AppConfig.bitmapCacheSize.toString())
                 upPreferenceSummary(key, AppConfig.bitmapCacheSize.toString())
             }
             }
+            PreferKey.sourceEditMaxLine -> {
+                upPreferenceSummary(key, AppConfig.sourceEditMaxLine.toString())
+            }
         }
         }
     }
     }
 
 

+ 6 - 1
app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditAdapter.kt

@@ -9,12 +9,15 @@ import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.RecyclerView
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.databinding.ItemSourceEditBinding
 import io.legado.app.databinding.ItemSourceEditBinding
+import io.legado.app.help.config.AppConfig
 import io.legado.app.ui.widget.code.addJsPattern
 import io.legado.app.ui.widget.code.addJsPattern
 import io.legado.app.ui.widget.code.addJsonPattern
 import io.legado.app.ui.widget.code.addJsonPattern
 import io.legado.app.ui.widget.code.addLegadoPattern
 import io.legado.app.ui.widget.code.addLegadoPattern
 
 
 class RssSourceEditAdapter : RecyclerView.Adapter<RssSourceEditAdapter.MyViewHolder>() {
 class RssSourceEditAdapter : RecyclerView.Adapter<RssSourceEditAdapter.MyViewHolder>() {
 
 
+    val editEntityMaxLine = AppConfig.sourceEditMaxLine
+
     var editEntities: ArrayList<EditEntity> = ArrayList()
     var editEntities: ArrayList<EditEntity> = ArrayList()
         @SuppressLint("NotifyDataSetChanged")
         @SuppressLint("NotifyDataSetChanged")
         set(value) {
         set(value) {
@@ -39,9 +42,11 @@ class RssSourceEditAdapter : RecyclerView.Adapter<RssSourceEditAdapter.MyViewHol
         return editEntities.size
         return editEntities.size
     }
     }
 
 
-    class MyViewHolder(val binding: ItemSourceEditBinding) : RecyclerView.ViewHolder(binding.root) {
+    inner class MyViewHolder(val binding: ItemSourceEditBinding) :
+        RecyclerView.ViewHolder(binding.root) {
 
 
         fun bind(editEntity: EditEntity) = binding.run {
         fun bind(editEntity: EditEntity) = binding.run {
+            editText.maxLines = editEntityMaxLine
             if (editText.getTag(R.id.tag1) == null) {
             if (editText.getTag(R.id.tag1) == null) {
                 val listener = object : View.OnAttachStateChangeListener {
                 val listener = object : View.OnAttachStateChangeListener {
                     override fun onViewAttachedToWindow(v: View) {
                     override fun onViewAttachedToWindow(v: View) {

+ 1 - 2
app/src/main/res/layout/item_source_edit.xml

@@ -9,7 +9,6 @@
         android:id="@+id/editText"
         android:id="@+id/editText"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:inputType="textMultiLine"
-        android:maxLines="12" />
+        android:inputType="textMultiLine" />
 
 
 </io.legado.app.ui.widget.text.TextInputLayout>
 </io.legado.app.ui.widget.text.TextInputLayout>

+ 2 - 1
app/src/main/res/values-es-rES/strings.xml

@@ -1023,7 +1023,7 @@
     <string name="delete_review_url">删除段评URL(deleteUrl)</string>
     <string name="delete_review_url">删除段评URL(deleteUrl)</string>
     <string name="tag_explore_enabled">标志:发现已启用</string>
     <string name="tag_explore_enabled">标志:发现已启用</string>
     <string name="tag_explore_disabled">标志:发现已禁用</string>
     <string name="tag_explore_disabled">标志:发现已禁用</string>
-    <string name="show_read_title_addition">show read title addition area</string>
+    <string name="show_read_title_addition">show read title addition área</string>
     <string name="read_bar_style_follow_page">read bar style follow page</string>
     <string name="read_bar_style_follow_page">read bar style follow page</string>
     <string name="rule_image_decode">Decode Image(imageDecode)</string>
     <string name="rule_image_decode">Decode Image(imageDecode)</string>
     <string name="like_source">赞</string>
     <string name="like_source">赞</string>
@@ -1037,4 +1037,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

+ 1 - 0
app/src/main/res/values-ja-rJP/strings.xml

@@ -1040,4 +1040,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

+ 1 - 0
app/src/main/res/values-pt-rBR/strings.xml

@@ -1040,4 +1040,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

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

@@ -1037,4 +1037,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

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

@@ -1039,4 +1039,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

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

@@ -1039,4 +1039,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

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

@@ -1040,4 +1040,5 @@
     <string name="local_no_group">本地未分组</string>
     <string name="local_no_group">本地未分组</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="parallel_export_book">多线程导出TXT</string>
     <string name="progress_bar_behavior">进度条行为</string>
     <string name="progress_bar_behavior">进度条行为</string>
+    <string name="source_edit_text_max_line">源编辑框最大行数</string>
 </resources>
 </resources>

+ 4 - 0
app/src/main/res/xml/pref_config_other.xml

@@ -61,6 +61,10 @@
             android:summary="@string/book_tree_uri_s"
             android:summary="@string/book_tree_uri_s"
             android:title="@string/book_tree_uri_t" />
             android:title="@string/book_tree_uri_t" />
 
 
+        <io.legado.app.lib.prefs.Preference
+            android:key="sourceEditMaxLine"
+            android:title="@string/source_edit_text_max_line" />
+
         <io.legado.app.lib.prefs.Preference
         <io.legado.app.lib.prefs.Preference
             android:key="checkSource"
             android:key="checkSource"
             android:title="@string/check_source_config" />
             android:title="@string/check_source_config" />