mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05: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;
 | 
						|
}
 |