mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-02-03 23:52:52 +00:00
53 lines
1.6 KiB
Dart
53 lines
1.6 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
import 'package:spotube/models/metadata/metadata.dart';
|
|
import 'package:spotube/provider/metadata_plugin/metadata_plugin_provider.dart';
|
|
|
|
final metadataPluginUpdateCheckerProvider =
|
|
FutureProvider<PluginUpdateAvailable?>((ref) async {
|
|
try {
|
|
final metadataPluginConfigs =
|
|
await ref.watch(metadataPluginsProvider.future);
|
|
final metadataPlugin = await ref.watch(metadataPluginProvider.future);
|
|
|
|
if (metadataPlugin == null ||
|
|
metadataPluginConfigs.defaultMetadataPluginConfig == null) {
|
|
return null;
|
|
}
|
|
|
|
final res = await metadataPlugin.core.checkUpdate(
|
|
pluginConfig: metadataPluginConfigs.defaultMetadataPluginConfig!,
|
|
mpscTx: metadataPlugin.sender,
|
|
);
|
|
|
|
return res;
|
|
} catch (e) {
|
|
debugPrint('Error checking metadata plugin update: $e');
|
|
rethrow;
|
|
}
|
|
});
|
|
|
|
final audioSourcePluginUpdateCheckerProvider =
|
|
FutureProvider<PluginUpdateAvailable?>((ref) async {
|
|
try {
|
|
final audioSourcePluginConfigs =
|
|
await ref.watch(metadataPluginsProvider.future);
|
|
final audioSourcePlugin = await ref.watch(audioSourcePluginProvider.future);
|
|
|
|
if (audioSourcePlugin == null ||
|
|
audioSourcePluginConfigs.defaultAudioSourcePluginConfig == null) {
|
|
return null;
|
|
}
|
|
|
|
final res = await audioSourcePlugin.core.checkUpdate(
|
|
pluginConfig: audioSourcePluginConfigs.defaultAudioSourcePluginConfig!,
|
|
mpscTx: audioSourcePlugin.sender,
|
|
);
|
|
|
|
return res;
|
|
} catch (e) {
|
|
debugPrint('Error checking audio source plugin update: $e');
|
|
rethrow;
|
|
}
|
|
});
|