feat: enhance theme management by integrating theme selection based on audiobook playback

This commit is contained in:
Dr-Blank 2024-10-05 08:48:19 -04:00
parent db85a76c0b
commit 37f775a79a
No known key found for this signature in database
GPG key ID: 7452CC63F210A266

View file

@ -9,13 +9,14 @@ import 'package:vaani/features/logging/core/logger.dart';
import 'package:vaani/features/playback_reporting/providers/playback_reporter_provider.dart'; import 'package:vaani/features/playback_reporting/providers/playback_reporter_provider.dart';
import 'package:vaani/features/player/core/init.dart'; import 'package:vaani/features/player/core/init.dart';
import 'package:vaani/features/player/providers/audiobook_player.dart' import 'package:vaani/features/player/providers/audiobook_player.dart'
show simpleAudiobookPlayerProvider; show audiobookPlayerProvider, simpleAudiobookPlayerProvider;
import 'package:vaani/features/shake_detection/providers/shake_detector.dart'; import 'package:vaani/features/shake_detection/providers/shake_detector.dart';
import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart'; import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart';
import 'package:vaani/router/router.dart'; import 'package:vaani/router/router.dart';
import 'package:vaani/settings/api_settings_provider.dart'; import 'package:vaani/settings/api_settings_provider.dart';
import 'package:vaani/settings/app_settings_provider.dart'; import 'package:vaani/settings/app_settings_provider.dart';
import 'package:vaani/theme/providers/system_them_provider.dart'; import 'package:vaani/theme/providers/system_them_provider.dart';
import 'package:vaani/theme/providers/theme_from_cover_provider.dart';
import 'package:vaani/theme/theme.dart'; import 'package:vaani/theme/theme.dart';
final appLogger = Logger('vaani'); final appLogger = Logger('vaani');
@ -73,7 +74,6 @@ class MyApp extends ConsumerWidget {
} }
if (themeSettings.useMaterialThemeFromSystem) { if (themeSettings.useMaterialThemeFromSystem) {
appLogger.info('Using theme from system');
var themes = var themes =
ref.watch(systemThemeProvider(highContrast: shouldUseHighContrast)); ref.watch(systemThemeProvider(highContrast: shouldUseHighContrast));
if (themes.valueOrNull != null) { if (themes.valueOrNull != null) {
@ -82,12 +82,29 @@ class MyApp extends ConsumerWidget {
} }
} }
// AudiobookPlayer? player; if (themeSettings.useMaterialThemeOfPlayingItem) {
final player = ref.watch(audiobookPlayerProvider);
// if (themeSettings.useMaterialThemeOfPlayingItem) { if (player.book != null) {
// appLogger.info('Using theme from playing item'); final themeLight = ref.watch(
// player = ref.watch(audiobookPlayerProvider); themeOfLibraryItemProvider(
// } player.book!.libraryItemId,
highContrast: shouldUseHighContrast,
brightness: Brightness.light,
),
);
final themeDark = ref.watch(
themeOfLibraryItemProvider(
player.book!.libraryItemId,
highContrast: shouldUseHighContrast,
brightness: Brightness.dark,
),
);
if (themeLight.valueOrNull != null && themeDark.valueOrNull != null) {
lightColorScheme = themeLight.valueOrNull!;
darkColorScheme = themeDark.valueOrNull!;
}
}
}
final appThemeLight = ThemeData( final appThemeLight = ThemeData(
useMaterial3: true, useMaterial3: true,
colorScheme: lightColorScheme.harmonized(), colorScheme: lightColorScheme.harmonized(),