Repository navigation
Support Dynamic theme for Android 11 and below - #2845
cuong-tran wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extends dynamic theme (Monet) support to Android 11 and below by leveraging the MaterialKolor library instead of relying solely on native Android 12+ dynamic color APIs. The changes also switch the palette style from Expressive to TonalSpot for better consistency with other theme styles.
- Removes SDK version checks that previously restricted Monet theme to Android 12+
- Changes default theme to Monet for all devices with appropriate fallbacks
- Switches MaterialKolor palette style from Expressive to TonalSpot
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| DeviceUtilExtensions.kt | Deleted file containing dynamic color availability check that is no longer needed |
| MonetColorScheme.kt | Updated palette style from Expressive to TonalSpot for MaterialKolor-based color scheme generation |
| AppThemePreferenceWidget.kt | Removed dynamic color availability filter to show Monet theme option on all Android versions |
| UiPreferences.kt | Simplified default theme preference to always use Monet (with fallbacks for older devices) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
How does this magically make it available? Also, what on earth is that new thing? Expressive is just M3's next cursed evolution, but I've never heard of this. |
It (Monet for older Android) was added long ago, and recently made change to use of MateralKolor with these commit: I simply remove the old condition guarding the use of Monet theme with SDK below Android 11. |
|
When was Monet made available for older Android versions? Doesn't that depend on literal system functions that don't exist in the older versions? Also, that doesn't answer my question about TonalSpot. What does that do? Does it affect the components in some way? Do they look different? |
MaterialKolor is what making Monet supported on older Android version by providing the missing system alternative functions. MaterialKolor provides various styles to use when generating its theme palette color, such as TonalSpot, Rainbow, Expressive... |
I see. Why the switch to TonalSpot then? And again, what impact does that have on the components visually? |
|
Tested on my build in Android 11, works very well! |

Antsy added MaterialKolor which allows using Monet theme on Android 11 and below but forgot to remove the guarding condition to allow user to select it.
Also switch style to TonalSpot instead of Expressive for more relevant to other theme style.
Demo SS on Android 11: