Skip to content

[Feat] : Disable Quic in UI #361

Open

Description

@w0l4i

Hi there

please add quic block option in ui

according to this issue :
#213

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

best regards

Activity

  1. therealaleph commented on Apr 27, 2026

    @therealaleph
    Owner

    @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).

    v1.8.x Android UI batch covers:

    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:

    1. android/app/src/main/java/com/therealaleph/mhrv/Config.kt — add val blockQuic: Boolean = false, to data class
    2. android/app/src/main/java/com/therealaleph/mhrv/ui/HomeScreen.kt — add Switch in Advanced Settings section, similar shape to existing toggles
    3. android/app/src/main/java/com/therealaleph/mhrv/ConfigStore.kt — serialize/deserialize the field
    4. (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]

  2. w0l4i commented on Apr 27, 2026

    @w0l4i
    Author

    @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).

    v1.8.x Android UI batch covers:

    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:

    1. android/app/src/main/java/com/therealaleph/mhrv/Config.kt — add val blockQuic: Boolean = false, to data class
    2. android/app/src/main/java/com/therealaleph/mhrv/ui/HomeScreen.kt — add Switch in Advanced Settings section, similar shape to existing toggles
    3. android/app/src/main/java/com/therealaleph/mhrv/ConfigStore.kt — serialize/deserialize the field
    4. (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

  3. 2bemoji commented on Apr 28, 2026

    @2bemoji

    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

  4. therealaleph commented on Apr 28, 2026

    @therealaleph
    Owner

    @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
    • reject (config: block_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]

  5. w0l4i commented on Apr 30, 2026

    @w0l4i
    Author

    @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
    • reject (config: block_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]

    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

  6. therealaleph commented on Apr 30, 2026

    @therealaleph
    Owner

    @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.

    Current Android UI batch progress:

    • ✅ youtube_via_relay Switch toggle (v1.9.3, shipped)
    • 🔄 block_quic 3-state toggle (off / drop / reject) — next, ETA ~3-5 days
    • 🔄 passthrough_hosts editor — next, ~3-5 days
    • 🔄 Per-deployment Usage today counter — ~1 week
    • 🔄 Active deployment indicator — ~1 week
    • 🔄 Test-each-deployment button — ~1 week
    • 🔄 Android disconnect crash fix — investigating, ~1 week

    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]

  7. w0l4i commented on May 1, 2026

    @w0l4i
    Author

    @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.

    Current Android UI batch progress:

    • ✅ youtube_via_relay Switch toggle (v1.9.3, shipped)
    • 🔄 block_quic 3-state toggle (off / drop / reject) — next, ETA ~3-5 days
    • 🔄 passthrough_hosts editor — next, ~3-5 days
    • 🔄 Per-deployment Usage today counter — ~1 week
    • 🔄 Active deployment indicator — ~1 week
    • 🔄 Test-each-deployment button — ~1 week
    • 🔄 Android disconnect crash fix — investigating, ~1 week

    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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions