订阅源网页重定向 #171

This commit is contained in:
HapeLee committed 2025-10-30 00:13:56 +08:00
1 parent 797c8e8a6f
commit 4406f805af
6 files changed
+31 -7

No files matched your search

@@ -142,6 +142,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
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 RedirectPolicy.BLOCK_ALL -> R.id.menu_redirect_block_all
RedirectPolicy.ASK_SAME_DOMAIN_BLOCK_CROSS -> R.id.menu_redirect_ask_same_domain_block_cross
} }
menu.findItem(menuItemId)?.isChecked = true menu.findItem(menuItemId)?.isChecked = true
} }
@@ -153,6 +154,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
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 R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
R.id.menu_redirect_ask_same_domain_block_cross -> RedirectPolicy.ASK_SAME_DOMAIN_BLOCK_CROSS
else -> RedirectPolicy.ALLOW_ALL else -> RedirectPolicy.ALLOW_ALL
} }
@@ -81,7 +81,8 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
ASK_ALWAYS, ASK_ALWAYS,
ASK_CROSS_ORIGIN, ASK_CROSS_ORIGIN,
BLOCK_CROSS_ORIGIN, BLOCK_CROSS_ORIGIN,
BLOCK_ALL; BLOCK_ALL,
ASK_SAME_DOMAIN_BLOCK_CROSS;
companion object { companion object {
fun fromString(value: String?): RedirectPolicy { fun fromString(value: String?): RedirectPolicy {
@@ -247,6 +248,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
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 RedirectPolicy.BLOCK_ALL -> R.id.menu_redirect_block_all
RedirectPolicy.ASK_SAME_DOMAIN_BLOCK_CROSS -> R.id.menu_redirect_ask_same_domain_block_cross
} }
menu.findItem(menuItemId)?.isChecked = true menu.findItem(menuItemId)?.isChecked = true
} }
@@ -258,6 +260,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
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 R.id.menu_redirect_block_all -> RedirectPolicy.BLOCK_ALL
R.id.menu_redirect_ask_same_domain_block_cross -> RedirectPolicy.ASK_SAME_DOMAIN_BLOCK_CROSS
else -> RedirectPolicy.ALLOW_ALL else -> RedirectPolicy.ALLOW_ALL
} }
@@ -489,7 +492,10 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
return when (redirectPolicy) { return when (redirectPolicy) {
RedirectPolicy.ALLOW_ALL -> false RedirectPolicy.ALLOW_ALL -> false
RedirectPolicy.BLOCK_ALL -> true RedirectPolicy.BLOCK_ALL -> {
toastOnUi("已阻止重定向")
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
@@ -510,6 +516,15 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
false false
} }
} }
RedirectPolicy.ASK_SAME_DOMAIN_BLOCK_CROSS -> {
if (crossOrigin) {
toastOnUi("已阻止域外跳转")
true
} else {
askUser(fromUrl, toUrl) { if (it) view.loadUrl(toUrl) }
true
}
}
} }
} }
@@ -25,9 +25,11 @@
android:id="@+id/image_view" android:id="@+id/image_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="80dp"
android:backgroundTint="?attr/colorSurfaceContainer"
android:contentDescription="@string/loading" android:contentDescription="@string/loading"
android:visibility="visible" android:visibility="visible"
android:scaleType="centerCrop" /> />
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<TextView <TextView
@@ -10,6 +10,9 @@
<item <item
android:id="@+id/menu_redirect_ask_cross_origin" android:id="@+id/menu_redirect_ask_cross_origin"
android:title="@string/redirect_ask_cross_origin" /> android:title="@string/redirect_ask_cross_origin" />
<item
android:id="@+id/menu_redirect_ask_same_domain_block_cross"
android:title="@string/redirect_ask_same_domain_block_cross" />
<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" />
+3 -2
View File
@@ -1316,7 +1316,8 @@
<string name="redirect_policy">网页重定向策略</string> <string name="redirect_policy">网页重定向策略</string>
<string name="redirect_allow_all">允许所有重定向</string> <string name="redirect_allow_all">允许所有重定向</string>
<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> <string name="redirect_block_all">阻止所有重定向</string>
<string name="redirect_ask_same_domain_block_cross">域内询问且域外阻止</string>
</resources> </resources>
+3 -2
View File
@@ -1317,7 +1317,8 @@
<string name="redirect_policy">网页重定向策略</string> <string name="redirect_policy">网页重定向策略</string>
<string name="redirect_allow_all">允许所有重定向</string> <string name="redirect_allow_all">允许所有重定向</string>
<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> <string name="redirect_block_all">阻止所有重定向</string>
<string name="redirect_ask_same_domain_block_cross">域内询问且域外阻止</string>
</resources> </resources>