Add runtime appearance overrides without restarting the app - #412
Closed
jeremyfrancis55 wants to merge 1 commit into
Closed
Add runtime appearance overrides without restarting the app#412jeremyfrancis55 wants to merge 1 commit into
jeremyfrancis55 wants to merge 1 commit into
Conversation
Author
|
I realized I can just store the logged in credentials in secure storage.. |
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
System::setAppearance()forlight,dark, andsystemapp-local overridesSystem.SetAppearancebridge functionsSystem.GetAppearancewithout recreatingMainActivityProblem
Using Android's normal day/night delegate recreates the activity so Compose picks up the new theme. In a NativePHP app that also restarts the PHP host and can clear the authenticated runtime session, making an in-app light/dark toggle appear to log the user out. Updating only system bars avoids the restart but leaves Compose/native renderers on the old palette.
This change applies the override as snapshot state instead. Compose recomposes in place, the PID and PHP runtime remain alive, and
AppearanceChangedstill reaches PHP. iOS uses the existing window-leveloverrideUserInterfaceStylemechanism.Testing
:app:assembleDebug: pass in a NativePHP app using these templatesCompanion PR
NativePHP/mobile-ui#84 updates every Android plugin renderer to consume the shared state: NativePHP/mobile-ui#84