Lyrics & sync with album color

This commit is contained in:
2024-08-28 18:41:32 +08:00
parent 289ea3ce40
commit 70039a4901
13 changed files with 455 additions and 38 deletions

View File

@ -4,6 +4,7 @@ import 'package:get/get.dart';
import 'package:palette_generator/palette_generator.dart';
import 'package:rhythm_box/providers/audio_player.dart';
import 'package:rhythm_box/providers/history.dart';
import 'package:rhythm_box/providers/palette.dart';
import 'package:rhythm_box/providers/scrobbler.dart';
import 'package:rhythm_box/providers/skip_segments.dart';
import 'package:rhythm_box/providers/user_preferences.dart';
@ -16,7 +17,6 @@ import 'package:rhythm_box/widgets/auto_cache_image.dart';
class AudioPlayerStreamProvider extends GetxController {
late final AudioServices notificationService;
final Rxn<PaletteGenerator?> palette = Rxn<PaletteGenerator?>();
List<StreamSubscription>? _subscriptions;
@ -58,9 +58,7 @@ class AudioPlayerStreamProvider extends GetxController {
Future<void> updatePalette() async {
if (!Get.find<UserPreferencesProvider>().state.value.albumColorSync) {
if (palette.value != null) {
palette.value = null;
}
Get.find<PaletteProvider>().clear();
return;
}
@ -74,7 +72,7 @@ class AudioPlayerStreamProvider extends GetxController {
(activeTrack.album?.images).asUrlString()!,
),
);
palette.value = newPalette;
Get.find<PaletteProvider>().updatePalette(newPalette);
}
}

View File

@ -1,3 +1,4 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:palette_generator/palette_generator.dart';
@ -6,6 +7,17 @@ class PaletteProvider extends GetxController {
void updatePalette(PaletteGenerator? newPalette) {
palette.value = newPalette;
print('call update!');
print(newPalette);
if (newPalette != null) {
Get.changeTheme(
ThemeData.from(
colorScheme:
ColorScheme.fromSeed(seedColor: newPalette.dominantColor!.color),
useMaterial3: true,
),
);
}
}
void clear() {