订阅源网页重定向 #171
This commit is contained in:
7 files changed
+20
-13
No files matched your search
@@ -141,6 +141,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
|
|||||||
RedirectPolicy.ASK_ALWAYS -> R.id.menu_redirect_ask_always
|
RedirectPolicy.ASK_ALWAYS -> R.id.menu_redirect_ask_always
|
||||||
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
||||||
RedirectPolicy.BLOCK_CROSS_ORIGIN -> R.id.menu_redirect_block_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
|
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_always -> RedirectPolicy.ASK_ALWAYS
|
||||||
R.id.menu_redirect_ask_cross_origin -> RedirectPolicy.ASK_CROSS_ORIGIN
|
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_cross_origin -> RedirectPolicy.BLOCK_CROSS_ORIGIN
|
||||||
|
R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
|
||||||
else -> RedirectPolicy.ALLOW_ALL
|
else -> RedirectPolicy.ALLOW_ALL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,9 +162,8 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
|
|||||||
|
|
||||||
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
||||||
viewModel.rssSource?.let { source ->
|
viewModel.rssSource?.let { source ->
|
||||||
source.redirectPolicy = policy.name
|
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl, policy.name)
|
||||||
redirectPolicy = policy
|
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 {
|
execute {
|
||||||
val source = rssSource ?: return@execute
|
appDb.rssSourceDao.updateRedirectPolicy(sourceUrl, redirectPolicy)
|
||||||
source.redirectPolicy = redirectPolicy
|
rssSource?.redirectPolicy = redirectPolicy
|
||||||
appDb.rssSourceDao.updateRedirectPolicy(source.sourceUrl, redirectPolicy)
|
|
||||||
}.onError {
|
}.onError {
|
||||||
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
ALLOW_ALL,
|
ALLOW_ALL,
|
||||||
ASK_ALWAYS,
|
ASK_ALWAYS,
|
||||||
ASK_CROSS_ORIGIN,
|
ASK_CROSS_ORIGIN,
|
||||||
BLOCK_CROSS_ORIGIN;
|
BLOCK_CROSS_ORIGIN,
|
||||||
|
BLOCK_ALL;
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun fromString(value: String?): RedirectPolicy {
|
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_ALWAYS -> R.id.menu_redirect_ask_always
|
||||||
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
RedirectPolicy.ASK_CROSS_ORIGIN -> R.id.menu_redirect_ask_cross_origin
|
||||||
RedirectPolicy.BLOCK_CROSS_ORIGIN -> R.id.menu_redirect_block_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
|
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_always -> RedirectPolicy.ASK_ALWAYS
|
||||||
R.id.menu_redirect_ask_cross_origin -> RedirectPolicy.ASK_CROSS_ORIGIN
|
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_cross_origin -> RedirectPolicy.BLOCK_CROSS_ORIGIN
|
||||||
|
R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
|
||||||
else -> RedirectPolicy.ALLOW_ALL
|
else -> RedirectPolicy.ALLOW_ALL
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -370,9 +373,8 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
|
|
||||||
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
fun updateRedirectPolicy(policy: RedirectPolicy) {
|
||||||
viewModel.rssSource?.let { source ->
|
viewModel.rssSource?.let { source ->
|
||||||
source.redirectPolicy = policy.name
|
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl, policy.name)
|
||||||
redirectPolicy = policy
|
redirectPolicy = policy
|
||||||
viewModel.updateRssSourceRedirectPolicy(source.sourceUrl)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,6 +489,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
|
|
||||||
return when (redirectPolicy) {
|
return when (redirectPolicy) {
|
||||||
RedirectPolicy.ALLOW_ALL -> false
|
RedirectPolicy.ALLOW_ALL -> false
|
||||||
|
RedirectPolicy.BLOCK_ALL -> true
|
||||||
RedirectPolicy.ASK_ALWAYS -> {
|
RedirectPolicy.ASK_ALWAYS -> {
|
||||||
askUser(fromUrl, toUrl) { if (it) view.loadUrl(toUrl) }
|
askUser(fromUrl, toUrl) { if (it) view.loadUrl(toUrl) }
|
||||||
true
|
true
|
||||||
|
|||||||
@@ -243,11 +243,10 @@ class ReadRssViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
tts?.speak(text)
|
tts?.speak(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateRssSourceRedirectPolicy(redirectPolicy: String) {
|
fun updateRssSourceRedirectPolicy(sourceUrl: String, redirectPolicy: String) {
|
||||||
execute {
|
execute {
|
||||||
val source = rssSource ?: return@execute
|
appDb.rssSourceDao.updateRedirectPolicy(sourceUrl, redirectPolicy)
|
||||||
source.redirectPolicy = redirectPolicy
|
rssSource?.redirectPolicy = redirectPolicy
|
||||||
appDb.rssSourceDao.updateRedirectPolicy(source.sourceUrl, redirectPolicy)
|
|
||||||
}.onError {
|
}.onError {
|
||||||
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
appCtx.toastOnUi("保存失败: ${it.localizedMessage}")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,5 +13,8 @@
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/menu_redirect_block_cross_origin"
|
android:id="@+id/menu_redirect_block_cross_origin"
|
||||||
android:title="@string/redirect_block_cross_origin" />
|
android:title="@string/redirect_block_cross_origin" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_redirect_block_all"
|
||||||
|
android:title="@string/redirect_block_all" />
|
||||||
</group>
|
</group>
|
||||||
</menu>
|
</menu>
|
||||||
@@ -1318,4 +1318,5 @@
|
|||||||
<string name="redirect_ask_always">总是询问</string>
|
<string name="redirect_ask_always">总是询问</string>
|
||||||
<string name="redirect_ask_cross_origin">跨域时询问</string>
|
<string name="redirect_ask_cross_origin">跨域时询问</string>
|
||||||
<string name="redirect_block_cross_origin">阻止跨域重定向</string>
|
<string name="redirect_block_cross_origin">阻止跨域重定向</string>
|
||||||
|
<string name="redirect_block_all">阻止所有重定向</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1319,4 +1319,5 @@
|
|||||||
<string name="redirect_ask_always">总是询问</string>
|
<string name="redirect_ask_always">总是询问</string>
|
||||||
<string name="redirect_ask_cross_origin">跨域时询问</string>
|
<string name="redirect_ask_cross_origin">跨域时询问</string>
|
||||||
<string name="redirect_block_cross_origin">阻止跨域重定向</string>
|
<string name="redirect_block_cross_origin">阻止跨域重定向</string>
|
||||||
|
<string name="redirect_block_all">阻止所有重定向</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in new issue
Block a user