add auto subscribe (#768)

* add auto subscribe

* [优化] 优化代码

---------

Co-authored-by: HapeLee <1321903405@qq.com>
This commit is contained in:
yuluoxc
2026-03-27 01:31:44 +08:00
committed by GitHub
co-authored by HapeLee
parent 63e1db17b1
commit b799e008c6
6 changed files with 29 additions and 4 deletions
@@ -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()
@@ -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)
}
}
}
},
@@ -109,6 +109,7 @@
<item>书源</item>
<item>订阅源</item>
<item>替换规则</item>
<item>自动识别</item>
</string-array>
<string-array name="tip_color">
@@ -85,6 +85,7 @@
<item>書源</item>
<item>訂閲源</item>
<item>替換規則</item>
<item>自動識別</item>
</string-array>
<string-array name="bookshelf_grid_layout">
@@ -122,6 +122,7 @@
<item>書源</item>
<item>訂閱源</item>
<item>取代規則</item>
<item>自動識別</item>
</string-array>
<string-array name="bookshelf_grid_layout">
+1
View File
@@ -232,6 +232,7 @@
<item>BookSource</item>
<item>RssSource</item>
<item>ReplaceRule</item>
<item>Auto Detect</item>
</string-array>
<string-array name="default_home_page">