[auth] Fix privacy screen color for dark mode (#4696)

## Description

## Tests
This commit is contained in:
Neeraj
2025-01-13 15:52:03 +05:30
committed by GitHub
parent 3999115b3a
commit 08e05d513f
4 changed files with 23 additions and 1 deletions

View File

@@ -70,6 +70,8 @@ class EnteColorScheme {
final Color gradientButtonBgColor;
final List<Color> gradientButtonBgColors;
bool get isLightTheme => backgroundBase == backgroundBaseLight;
const EnteColorScheme(
this.backgroundBase,
this.backgroundElevated,

View File

@@ -45,6 +45,8 @@ EnteColorScheme getEnteColorScheme(
: Theme.of(context).colorScheme.enteTheme.colorScheme;
}
EnteTextTheme getEnteTextTheme(
BuildContext context, {
bool inverse = false,

View File

@@ -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<HomePage> {
@override
Widget build(BuildContext context) {
LockScreenSettings.instance
.setLightMode(getEnteColorScheme(context).isLightTheme);
final l10n = context.l10n;
isCompactMode = PreferenceService.instance.isCompactMode();

View File

@@ -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<Duration> autoLockDurations = const [
Duration(milliseconds: 650),
@@ -74,18 +76,30 @@ class LockScreenSettings {
await _preferences.setBool(keyHasMigratedLockScreenChanges, true);
}
Future<void> setLightMode(bool isLightMode) async {
if (isLightMode != (_preferences.getBool(kIsLightMode) ?? true)) {
await _preferences.setBool(kIsLightMode, isLightMode);
}
}
Future<void> 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);
}