diff --git a/app/src/main/java/io/legado/app/data/entities/RuleSub.kt b/app/src/main/java/io/legado/app/data/entities/RuleSub.kt
index 2b43787fe..8a5282257 100644
--- a/app/src/main/java/io/legado/app/data/entities/RuleSub.kt
+++ b/app/src/main/java/io/legado/app/data/entities/RuleSub.kt
@@ -3,13 +3,23 @@ package io.legado.app.data.entities
import androidx.room.Entity
import androidx.room.PrimaryKey
+/**
+ * 类型常量
+ */
+object RuleSubType {
+ const val BOOK_SOURCE = 0 // 书源
+ const val RSS_SOURCE = 1 // 订阅源
+ const val REPLACE_RULE = 2 // 替换规则
+ const val AUTO = 3 // 自动识别
+}
+
@Entity(tableName = "ruleSubs")
data class RuleSub(
@PrimaryKey
val id: Long = System.currentTimeMillis(),
var name: String = "",
var url: String = "",
- var type: Int = 0,
+ var type: Int = RuleSubType.BOOK_SOURCE,
var customOrder: Int = 0,
var autoUpdate: Boolean = false,
var update: Long = System.currentTimeMillis()
diff --git a/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubScreen.kt b/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubScreen.kt
index 4c1d76c55..58c10ffdb 100644
--- a/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubScreen.kt
+++ b/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubScreen.kt
@@ -46,9 +46,11 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringArrayResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
+import androidx.core.net.toUri
import androidx.lifecycle.viewmodel.compose.viewModel
import io.legado.app.R
import io.legado.app.data.entities.RuleSub
+import io.legado.app.data.entities.RuleSubType
import io.legado.app.ui.association.ImportBookSourceDialog
import io.legado.app.ui.association.ImportReplaceRuleDialog
import io.legado.app.ui.association.ImportRssSourceDialog
@@ -153,17 +155,26 @@ fun RuleSubScreen(
viewModel.toggleSelection(ruleSub)
} else {
when (ruleSub.type) {
- 0 -> (context as? AppCompatActivity)?.showDialogFragment(
+ RuleSubType.BOOK_SOURCE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportBookSourceDialog(ruleSub.url)
)
- 1 -> (context as? AppCompatActivity)?.showDialogFragment(
+ RuleSubType.RSS_SOURCE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportRssSourceDialog(ruleSub.url)
)
- 2 -> (context as? AppCompatActivity)?.showDialogFragment(
+ RuleSubType.REPLACE_RULE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportReplaceRuleDialog(ruleSub.url)
)
+
+ RuleSubType.AUTO -> {
+ val encodedUrl = java.net.URLEncoder.encode(ruleSub.url, "UTF-8")
+ val intent = android.content.Intent(
+ android.content.Intent.ACTION_VIEW,
+ "legado://import/importonline?src=$encodedUrl".toUri()
+ )
+ context.startActivity(intent)
+ }
}
}
},
diff --git a/app/src/main/res/values-zh-rCN/arrays.xml b/app/src/main/res/values-zh-rCN/arrays.xml
index cb0015f52..69c46de9a 100644
--- a/app/src/main/res/values-zh-rCN/arrays.xml
+++ b/app/src/main/res/values-zh-rCN/arrays.xml
@@ -109,6 +109,7 @@
- 书源
- 订阅源
- 替换规则
+ - 自动识别
diff --git a/app/src/main/res/values-zh-rHK/arrays.xml b/app/src/main/res/values-zh-rHK/arrays.xml
index a9542ce94..683d79dac 100644
--- a/app/src/main/res/values-zh-rHK/arrays.xml
+++ b/app/src/main/res/values-zh-rHK/arrays.xml
@@ -85,6 +85,7 @@
- 書源
- 訂閲源
- 替換規則
+ - 自動識別
diff --git a/app/src/main/res/values-zh-rTW/arrays.xml b/app/src/main/res/values-zh-rTW/arrays.xml
index 0e684ab9d..98d383ca9 100644
--- a/app/src/main/res/values-zh-rTW/arrays.xml
+++ b/app/src/main/res/values-zh-rTW/arrays.xml
@@ -122,6 +122,7 @@
- 書源
- 訂閱源
- 取代規則
+ - 自動識別
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 76edcad94..a4a405595 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -232,6 +232,7 @@
- BookSource
- RssSource
- ReplaceRule
+ - Auto Detect