theme support on older devices
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:riverpod/riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'defaults.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
Color lightSeedColorFallback(Ref ref) => const Color(0xFF167C80);
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
Color darkSeedColorFallback(Ref ref) => const Color(0xFF167C80);
|
||||
@@ -0,0 +1,46 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'defaults.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$lightSeedColorFallbackHash() =>
|
||||
r'af151d3293d372f5df451aa8c3a75136377b6ce1';
|
||||
|
||||
/// See also [lightSeedColorFallback].
|
||||
@ProviderFor(lightSeedColorFallback)
|
||||
final lightSeedColorFallbackProvider = Provider<Color>.internal(
|
||||
lightSeedColorFallback,
|
||||
name: r'lightSeedColorFallbackProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$lightSeedColorFallbackHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef LightSeedColorFallbackRef = ProviderRef<Color>;
|
||||
String _$darkSeedColorFallbackHash() =>
|
||||
r'9418cf71e3d80c8a2142e0d3a8820989b29bff86';
|
||||
|
||||
/// See also [darkSeedColorFallback].
|
||||
@ProviderFor(darkSeedColorFallback)
|
||||
final darkSeedColorFallbackProvider = Provider<Color>.internal(
|
||||
darkSeedColorFallback,
|
||||
name: r'darkSeedColorFallbackProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$darkSeedColorFallbackHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef DarkSeedColorFallbackRef = ProviderRef<Color>;
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
||||
+24
-2
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:home_widget/home_widget.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:lensai/core/error_observer.dart';
|
||||
import 'package:lensai/core/providers/defaults.dart';
|
||||
import 'package:lensai/domain/services/app_initialization.dart';
|
||||
import 'package:lensai/features/user/domain/repositories/general_settings.dart';
|
||||
import 'package:lensai/presentation/hooks/on_initialization.dart';
|
||||
@@ -36,14 +37,35 @@ void main() async {
|
||||
|
||||
return DynamicColorBuilder(
|
||||
builder: (lightDynamic, darkDynamic) {
|
||||
ColorScheme lightColorScheme;
|
||||
ColorScheme darkColorScheme;
|
||||
|
||||
if (lightDynamic != null && darkDynamic != null) {
|
||||
// On Android S+ devices, use the provided dynamic color scheme.
|
||||
// (Recommended) Harmonize the dynamic color scheme' built-in semantic colors.
|
||||
lightColorScheme = lightDynamic.harmonized();
|
||||
|
||||
// Repeat for the dark color scheme.
|
||||
darkColorScheme = darkDynamic.harmonized();
|
||||
} else {
|
||||
// Otherwise, use fallback schemes.
|
||||
lightColorScheme = ColorScheme.fromSeed(
|
||||
seedColor: ref.read(lightSeedColorFallbackProvider),
|
||||
);
|
||||
darkColorScheme = ColorScheme.fromSeed(
|
||||
seedColor: ref.read(darkSeedColorFallbackProvider),
|
||||
brightness: Brightness.dark,
|
||||
);
|
||||
}
|
||||
|
||||
return MainApp(
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: lightDynamic?.harmonized(),
|
||||
colorScheme: lightColorScheme,
|
||||
),
|
||||
darkTheme: ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: darkDynamic?.harmonized(),
|
||||
colorScheme: darkColorScheme,
|
||||
),
|
||||
themeMode: themeMode,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user