v1.0.30
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 0behavior. - Added active data SIM detection using
multi_sim_data_call. - Mapped active data SIM index to phone command index:
multi_sim_data_call=1→cmd phone -s 0multi_sim_data_call=2→cmd phone -s 1
- Added current mode detection using legacy
preferred_network_mode1/2values. - Added legacy mode ID mapping:
11→ 4G Only23→ 5G Only33→ Preferred 5G9→ 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
newProcessmethod. - 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