Conversation
…NetworkTileService - Removed SIM resolution and telephony shell-command construction from NetworkTileService. - Updated NetworkTileService to coordinate the modular telephony components. - Preserved existing Target SIM, readback, switching, cache, label, icon, and Auto SIM error behavior.
- Added a dedicated Quick Tile Cycle card. - Added mode selectors for 5G Only, 4G Only, Preferred 5G, and Preferred 4G. - Added selected-mode count display. - Added a live preview of the configured cycle order. - Reused the existing card, control, border, text, and brand styling. - Kept the cycle card in a separate reusable layout resource.
- Added a dedicated Quick Tile Cycle card. - Added mode selectors for 5G Only, 4G Only, Preferred 5G, and Preferred 4G. - Added selected-mode count display. - Added a live preview of the configured cycle order. - Reused the existing card, control, border, text, and brand styling. - Kept the cycle card in a separate reusable layout resource.
- Added TileCycleUiController to keep cycle-selection logic out of MainActivity. - Connected each cycle selector to its corresponding NetworkMode. - Refreshed selector states from the saved ordered cycle. - Blocked selections above the three-mode maximum. - Blocked removals below the two-mode minimum. - Restored the previous checkbox state after an invalid selection attempt. - Added user feedback for minimum and maximum selection limits. - Updated the selected count and cycle-order preview after each valid change.
- Initialized TileCycleManager from the shared AppPreferences instance. - Initialized TileCycleUiController after the activity layout and views were ready. - Kept cycle configuration logic outside MainActivity. - Preserved existing Root, Shizuku, Target SIM, warning, link, and lifecycle behavior.
- Initialized TileCycleManager inside NetworkTileService. - Replaced the fixed four-mode cycle with the saved user-configured cycle. - Used the first configured mode when the current state is not part of the selected cycle. - Updated the unknown-state tile label to show the first configured target mode. - Preserved command execution, SIM resolution, readback, caching, icons, and switching-state behavior.
- Added the reusable Quick Tile Cycle card to the main app layout. - Positioned the cycle configuration below the Execution Mode and Target SIM controls. - Kept the Developer card below the new cycle section. - Reused the existing spacing and card styling.
- Added a current-state check before applying asynchronous network mode readback. - Ignored stale readback callbacks after a successful tile operation. - Removed the redundant unknown-state UI update from failed readback. - Prevented the configured first-mode prompt from overriding the active tile label. - Preserved normal readback behavior when the cached state is still unknown.
…ication manifest
- Activated the custom NoActionBar theme through the application manifest. - Removed framework ActionBar initialization from MainActivity. - Removed the ActionBar-hosted version pill and title styling. - Removed unused ActionBar-specific imports. - Retained app version lookup for a future in-layout version display. - Preserved status bar styling and all existing app behavior.
- New Button added - Developer card minimize - App version added
- Restore all six IDs expected by TileCycleUiController. - Use CheckBox, not static TextView, for cycle options.
- Reduced excessive spacing in the header and Quick Settings hint. - Added consistent 12dp spacing between primary cards. - Reduced outer horizontal and bottom padding for a more compact layout. - Refined title, version pill, and description spacing. - Added consistent minimum heights to segmented controls. - Removed redundant Developer card top margin. - Preserved the existing responsive ScrollView layout and visual hierarchy.
- Fixed the active QS tile label to display the current network mode. - Limited the “Tap to Set” prompt to the unknown tile state. - Kept the first configured cycle mode as the unknown-state target. - Preserved dynamic icons, configured cycle order, caching, and asynchronous readback protection.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR completes Phase 4 of the NetToggle update by adding a configurable Quick Settings tile cycle and refreshing the main app interface.
Users can now choose an ordered cycle of two or three network modes. The selected order is preserved and used directly by the Quick Settings tile.
The update also removes the framework ActionBar, moves the app version into the main header, introduces compact segmented controls, and improves the overall light and dark theme presentation.
Configurable Quick Tile Cycle
Quick Settings Tile Updates
Tap to Setprompt to unknown tile states.Main UI Refresh
NoActionBarthemes.New Files
cycle/TileCycleManager.javaui/TileCycleUiController.javares/layout/view_tile_cycle_card.xmlres/drawable/ic_refresh.xmlres/drawable/selector_segmented_tab.xmlres/drawable/shape_segmented_container.xmlres/color/color_segmented_text.xmlUpdated Files
config/AppPreferences.javaMainActivity.javaNetworkTileService.javaactivity_main.xmlAndroidManifest.xmlBehavior Preserved