add auto subscribe (#768)

* add auto subscribe

* [优化] 优化代码

---------

Co-authored-by: HapeLee <1321903405@qq.com>
This commit is contained in:
yuluoxcandHapeLee authored and GitHub committed 2026-03-27 01:31:44 +08:00
1 parent 63e1db17b1
commit b799e008c6
6 files changed
+29 -4

No files matched your search

@@ -3,13 +3,23 @@ package io.legado.app.data.entities
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey 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") @Entity(tableName = "ruleSubs")
data class RuleSub( data class RuleSub(
@PrimaryKey @PrimaryKey
val id: Long = System.currentTimeMillis(), val id: Long = System.currentTimeMillis(),
var name: String = "", var name: String = "",
var url: String = "", var url: String = "",
var type: Int = 0, var type: Int = RuleSubType.BOOK_SOURCE,
var customOrder: Int = 0, var customOrder: Int = 0,
var autoUpdate: Boolean = false, var autoUpdate: Boolean = false,
var update: Long = System.currentTimeMillis() 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.stringArrayResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import io.legado.app.R import io.legado.app.R
import io.legado.app.data.entities.RuleSub 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.ImportBookSourceDialog
import io.legado.app.ui.association.ImportReplaceRuleDialog import io.legado.app.ui.association.ImportReplaceRuleDialog
import io.legado.app.ui.association.ImportRssSourceDialog import io.legado.app.ui.association.ImportRssSourceDialog
@@ -153,17 +155,26 @@ fun RuleSubScreen(
viewModel.toggleSelection(ruleSub) viewModel.toggleSelection(ruleSub)
} else { } else {
when (ruleSub.type) { when (ruleSub.type) {
0 -> (context as? AppCompatActivity)?.showDialogFragment( RuleSubType.BOOK_SOURCE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportBookSourceDialog(ruleSub.url) ImportBookSourceDialog(ruleSub.url)
) )
1 -> (context as? AppCompatActivity)?.showDialogFragment( RuleSubType.RSS_SOURCE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportRssSourceDialog(ruleSub.url) ImportRssSourceDialog(ruleSub.url)
) )
2 -> (context as? AppCompatActivity)?.showDialogFragment( RuleSubType.REPLACE_RULE -> (context as? AppCompatActivity)?.showDialogFragment(
ImportReplaceRuleDialog(ruleSub.url) 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>
<item>替换规则</item> <item>替换规则</item>
<item>自动识别</item>
</string-array> </string-array>
<string-array name="tip_color"> <string-array name="tip_color">
@@ -85,6 +85,7 @@
<item>書源</item> <item>書源</item>
<item>訂閲源</item> <item>訂閲源</item>
<item>替換規則</item> <item>替換規則</item>
<item>自動識別</item>
</string-array> </string-array>
<string-array name="bookshelf_grid_layout"> <string-array name="bookshelf_grid_layout">
@@ -122,6 +122,7 @@
<item>書源</item> <item>書源</item>
<item>訂閱源</item> <item>訂閱源</item>
<item>取代規則</item> <item>取代規則</item>
<item>自動識別</item>
</string-array> </string-array>
<string-array name="bookshelf_grid_layout"> <string-array name="bookshelf_grid_layout">
+1
View File
@@ -232,6 +232,7 @@
<item>BookSource</item> <item>BookSource</item>
<item>RssSource</item> <item>RssSource</item>
<item>ReplaceRule</item> <item>ReplaceRule</item>
<item>Auto Detect</item>
</string-array> </string-array>
<string-array name="default_home_page"> <string-array name="default_home_page">