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:home_widget/home_widget.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:lensai/core/error_observer.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/domain/services/app_initialization.dart';
|
||||||
import 'package:lensai/features/user/domain/repositories/general_settings.dart';
|
import 'package:lensai/features/user/domain/repositories/general_settings.dart';
|
||||||
import 'package:lensai/presentation/hooks/on_initialization.dart';
|
import 'package:lensai/presentation/hooks/on_initialization.dart';
|
||||||
@@ -36,14 +37,35 @@ void main() async {
|
|||||||
|
|
||||||
return DynamicColorBuilder(
|
return DynamicColorBuilder(
|
||||||
builder: (lightDynamic, darkDynamic) {
|
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(
|
return MainApp(
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
useMaterial3: true,
|
useMaterial3: true,
|
||||||
colorScheme: lightDynamic?.harmonized(),
|
colorScheme: lightColorScheme,
|
||||||
),
|
),
|
||||||
darkTheme: ThemeData(
|
darkTheme: ThemeData(
|
||||||
useMaterial3: true,
|
useMaterial3: true,
|
||||||
colorScheme: darkDynamic?.harmonized(),
|
colorScheme: darkColorScheme,
|
||||||
),
|
),
|
||||||
themeMode: themeMode,
|
themeMode: themeMode,
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user