mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-20 18:09:30 +00:00
basic audiobook player
This commit is contained in:
parent
097caf8ec2
commit
610d9a2aa0
26 changed files with 458 additions and 110 deletions
|
|
@ -37,7 +37,7 @@ AudiobookshelfApi audiobookshelfApi(AudiobookshelfApiRef ref, Uri? baseUrl) {
|
|||
/// get the api instance for the authenticated user
|
||||
///
|
||||
/// if the user is not authenticated throw an error
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
AudiobookshelfApi authenticatedApi(AuthenticatedApiRef ref) {
|
||||
final apiSettings = ref.watch(apiSettingsProvider);
|
||||
final user = apiSettings.activeUser;
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ class _AudiobookshelfApiProviderElement
|
|||
Uri? get baseUrl => (origin as AudiobookshelfApiProvider).baseUrl;
|
||||
}
|
||||
|
||||
String _$authenticatedApiHash() => r'62213d5d0268eeaa2a16211cd60b1b6f0d19dd40';
|
||||
String _$authenticatedApiHash() => r'd99ea87b21dfb63b5f6fed8f79e835af42f2296f';
|
||||
|
||||
/// get the api instance for the authenticated user
|
||||
///
|
||||
|
|
@ -176,8 +176,7 @@ String _$authenticatedApiHash() => r'62213d5d0268eeaa2a16211cd60b1b6f0d19dd40';
|
|||
///
|
||||
/// Copied from [authenticatedApi].
|
||||
@ProviderFor(authenticatedApi)
|
||||
final authenticatedApiProvider =
|
||||
AutoDisposeProvider<AudiobookshelfApi>.internal(
|
||||
final authenticatedApiProvider = Provider<AudiobookshelfApi>.internal(
|
||||
authenticatedApi,
|
||||
name: r'authenticatedApiProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
|
|
@ -187,7 +186,7 @@ final authenticatedApiProvider =
|
|||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef AuthenticatedApiRef = AutoDisposeProviderRef<AudiobookshelfApi>;
|
||||
typedef AuthenticatedApiRef = ProviderRef<AudiobookshelfApi>;
|
||||
String _$isServerAliveHash() => r'f839350795fbdeb0ca1d5f0c84a9065cac4dd40a';
|
||||
|
||||
/// ping the server to check if it is reachable
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import 'package:whispering_pages/db/cache_manager.dart';
|
|||
|
||||
part 'image_provider.g.dart';
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class CoverImage extends _$CoverImage {
|
||||
@override
|
||||
Stream<Uint8List> build(LibraryItem libraryItem) async* {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'image_provider.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$coverImageHash() => r'3f4ef56a2539dd2082e7de55098bed8876098e9f';
|
||||
String _$coverImageHash() => r'fa97592576b5450053066fcd644f2b5c30d3a5bc';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
@ -29,8 +29,7 @@ class _SystemHash {
|
|||
}
|
||||
}
|
||||
|
||||
abstract class _$CoverImage
|
||||
extends BuildlessAutoDisposeStreamNotifier<Uint8List> {
|
||||
abstract class _$CoverImage extends BuildlessStreamNotifier<Uint8List> {
|
||||
late final LibraryItem libraryItem;
|
||||
|
||||
Stream<Uint8List> build(
|
||||
|
|
@ -82,7 +81,7 @@ class CoverImageFamily extends Family<AsyncValue<Uint8List>> {
|
|||
|
||||
/// See also [CoverImage].
|
||||
class CoverImageProvider
|
||||
extends AutoDisposeStreamNotifierProviderImpl<CoverImage, Uint8List> {
|
||||
extends StreamNotifierProviderImpl<CoverImage, Uint8List> {
|
||||
/// See also [CoverImage].
|
||||
CoverImageProvider(
|
||||
LibraryItem libraryItem,
|
||||
|
|
@ -138,8 +137,7 @@ class CoverImageProvider
|
|||
}
|
||||
|
||||
@override
|
||||
AutoDisposeStreamNotifierProviderElement<CoverImage, Uint8List>
|
||||
createElement() {
|
||||
StreamNotifierProviderElement<CoverImage, Uint8List> createElement() {
|
||||
return _CoverImageProviderElement(this);
|
||||
}
|
||||
|
||||
|
|
@ -157,13 +155,13 @@ class CoverImageProvider
|
|||
}
|
||||
}
|
||||
|
||||
mixin CoverImageRef on AutoDisposeStreamNotifierProviderRef<Uint8List> {
|
||||
mixin CoverImageRef on StreamNotifierProviderRef<Uint8List> {
|
||||
/// The parameter `libraryItem` of this provider.
|
||||
LibraryItem get libraryItem;
|
||||
}
|
||||
|
||||
class _CoverImageProviderElement
|
||||
extends AutoDisposeStreamNotifierProviderElement<CoverImage, Uint8List>
|
||||
extends StreamNotifierProviderElement<CoverImage, Uint8List>
|
||||
with CoverImageRef {
|
||||
_CoverImageProviderElement(super.provider);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@ class LibraryItem extends _$LibraryItem {
|
|||
);
|
||||
yield cachedItem;
|
||||
}
|
||||
final item = await api.items.get(libraryItemId: id);
|
||||
final item = await api.items.get(
|
||||
libraryItemId: id,
|
||||
parameters: const shelfsdk.GetItemReqParams(expanded: true),
|
||||
);
|
||||
if (item != null) {
|
||||
// save to cache
|
||||
final newFile = await apiResponseCacheManager.putFile(
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'library_item_provider.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$libraryItemHash() => r'c7919065062e066a0d086508ca6c44187b0bc257';
|
||||
String _$libraryItemHash() => r'ce6222e417b43dceed9ea7e5a8b43782755fc117';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue