mirror of
https://github.com/immich-app/immich.git
synced 2025-08-11 09:16:31 -04:00
* chore: bump dart sdk to 3.8 * chore: make build * make pigeon * chore: format files --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
33 lines
1.1 KiB
Dart
33 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:dynamic_color/dynamic_color.dart';
|
|
|
|
import 'package:immich_mobile/theme/theme_data.dart';
|
|
|
|
abstract final class DynamicTheme {
|
|
const DynamicTheme._();
|
|
|
|
static ImmichTheme? _theme;
|
|
// Method to fetch dynamic system colors
|
|
static Future<void> fetchSystemPalette() async {
|
|
try {
|
|
final corePalette = await DynamicColorPlugin.getCorePalette();
|
|
if (corePalette != null) {
|
|
final primaryColor = corePalette.toColorScheme().primary;
|
|
debugPrint('dynamic_color: Core palette detected.');
|
|
|
|
// Some palettes do not generate surface container colors accurately,
|
|
// so we regenerate all colors using the primary color
|
|
_theme = ImmichTheme(
|
|
light: ColorScheme.fromSeed(seedColor: primaryColor, brightness: Brightness.light),
|
|
dark: ColorScheme.fromSeed(seedColor: primaryColor, brightness: Brightness.dark),
|
|
);
|
|
}
|
|
} catch (error) {
|
|
debugPrint('dynamic_color: Failed to obtain core palette: $error');
|
|
}
|
|
}
|
|
|
|
static ImmichTheme? get theme => _theme;
|
|
static bool get isAvailable => _theme != null;
|
|
}
|