Skip to content

v1.0.30

Choose a tag to compare

@Dhangofa Dhangofa released this 29 Jul 11:29
22fd829

NetToggle v1.0.30

What's Changed

  • Optimize NetToggle Root/Shizuku handling and QS tile performance by @Dhangofa in #1
  • Add app info, runtime version display, and developer links by @Dhangofa in #2
  • Prepare NetToggle for F-Droid and add app info UI by @Dhangofa in #4

Highlights

This release focuses on improving NetToggle’s reliability, Root/Shizuku permission handling, QS tile responsiveness, active SIM handling, and overall system resource usage.

Root/Shizuku mode handling

  • Fresh install no longer auto-selects Root mode.
  • Added explicit execution mode states:
    • No mode selected
    • Root mode
    • Shizuku mode
  • Root permission is now checked when Root mode is selected or restored.
  • Shizuku permission is requested only when the user selects Shizuku mode.
  • Saved Shizuku mode now checks status without automatically showing the permission popup.
  • Shizuku callbacks now update UI only when Shizuku mode is currently selected.
  • Added safer cleanup for Shizuku listeners when MainActivity is destroyed.
  • Added cleanup for active Root permission check process/thread when MainActivity is destroyed.
  • Prevented stale Root/Shizuku permission callbacks from updating UI after MainActivity closes.

QS tile performance improvements

  • Added proper network state constants instead of raw numeric state values.
  • Added unknown/setup tile state instead of assuming 4G Only on first install.
  • Cached generated QS tile icons to avoid recreating Bitmap/Icon objects on every tile update.
  • Added immediate Switching... tile feedback while a mode change is running.
  • Moved Root/Shizuku command execution off the QS tile click path.
  • Added background executor for network mode switching.
  • Added Android 7+ compatible main-thread UI update handling.
  • Added duplicate-tap protection to avoid queuing multiple toggle commands.
  • Tile state now updates only after command execution succeeds.
  • Previous tile state is preserved if Root/Shizuku command execution fails.

SIM and network mode handling

  • Removed hardcoded -s 0 behavior.
  • Added active data SIM detection using multi_sim_data_call.
  • Mapped active data SIM index to phone command index:
    • multi_sim_data_call=1cmd phone -s 0
    • multi_sim_data_call=2cmd phone -s 1
  • Added current mode detection using legacy preferred_network_mode1/2 values.
  • Added legacy mode ID mapping:
    • 11 → 4G Only
    • 23 → 5G Only
    • 33 → Preferred 5G
    • 9 → Preferred 4G
  • Current mode is read only when cached tile state is unknown, reducing unnecessary shell/Shizuku calls during normal QS panel refresh.

Resource usage improvements

  • Reduced unnecessary command execution when pulling down Quick Settings.
  • Reduced CPU overhead by using cached tile state during normal QS refresh.
  • Removed repeated Shizuku reflection lookup by caching the newProcess method.
  • Cached regex pattern used for legacy mode parsing.
  • Removed unused command result stderr storage.
  • Added process cleanup after Root/Shizuku command execution.

Adds a lightweight app info/developer section to the NetToggle configuration screen.

  • Show app title and runtime APK version.
  • Add developer section with person icon and developer name.
  • Add icon-only GitHub and Telegram links.
  • Use lightweight VectorDrawable icons.
  • Open GitHub/Telegram links externally using browser/app intent.
  • Keep UI changes isolated to MainActivity and activity_main.xml.
  • No QS tile behavior or background execution changes.

Notes

  • Root or Shizuku is required.
  • On fresh install, open the app and select either Root or Shizuku mode first.

Full Changelog: v1.0-2...v1.0.30