diff --git a/auth/lib/theme/colors.dart b/auth/lib/theme/colors.dart index 278c00777b..ccaaa869d1 100644 --- a/auth/lib/theme/colors.dart +++ b/auth/lib/theme/colors.dart @@ -70,6 +70,8 @@ class EnteColorScheme { final Color gradientButtonBgColor; final List gradientButtonBgColors; + bool get isLightTheme => backgroundBase == backgroundBaseLight; + const EnteColorScheme( this.backgroundBase, this.backgroundElevated, diff --git a/auth/lib/theme/ente_theme.dart b/auth/lib/theme/ente_theme.dart index e03ac38e91..1b81f1fceb 100644 --- a/auth/lib/theme/ente_theme.dart +++ b/auth/lib/theme/ente_theme.dart @@ -45,6 +45,8 @@ EnteColorScheme getEnteColorScheme( : Theme.of(context).colorScheme.enteTheme.colorScheme; } + + EnteTextTheme getEnteTextTheme( BuildContext context, { bool inverse = false, diff --git a/auth/lib/ui/home_page.dart b/auth/lib/ui/home_page.dart index 6ec39f1e2d..f958e0a2d8 100644 --- a/auth/lib/ui/home_page.dart +++ b/auth/lib/ui/home_page.dart @@ -19,6 +19,7 @@ import 'package:ente_auth/services/preference_service.dart'; import 'package:ente_auth/services/user_service.dart'; import 'package:ente_auth/store/code_display_store.dart'; import 'package:ente_auth/store/code_store.dart'; +import 'package:ente_auth/theme/ente_theme.dart'; import 'package:ente_auth/theme/text_style.dart'; import 'package:ente_auth/ui/account/logout_dialog.dart'; import 'package:ente_auth/ui/code_error_widget.dart'; @@ -36,6 +37,7 @@ import 'package:ente_auth/ui/settings_page.dart'; import 'package:ente_auth/ui/sort_option_menu.dart'; import 'package:ente_auth/ui/tools/app_lock.dart'; import 'package:ente_auth/utils/dialog_util.dart'; +import 'package:ente_auth/utils/lock_screen_settings.dart'; import 'package:ente_auth/utils/platform_util.dart'; import 'package:ente_auth/utils/totp_util.dart'; import 'package:file_picker/file_picker.dart'; @@ -360,6 +362,8 @@ class _HomePageState extends State { @override Widget build(BuildContext context) { + LockScreenSettings.instance + .setLightMode(getEnteColorScheme(context).isLightTheme); final l10n = context.l10n; isCompactMode = PreferenceService.instance.isCompactMode(); diff --git a/auth/lib/utils/lock_screen_settings.dart b/auth/lib/utils/lock_screen_settings.dart index dea1f9e3d2..14a3579c7d 100644 --- a/auth/lib/utils/lock_screen_settings.dart +++ b/auth/lib/utils/lock_screen_settings.dart @@ -4,6 +4,7 @@ import "dart:typed_data"; import "package:ente_auth/core/configuration.dart"; import "package:ente_auth/utils/platform_util.dart"; import "package:ente_crypto_dart/ente_crypto_dart.dart"; +import "package:flutter/material.dart"; import "package:flutter_secure_storage/flutter_secure_storage.dart"; import "package:privacy_screen/privacy_screen.dart"; import "package:shared_preferences/shared_preferences.dart"; @@ -24,6 +25,7 @@ class LockScreenSettings { static const keyHasMigratedLockScreenChanges = "ls_has_migrated_lock_screen_changes"; static const keyShowOfflineModeWarning = "ls_show_offline_mode_warning"; + static const String kIsLightMode = "is_light_mode"; final List autoLockDurations = const [ Duration(milliseconds: 650), @@ -74,18 +76,30 @@ class LockScreenSettings { await _preferences.setBool(keyHasMigratedLockScreenChanges, true); } + Future setLightMode(bool isLightMode) async { + if (isLightMode != (_preferences.getBool(kIsLightMode) ?? true)) { + await _preferences.setBool(kIsLightMode, isLightMode); + } + } + Future setHideAppContent(bool hideContent) async { if (PlatformUtil.isDesktop()) return; + final bool isLightMode = _preferences.getBool(kIsLightMode) ?? true; !hideContent ? PrivacyScreen.instance.disable() : await PrivacyScreen.instance.enable( iosOptions: const PrivacyIosOptions( enablePrivacy: true, + privacyImageName: 'LaunchImage', ), androidOptions: const PrivacyAndroidOptions( enableSecure: true, ), - blurEffect: PrivacyBlurEffect.extraLight, + backgroundColor: + isLightMode ? const Color(0xffffffff) : const Color(0xff000000), + blurEffect: isLightMode + ? PrivacyBlurEffect.extraLight + : PrivacyBlurEffect.extraLight, ); await _preferences.setBool(keyHideAppContent, hideContent); }