feat: Add dark mode and theming options to app settings page

This commit is contained in:
Dr-Blank 2024-05-11 04:46:17 -04:00
parent 3ecdaadc3f
commit 1609fe9d65
No known key found for this signature in database
GPG key ID: 7452CC63F210A266
4 changed files with 42 additions and 10 deletions

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:whispering_pages/api/image_provider.dart';
@ -6,15 +7,38 @@ import 'package:whispering_pages/api/image_provider.dart';
part 'theme_from_cover_provider.g.dart';
@riverpod
FutureOr<ColorScheme> themeFromCover(
Future<FutureOr<ColorScheme?>> themeFromCover(
ThemeFromCoverRef ref,
ImageProvider<Object> img, {
Brightness brightness = Brightness.dark,
}) {
}) async {
// add deliberate delay to simulate a long running task
await Future.delayed(200.ms);
return ColorScheme.fromImageProvider(
provider: img,
brightness: brightness,
);
// TODO isolate is not working
// see https://github.com/flutter/flutter/issues/119207
// use isolate to generate the color scheme
// RootIsolateToken? token = RootIsolateToken.instance;
// final scheme = await Isolate.run(
// () async {
// debugPrint('Isolate running ${Isolate.current.debugName}');
// try {
// BackgroundIsolateBinaryMessenger.ensureInitialized(token!);
// WidgetsFlutterBinding.ensureInitialized();
// return await ColorScheme.fromImageProvider(
// provider: img,
// brightness: brightness,
// );
// } catch (e) {
// debugPrint('Error in isolate: $e');
// return null;
// }
// },
// );
// return scheme;
}
@riverpod