basic audiobook player

This commit is contained in:
Dr-Blank 2024-05-14 06:13:16 -04:00
parent 097caf8ec2
commit 610d9a2aa0
No known key found for this signature in database
GPG key ID: 7452CC63F210A266
26 changed files with 458 additions and 110 deletions

View file

@ -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;

View file

@ -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

View file

@ -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* {

View file

@ -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);

View file

@ -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(

View file

@ -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 {