订阅源网页重定向 #171
This commit is contained in:
@@ -141,6 +141,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
|
||||
RedirectPolicy.ASK_ALWAYS -> R.id.menu_redirect_ask_always
|
||||
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
||||
RedirectPolicy.BLOCK_CROSS_ORIGIN -> R.id.menu_redirect_block_cross_origin
|
||||
RedirectPolicy.BLOCK_ALL -> R.id.menu_redirect_block_all
|
||||
}
|
||||
menu.findItem(menuItemId)?.isChecked = true
|
||||
}
|
||||
@@ -151,6 +152,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
|
||||
R.id.menu_redirect_ask_always -> RedirectPolicy.ASK_ALWAYS
|
||||
R.id.menu_redirect_ask_cross_origin -> RedirectPolicy.ASK_CROSS_ORIGIN
|
||||
R.id.menu_redirect_block_cross_origin -> RedirectPolicy.BLOCK_CROSS_ORIGIN
|
||||
R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
|
||||
else -> RedirectPolicy.ALLOW_ALL
|
||||
}
|
||||
|
||||
@@ -160,9 +162,8 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
|
||||
|
||||
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
||||
viewModel.rssSource?.let { source ->
|
||||
source.redirectPolicy = policy.name
|
||||
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl, policy.name)
|
||||
redirectPolicy = policy
|
||||
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,11 +94,10 @@ class RssSortViewModel(application: Application) : BaseViewModel(application) {
|
||||
}
|
||||
}
|
||||
|
||||
fun updateRssSourceRedirectPolicy(redirectPolicy: String) {
|
||||
fun updateRssSourceRedirectPolicy(sourceUrl: String, redirectPolicy: String) {
|
||||
execute {
|
||||
val source = rssSource ?: return@execute
|
||||
source.redirectPolicy = redirectPolicy
|
||||
appDb.rssSourceDao.updateRedirectPolicy(source.sourceUrl, redirectPolicy)
|
||||
appDb.rssSourceDao.updateRedirectPolicy(sourceUrl, redirectPolicy)
|
||||
rssSource?.redirectPolicy = redirectPolicy
|
||||
}.onError {
|
||||
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
||||
}
|
||||
|
||||
@@ -80,7 +80,8 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
ALLOW_ALL,
|
||||
ASK_ALWAYS,
|
||||
ASK_CROSS_ORIGIN,
|
||||
BLOCK_CROSS_ORIGIN;
|
||||
BLOCK_CROSS_ORIGIN,
|
||||
BLOCK_ALL;
|
||||
|
||||
companion object {
|
||||
fun fromString(value: String?): RedirectPolicy {
|
||||
@@ -245,6 +246,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
RedirectPolicy.ASK_ALWAYS -> R.id.menu_redirect_ask_always
|
||||
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
||||
RedirectPolicy.BLOCK_CROSS_ORIGIN -> R.id.menu_redirect_block_cross_origin
|
||||
RedirectPolicy.BLOCK_ALL -> R.id.menu_redirect_block_all
|
||||
}
|
||||
menu.findItem(menuItemId)?.isChecked = true
|
||||
}
|
||||
@@ -255,6 +257,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
R.id.menu_redirect_ask_always -> RedirectPolicy.ASK_ALWAYS
|
||||
R.id.menu_redirect_ask_cross_origin -> RedirectPolicy.ASK_CROSS_ORIGIN
|
||||
R.id.menu_redirect_block_cross_origin -> RedirectPolicy.BLOCK_CROSS_ORIGIN
|
||||
R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
|
||||
else -> RedirectPolicy.ALLOW_ALL
|
||||
}
|
||||
|
||||
@@ -370,9 +373,8 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
|
||||
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
||||
viewModel.rssSource?.let { source ->
|
||||
source.redirectPolicy = policy.name
|
||||
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl, policy.name)
|
||||
redirectPolicy = policy
|
||||
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -487,6 +489,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
|
||||
return when (redirectPolicy) {
|
||||
RedirectPolicy.ALLOW_ALL -> false
|
||||
RedirectPolicy.BLOCK_ALL -> true
|
||||
RedirectPolicy.ASK_ALWAYS -> {
|
||||
askUser(fromUrl, toUrl) { if (it) view.loadUrl(toUrl) }
|
||||
true
|
||||
|
||||
@@ -243,11 +243,10 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application) {
|
||||
tts?.speak(text)
|
||||
}
|
||||
|
||||
fun updateRssSourceRedirectPolicy(redirectPolicy: String) {
|
||||
fun updateRssSourceRedirectPolicy(sourceUrl: String, redirectPolicy: String) {
|
||||
execute {
|
||||
val source = rssSource ?: return@execute
|
||||
source.redirectPolicy = redirectPolicy
|
||||
appDb.rssSourceDao.updateRedirectPolicy(source.sourceUrl, redirectPolicy)
|
||||
appDb.rssSourceDao.updateRedirectPolicy(sourceUrl, redirectPolicy)
|
||||
rssSource?.redirectPolicy = redirectPolicy
|
||||
}.onError {
|
||||
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user