♻️ Better current track metadata
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:groovybox/logic/audio_handler.dart';
|
||||
import 'package:groovybox/logic/metadata_service.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'audio_provider.g.dart';
|
||||
@@ -15,3 +16,19 @@ AudioHandler audioHandler(Ref ref) {
|
||||
void setAudioHandler(AudioHandler handler) {
|
||||
_audioHandler = handler;
|
||||
}
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
class CurrentTrackMetadataNotifier extends _$CurrentTrackMetadataNotifier {
|
||||
@override
|
||||
TrackMetadata? build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
void setMetadata(TrackMetadata metadata) {
|
||||
state = metadata;
|
||||
}
|
||||
|
||||
void clear() {
|
||||
state = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,3 +49,58 @@ final class AudioHandlerProvider
|
||||
}
|
||||
|
||||
String _$audioHandlerHash() => r'65fbd92e049fe4f3a0763516f1e68e1614f7630f';
|
||||
|
||||
@ProviderFor(CurrentTrackMetadataNotifier)
|
||||
const currentTrackMetadataProvider = CurrentTrackMetadataNotifierProvider._();
|
||||
|
||||
final class CurrentTrackMetadataNotifierProvider
|
||||
extends $NotifierProvider<CurrentTrackMetadataNotifier, TrackMetadata?> {
|
||||
const CurrentTrackMetadataNotifierProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'currentTrackMetadataProvider',
|
||||
isAutoDispose: false,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$currentTrackMetadataNotifierHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
CurrentTrackMetadataNotifier create() => CurrentTrackMetadataNotifier();
|
||||
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(TrackMetadata? value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
providerOverride: $SyncValueProvider<TrackMetadata?>(value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$currentTrackMetadataNotifierHash() =>
|
||||
r'0a491bd4edda2b010ed3d6f7dd459f4ac8689a5f';
|
||||
|
||||
abstract class _$CurrentTrackMetadataNotifier
|
||||
extends $Notifier<TrackMetadata?> {
|
||||
TrackMetadata? build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref = this.ref as $Ref<TrackMetadata?, TrackMetadata?>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<TrackMetadata?, TrackMetadata?>,
|
||||
TrackMetadata?,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user