Polish runtime stop, scan, and accessibility states#53
Open
poulcarlsen53 wants to merge 1 commit into
Open
Conversation
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.
What changed
This PR smooths out a few app-state and UI edges that are easy to hit during normal use:
stoppedevent when they are stopped from the foreground notification or QS tile, so the open app can immediately leave the connected/connecting state instead of waiting for the next refreshWhy
The previous runtime store was updated when a service stopped, but the live ViewModel only listened for log/ready/failed events. If a user stopped the connection from Android's notification action or QS tile while the app was open, the UI could keep showing a live connection.
The scanner had a similar lifecycle rough edge: quiet worker periods could leave the last state timestamp old enough to look stale, and resuming a fully processed scan kept the previous stopped/failed status even though there was no work left.
The accessibility changes are intentionally small and local. They keep the visual style compact, but give tap targets and screen-reader labels a bit more room to behave well with larger text and assistive tech.
Validation
./gradlew.bat :app:testDebugUnitTest --tests shop.whitedns.client.proxy.WhiteDnsProxyEventsTest --tests shop.whitedns.client.vpn.WhiteDnsVpnEventsTest --tests shop.whitedns.client.model.WhiteDnsModelsTest.completeResumeWithoutRemainingResolversMarksScanCompleted --tests shop.whitedns.client.scan.WhiteDnsScanServiceTest --no-daemon./gradlew.bat :app:assembleDebug --no-daemonI kept the validation focused here because the full Windows unit-test run still trips over the existing scan resolver line-ending issue that is handled separately.