Skip to content

Commit 5931664

Browse files
committed
fix: Force the "Append HTTP proxy to VPN" switch to turn off when hybrid stacking is disabled in the settings interface.
1 parent fec2bd0 commit 5931664

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

REPO_SCHEMA.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Android 端的代码主要分为两个核心包:
3333
- 支持 Shadowsocks, VMess, Trojan, Hysteria, Juicity, Naive, WireGuard 等协议的配置解析与转换。
3434
- [`io/nekohasekai/sagernet/ui/`](app/src/main/java/io/nekohasekai/sagernet/ui): 各种 Activity 和 Fragment 界面。
3535
- `MainActivity.kt`: 应用主界面。
36-
- `SettingsFragment.kt`: 设置界面。「入站设置」中含「禁用混合入栈」开关(`disableMixedInbound`,见 `SettingsPreferenceFragment.kt`):仅在 TUN 模式下真正生效(`DataStore.mixedInboundDisabled`),开启后 `ConfigBuilder` 不再生成 mixed 入栈及其专属的 `inbound = [mixed-in]` 路由规则、不再监听本地代理端口,`VpnService` 同时跳过 `appendHttpProxy`;此时「代理端口」设置项变灰且摘要显示「已禁用」,「追加 HTTP 代理至 VPN」开关也变灰(其依赖项 `httpProxyBypass` 经 dependency 级联一并变灰)。在系统代理模式下开启该开关会 Toast 提示"禁用只在TUN模式有效,当前监听端口:xxx"且不影响混合入栈。
36+
- `SettingsFragment.kt`: 设置界面。「入站设置」中含「禁用混合入栈」开关(`disableMixedInbound`,见 `SettingsPreferenceFragment.kt`):仅在 TUN 模式下真正生效(`DataStore.mixedInboundDisabled`),开启后 `ConfigBuilder` 不再生成 mixed 入栈及其专属的 `inbound = [mixed-in]` 路由规则、不再监听本地代理端口,`VpnService` 同时跳过 `appendHttpProxy`;此时「代理端口」设置项变灰且摘要显示「已禁用」,「追加 HTTP 代理至 VPN」开关被强制关闭(持久化,避免置灰勾选态造成"锁定开启"错觉)并变灰(其依赖项 `httpProxyBypass` 经 dependency 级联一并变灰)。在系统代理模式下开启该开关会 Toast 提示"禁用只在TUN模式有效,当前监听端口:xxx"且不影响混合入栈。
3737
- `AboutFragment.kt`: 关于界面。版本更新检查:「检查正式版更新」为灰色禁用项(Throne 尚未发布正式版,点击仅弹出 toast `release_not_available`);「检查预览版更新」请求 GitHub `releases/latest` API,将远端 release 名(即 git tag,形如 `v1.4.2-m20-10`)与本地 `BuildConfig.VERSION_NAME``-` 分段、逐段提取数字组从左到右比较(左侧段优先级高于右侧,如 `v1.2.3-m21-1` > `v1.2.3-m20-100`),见 `compareVersionNames()`
3838
- [`io/nekohasekai/sagernet/widget/`](app/src/main/java/io/nekohasekai/sagernet/widget): 自定义 UI 控件。
3939

app/src/main/java/io/nekohasekai/sagernet/ui/SettingsPreferenceFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
208208
// httpProxyBypass 通过 dependency 级联随 appendHttpProxy 一起变灰
209209
appendHttpProxy.isEnabled = !disabled
210210
if (disabled) {
211+
appendHttpProxy.isChecked = false
211212
mixedPort.summaryProvider = null
212213
mixedPort.summary = getString(R.string.mixed_inbound_disabled)
213214
} else {

0 commit comments

Comments
 (0)