You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
this option has been added via config.json but the problem is that android users can't enable it , in android this option should be added as button so please add this option in android and other Os's as a button so user can acutely use it
@w0l4i — agreed, the block_quic config-only state is a UX hole on Android. Already on the v1.8.x roadmap as part of the Android UI batch (#285 + #261 + #295 + this one + passthrough_hosts).
All five batched together because each one alone doesn't justify a re-test cycle of the Compose UI + ViewModel state plumbing. Whole batch is ~1-2 weeks of work + emulator smoke-test cycles.
ETA: 1-2 weeks from now. If you want to take a PR for just the block_quic toggle (since it's the simplest of the five — single boolean, two new lines in Config.kt + one Switch in HomeScreen.kt), I'd happily ship it as v1.7.12 standalone instead of waiting for the batch. Pattern to follow:
android/app/src/main/java/com/therealaleph/mhrv/Config.kt — add val blockQuic: Boolean = false, to data class
android/app/src/main/java/com/therealaleph/mhrv/ui/HomeScreen.kt — add Switch in Advanced Settings section, similar shape to existing toggles
android/app/src/main/java/com/therealaleph/mhrv/ConfigStore.kt — serialize/deserialize the field
(Optional) string resources in strings.xml for label + description
Let me know if you want to take it. Otherwise expect it in the v1.8.x umbrella release.
Tracking this issue as the umbrella for the Android UI batch.
[reply via Anthropic Claude | reviewed by @therealaleph]
@w0l4i — agreed, the block_quic config-only state is a UX hole on Android. Already on the v1.8.x roadmap as part of the Android UI batch (#285 + #261 + #295 + this one + passthrough_hosts).
All five batched together because each one alone doesn't justify a re-test cycle of the Compose UI + ViewModel state plumbing. Whole batch is ~1-2 weeks of work + emulator smoke-test cycles.
ETA: 1-2 weeks from now. If you want to take a PR for just the block_quic toggle (since it's the simplest of the five — single boolean, two new lines in Config.kt + one Switch in HomeScreen.kt), I'd happily ship it as v1.7.12 standalone instead of waiting for the batch. Pattern to follow:
android/app/src/main/java/com/therealaleph/mhrv/Config.kt — add val blockQuic: Boolean = false, to data class
android/app/src/main/java/com/therealaleph/mhrv/ui/HomeScreen.kt — add Switch in Advanced Settings section, similar shape to existing toggles
android/app/src/main/java/com/therealaleph/mhrv/ConfigStore.kt — serialize/deserialize the field
(Optional) string resources in strings.xml for label + description
Let me know if you want to take it. Otherwise expect it in the v1.8.x umbrella release.
Tracking this issue as the umbrella for the Android UI batch.
[reply via Anthropic Claude | reviewed by @therealaleph]
tnx a lot , i will wait for you to add and build the release and i will be happy to participate as a tester tnx a lot
I strongly support this request. While the #213 implementation via config.json is a great technical foundation, migrating this to a first-class UI toggle is essential for the following reasons:
Mobile Accessibility: As the OP mentioned, Android users (and many iOS users) often lack the file system access or the technical inclination to manually edit JSON files. For mobile-first users, if a feature isn't in the UI, it effectively doesn't exist.
ISP/Firewall Interference: Many ISPs and regional firewalls specifically throttle or "black hole" UDP traffic on port 443 (the backbone of QUIC/HTTP3). This leads to significant "connection stalling" where a browser attempts QUIC, fails, and only then falls back to TCP/TLS. A UI toggle allows users to force TCP instantly, significantly improving the perceived "snappiness" of the app.
Battery & Performance on Mobile: Constant UDP packet loss and re-transmission attempts can lead to higher CPU overhead and battery drain on mobile devices. Giving users a simple button to disable QUIC allows them to optimize their connection for stability over raw speed when on unreliable cellular networks.
Parity Across Platforms: To ensure a consistent UX, advanced networking features should be accessible across all OS versions. A simple toggle in the "Connection" or "Advanced" settings menu would bring the mobile experience in line with the power-user capabilities of the desktop version.
Conclusion:
Moving this from a hidden config flag to a visible UI element would drastically improve the user experience for those on restrictive or unstable networks. This is a high-impact, low-complexity change that would benefit a large portion of the mobile user base. @w0l4i@therealaleph
@2bemoji — agreed on all four points. The mobile-accessibility framing is the right one — block_quic config-only is essentially "Linux desktop only" since Android users can't easily edit /data/data/com.therealaleph.mhrv/files/config.json without root.
UI toggle is committed for the v1.8.x Android UI batch (#361 tracking).
Plus from your insight in #377 — the toggle will bind to the new block_quic_strategy: "drop" | "reject" field (default reject for instant Happy Eyeballs failover via ICMP unreachable). So the UI exposes:
off (config: block_quic: false)
drop (config: block_quic: true, block_quic_strategy: "drop") — packets vanish, OS waits ~5-10s before TCP fallback
@2bemoji — agreed on all four points. The mobile-accessibility framing is the right one — block_quic config-only is essentially "Linux desktop only" since Android users can't easily edit /data/data/com.therealaleph.mhrv/files/config.json without root.
UI toggle is committed for the v1.8.x Android UI batch (#361 tracking).
Plus from your insight in #377 — the toggle will bind to the new block_quic_strategy: "drop" | "reject" field (default reject for instant Happy Eyeballs failover via ICMP unreachable). So the UI exposes:
off (config: block_quic: false)
drop (config: block_quic: true, block_quic_strategy: "drop") — packets vanish, OS waits ~5-10s before TCP fallback
Three-state toggle on the UI side keeps the discoverability of the right-default-with-escape-hatch model.
ETA: alongside the rest of the Android UI batch (~1-2 weeks). Will reply on this thread when it ships.
[reply via Anthropic Claude | reviewed by @therealaleph]
hi there ,
please add quic block option in ui specially in android version user's have issue's with long waiting time to load youtube and instagram app with prefer h2 option this option is needed very please add it
@w0l4i — reasonable to ping for ETA on this. v1.9.3 just shipped (~5 min ago) with one item from the Android UI batch (youtube_via_relay toggle, PR #535 by @yyoyoian-pixel). The QUIC block toggle is the next-up item.
The QUIC block toggle is the highest-priority remaining item because of the field-reported impact you and @2bemoji documented (long Happy Eyeballs waits on YouTube + Instagram apps). The 3-state model from #377 is the design that lands.
If you want to track or contribute:
The Android UI work is in the same area android/app/src/main/ that PR #535 touched — so the implementation pattern is now established. Anyone who wants to take the QUIC toggle PR can use #535's diff as a template (Switch in MainActivity.kt + field in MhrvConfig + EN/FA strings). Tagging @yyoyoian-pixel since they just shipped #535 — possibly interested.
Will reply on this thread when QUIC toggle ships.
[reply via Anthropic Claude | reviewed by @therealaleph]
@w0l4i — reasonable to ping for ETA on this. v1.9.3 just shipped (~5 min ago) with one item from the Android UI batch (youtube_via_relay toggle, PR #535 by @yyoyoian-pixel). The QUIC block toggle is the next-up item.
The QUIC block toggle is the highest-priority remaining item because of the field-reported impact you and @2bemoji documented (long Happy Eyeballs waits on YouTube + Instagram apps). The 3-state model from #377 is the design that lands.
If you want to track or contribute:
The Android UI work is in the same area android/app/src/main/ that PR #535 touched — so the implementation pattern is now established. Anyone who wants to take the QUIC toggle PR can use #535's diff as a template (Switch in MainActivity.kt + field in MhrvConfig + EN/FA strings). Tagging @yyoyoian-pixel since they just shipped #535 — possibly interested.
Will reply on this thread when QUIC toggle ships.
[reply via Anthropic Claude | reviewed by @therealaleph]
please add quic disable button in ui , users are suffering without it
tnx a lot
Activity
therealaleph commentedon Apr 27, 2026
@w0l4i — agreed, the
block_quicconfig-only state is a UX hole on Android. Already on the v1.8.x roadmap as part of the Android UI batch (#285 + #261 + #295 + this one + passthrough_hosts).v1.8.x Android UI batch covers:
block_quictoggle (this issue, [FEAT] : Quic Udp 443 Block #285)youtube_via_relaytoggle (Restricted Mode یوتیوب #261)listen_hostfield (اتصال سایر دستگاه های تحت شبکه #295)passthrough_hostseditable list (اضافه کردن bypass #254)All five batched together because each one alone doesn't justify a re-test cycle of the Compose UI + ViewModel state plumbing. Whole batch is ~1-2 weeks of work + emulator smoke-test cycles.
ETA: 1-2 weeks from now. If you want to take a PR for just the
block_quictoggle (since it's the simplest of the five — single boolean, two new lines inConfig.kt+ one Switch inHomeScreen.kt), I'd happily ship it as v1.7.12 standalone instead of waiting for the batch. Pattern to follow:android/app/src/main/java/com/therealaleph/mhrv/Config.kt— addval blockQuic: Boolean = false,to data classandroid/app/src/main/java/com/therealaleph/mhrv/ui/HomeScreen.kt— add Switch in Advanced Settings section, similar shape to existing togglesandroid/app/src/main/java/com/therealaleph/mhrv/ConfigStore.kt— serialize/deserialize the fieldstrings.xmlfor label + descriptionLet me know if you want to take it. Otherwise expect it in the v1.8.x umbrella release.
Tracking this issue as the umbrella for the Android UI batch.
[reply via Anthropic Claude | reviewed by @therealaleph]
w0l4i commentedon Apr 27, 2026
tnx a lot , i will wait for you to add and build the release and i will be happy to participate as a tester tnx a lot
2bemoji commentedon Apr 28, 2026
I strongly support this request. While the #213 implementation via config.json is a great technical foundation, migrating this to a first-class UI toggle is essential for the following reasons:
Mobile Accessibility: As the OP mentioned, Android users (and many iOS users) often lack the file system access or the technical inclination to manually edit JSON files. For mobile-first users, if a feature isn't in the UI, it effectively doesn't exist.
ISP/Firewall Interference: Many ISPs and regional firewalls specifically throttle or "black hole" UDP traffic on port 443 (the backbone of QUIC/HTTP3). This leads to significant "connection stalling" where a browser attempts QUIC, fails, and only then falls back to TCP/TLS. A UI toggle allows users to force TCP instantly, significantly improving the perceived "snappiness" of the app.
Battery & Performance on Mobile: Constant UDP packet loss and re-transmission attempts can lead to higher CPU overhead and battery drain on mobile devices. Giving users a simple button to disable QUIC allows them to optimize their connection for stability over raw speed when on unreliable cellular networks.
Parity Across Platforms: To ensure a consistent UX, advanced networking features should be accessible across all OS versions. A simple toggle in the "Connection" or "Advanced" settings menu would bring the mobile experience in line with the power-user capabilities of the desktop version.
Conclusion:
Moving this from a hidden config flag to a visible UI element would drastically improve the user experience for those on restrictive or unstable networks. This is a high-impact, low-complexity change that would benefit a large portion of the mobile user base.
@w0l4i @therealaleph
therealaleph commentedon Apr 28, 2026
@2bemoji — agreed on all four points. The mobile-accessibility framing is the right one —
block_quicconfig-only is essentially "Linux desktop only" since Android users can't easily edit/data/data/com.therealaleph.mhrv/files/config.jsonwithout root.UI toggle is committed for the v1.8.x Android UI batch (#361 tracking).
Plus from your insight in #377 — the toggle will bind to the new
block_quic_strategy: "drop" | "reject"field (defaultrejectfor instant Happy Eyeballs failover via ICMP unreachable). So the UI exposes:block_quic: false)block_quic: true, block_quic_strategy: "drop") — packets vanish, OS waits ~5-10s before TCP fallbackblock_quic: true, block_quic_strategy: "reject") — ICMP unreachable, instant TCP fallback (recommended)Three-state toggle on the UI side keeps the discoverability of the right-default-with-escape-hatch model.
ETA: alongside the rest of the Android UI batch (~1-2 weeks). Will reply on this thread when it ships.
[reply via Anthropic Claude | reviewed by @therealaleph]
w0l4i commentedon Apr 30, 2026
hi there ,
please add quic block option in ui specially in android version user's have issue's with long waiting time to load youtube and instagram app with prefer h2 option this option is needed very please add it
therealaleph commentedon Apr 30, 2026
@w0l4i — reasonable to ping for ETA on this. v1.9.3 just shipped (~5 min ago) with one item from the Android UI batch (
youtube_via_relaytoggle, PR #535 by @yyoyoian-pixel). The QUIC block toggle is the next-up item.Current Android UI batch progress:
youtube_via_relaySwitch toggle (v1.9.3, shipped)block_quic3-state toggle (off / drop / reject) — next, ETA ~3-5 dayspassthrough_hostseditor — next, ~3-5 daysUsage todaycounter — ~1 weekThe QUIC block toggle is the highest-priority remaining item because of the field-reported impact you and @2bemoji documented (long Happy Eyeballs waits on YouTube + Instagram apps). The 3-state model from #377 is the design that lands.
If you want to track or contribute:
The Android UI work is in the same area
android/app/src/main/that PR #535 touched — so the implementation pattern is now established. Anyone who wants to take the QUIC toggle PR can use #535's diff as a template (Switch inMainActivity.kt+ field inMhrvConfig+ EN/FA strings). Tagging @yyoyoian-pixel since they just shipped #535 — possibly interested.Will reply on this thread when QUIC toggle ships.
[reply via Anthropic Claude | reviewed by @therealaleph]
w0l4i commentedon May 1, 2026
please add quic disable button in ui , users are suffering without it
tnx a lot