material-foundation / material-foundation/flutter-packages
Listen to platform color changes
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 863
- Forks
- 175
- PR merge metrics
- No merged PRs in 30d
Description
Reading from Linux, macOS and Windows color accents happened on material-foundation/material-dynamic-color-flutter#42 and material-foundation/material-dynamic-color-flutter#43 and they work fine but they aren't responsive to OS changes. There are ways to get notified about OS changes and update colorings:
- Windows https://github.com/flutter/engine/pull/28131/files#diff-216c47499300810cf6eed53eca4e9cfe09aefa5b8c96b85f5a93e5caf3557378R61-R64
WM_DWMCOLORIZATIONCOLORCHANGEDsee also https://stackoverflow.com/q/65155419 - macOS https://github.com/flutter/engine/blob/2321e302428ffc0904e5f0050910511438e11de2/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm#L535-L555
- Linux TBD
What do you suggest here, to reimplement the logic here, or, make flutter engine to take those into account among their other offerings such as whether system is in dark mode. And how the Android one works, listening for onResume to reread from the platform?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing color-reading work referenced in material-foundation/material-dynamic-color-flutter#42 and #43. Compare the Windows WM_DWMCOLORIZATIONCOLORCHANGED and macOS FlutterEngine references, then check how Android rereads colors on onResume. Done requires an agreed approach for responsive updates, including the unresolved Linux path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, linux, macos
- Domain
- desktop-dev, frontend, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100