From 185ee8da6121e69a10cf9e40c6dab38728f27233 Mon Sep 17 00:00:00 2001 From: gedoor Date: Thu, 15 Apr 2021 11:14:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BA=90=E8=AE=A2=E9=98=85=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/data/dao/RuleSubDao.kt | 3 +++ .../ui/rss/subscription/RuleSubActivity.kt | 21 ++++++++++++++----- app/src/main/res/values-zh-rHK/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/legado/app/data/dao/RuleSubDao.kt b/app/src/main/java/io/legado/app/data/dao/RuleSubDao.kt index a8056baae..d5aea29ad 100644 --- a/app/src/main/java/io/legado/app/data/dao/RuleSubDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/RuleSubDao.kt @@ -16,6 +16,9 @@ interface RuleSubDao { @get:Query("select customOrder from ruleSubs order by customOrder limit 0,1") val maxOrder: Int + @Query("select * from ruleSubs where url = :url") + fun findByUrl(url: String): RuleSub? + @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(vararg ruleSub: RuleSub) diff --git a/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubActivity.kt b/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubActivity.kt index 78aa3d7da..c7a74a318 100644 --- a/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/subscription/RuleSubActivity.kt @@ -18,8 +18,10 @@ import io.legado.app.ui.association.ImportReplaceRuleActivity import io.legado.app.ui.association.ImportRssSourceActivity import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.utils.startActivity +import io.legado.app.utils.toastOnUi import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * 规则订阅界面 @@ -100,11 +102,20 @@ class RuleSubActivity : BaseActivity(), } customView { alertBinding.root } okButton { - ruleSub.type = alertBinding.spType.selectedItemPosition - ruleSub.name = alertBinding.etName.text?.toString() ?: "" - ruleSub.url = alertBinding.etUrl.text?.toString() ?: "" - launch(IO) { - appDb.ruleSubDao.insert(ruleSub) + launch { + ruleSub.type = alertBinding.spType.selectedItemPosition + ruleSub.name = alertBinding.etName.text?.toString() ?: "" + ruleSub.url = alertBinding.etUrl.text?.toString() ?: "" + val rs = withContext(IO) { + appDb.ruleSubDao.findByUrl(ruleSub.url) + } + if (rs != null && rs.id != ruleSub.id) { + toastOnUi(R.string.url_already) + return@launch + } + withContext(IO) { + appDb.ruleSubDao.insert(ruleSub) + } } } cancelButton() diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index ec507138c..29e200c8c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -819,5 +819,6 @@ 目录源码 正文源码 列表源码 + 此url已订阅 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0b7551fc5..f7f2c0359 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -821,5 +821,6 @@ 目录源码 正文源码 列表源码 + 此url已订阅 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 0889ca112..05aa55b5a 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -823,5 +823,6 @@ 目录源码 正文源码 列表源码 + 此url已订阅 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index da4faf74d..04b53023e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -826,5 +826,6 @@ 目录源码 正文源码 列表源码 + 此url已订阅