From 45ca99c627e51b0b6b0b55e211788fa4cb0f1c70 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Tue, 26 Mar 2024 21:08:04 +0530 Subject: [PATCH] fix: Fixed issue with system color scheme on mobile --- packages/ui-services/src/Theme/ThemeManager.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/ui-services/src/Theme/ThemeManager.ts b/packages/ui-services/src/Theme/ThemeManager.ts index 946068733..6420fe92f 100644 --- a/packages/ui-services/src/Theme/ThemeManager.ts +++ b/packages/ui-services/src/Theme/ThemeManager.ts @@ -91,7 +91,7 @@ export class ThemeManager extends AbstractUIService { break } case ApplicationEvent.FeaturesAvailabilityChanged: { - this.handleFeaturesAvailabilityChanged() + this.handleFeaturesAvailabilityChanged().catch(console.error) break } case ApplicationEvent.Launched: { @@ -197,7 +197,7 @@ export class ThemeManager extends AbstractUIService { } } - private handleFeaturesAvailabilityChanged(): void { + private async handleFeaturesAvailabilityChanged() { let hasChange = false for (const theme of this.themesActiveInTheUI.asThemes()) { @@ -219,7 +219,10 @@ export class ThemeManager extends AbstractUIService { const shouldSetThemeAsPerColorScheme = this.preferences.getLocalValue(LocalPrefKey.UseSystemColorScheme, false) if (shouldSetThemeAsPerColorScheme) { - const prefersDarkColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches + let prefersDarkColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches + if (this.application.isNativeMobileWeb()) { + prefersDarkColorScheme = (await this.application.mobileDevice.getColorScheme()) === 'dark' + } hasChange = this.setThemeAsPerColorScheme(prefersDarkColorScheme) }