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