diff --git a/lib/features/explore/view/explore_page.dart b/lib/features/explore/view/explore_page.dart index 617e40e..7d0c2be 100644 --- a/lib/features/explore/view/explore_page.dart +++ b/lib/features/explore/view/explore_page.dart @@ -62,8 +62,8 @@ class MySearchBar extends HookConsumerWidget { currentQuery = query; // In a real application, there should be some error handling here. - final options = - await api.libraries.search(libraryId: settings.activeLibraryId!, query: query, limit: 3); + final options = await api.libraries + .search(libraryId: settings.activeLibraryId!, query: query, limit: 3); // If another search happened after this one, throw away these options. if (currentQuery != query) { @@ -82,7 +82,8 @@ class MySearchBar extends HookConsumerWidget { dividerColor: Colors.transparent, builder: (context, controller) { return SearchBar( - constraints: const BoxConstraints(minWidth: 360.0, maxWidth: 1050.0, minHeight: 56.0), + constraints: const BoxConstraints( + minWidth: 360.0, maxWidth: 1050.0, minHeight: 56.0), controller: controller, focusNode: searchBarFocusNode, // "What's your next page-turner?" @@ -99,7 +100,10 @@ class MySearchBar extends HookConsumerWidget { // opacity: 0.5 for the hint text hintStyle: WidgetStatePropertyAll( Theme.of(context).textTheme.bodyMedium!.copyWith( - color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.5), + color: Theme.of(context) + .colorScheme + .onSurface + .withValues(alpha: 0.5), ), ), textInputAction: TextInputAction.search, @@ -232,8 +236,9 @@ class BookSearchResultMini extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final item = ref.watch(libraryItemProvider(book.libraryItemId)).valueOrNull; - final image = - item == null ? const AsyncValue.loading() : ref.watch(coverImageProvider(item.id)); + final image = item == null + ? const AsyncValue.loading() + : ref.watch(coverImageProvider(item.id)); return ListTile( leading: SizedBox( width: 50, diff --git a/lib/features/player/view/audiobook_player.dart b/lib/features/player/view/audiobook_player.dart index a092f23..5180874 100644 --- a/lib/features/player/view/audiobook_player.dart +++ b/lib/features/player/view/audiobook_player.dart @@ -31,7 +31,8 @@ class AudiobookPlayer extends HookConsumerWidget { if (currentBook == null) { return const SizedBox.shrink(); } - final itemBeingPlayed = ref.watch(libraryItemProvider(currentBook.libraryItemId)); + final itemBeingPlayed = + ref.watch(libraryItemProvider(currentBook.libraryItemId)); final player = ref.watch(audiobookPlayerProvider); final imageOfItemBeingPlayed = itemBeingPlayed.valueOrNull != null ? ref.watch( @@ -64,7 +65,8 @@ class AudiobookPlayer extends HookConsumerWidget { themeOfLibraryItemProvider( itemBeingPlayed.valueOrNull?.id, brightness: Theme.of(context).brightness, - highContrast: appSettings.themeSettings.highContrast || MediaQuery.of(context).highContrast, + highContrast: appSettings.themeSettings.highContrast || + MediaQuery.of(context).highContrast, ), ); @@ -86,7 +88,8 @@ class AudiobookPlayer extends HookConsumerWidget { onDragDown: (percentage) async { // preferred volume // set volume to 0 when dragging down - await player.setVolume(preferredVolume * (1 - percentage.clamp(0, .75))); + await player + .setVolume(preferredVolume * (1 - percentage.clamp(0, .75))); }, minHeight: playerMinHeight, // subtract the height of notches and other system UI @@ -106,8 +109,10 @@ class AudiobookPlayer extends HookConsumerWidget { // at what point should the player switch from miniplayer to expanded player // also at this point the image should be at its max size and in the center of the player final miniplayerPercentageDeclaration = - (maxImgSize - playerMinHeight) / (playerMaxHeight - playerMinHeight); - final bool isFormMiniplayer = percentage < miniplayerPercentageDeclaration; + (maxImgSize - playerMinHeight) / + (playerMaxHeight - playerMinHeight); + final bool isFormMiniplayer = + percentage < miniplayerPercentageDeclaration; if (!isFormMiniplayer) { // this calculation needs a refactor @@ -207,14 +212,17 @@ class AudiobookChapterProgressBar extends HookConsumerWidget { // now find the chapter that corresponds to the current time // and calculate the progress of the current chapter - final currentChapterProgress = - currentChapter == null ? null : (player.positionInBook - currentChapter.start); + final currentChapterProgress = currentChapter == null + ? null + : (player.positionInBook - currentChapter.start); - final currentChapterBuffered = - currentChapter == null ? null : (player.bufferedPositionInBook - currentChapter.start); + final currentChapterBuffered = currentChapter == null + ? null + : (player.bufferedPositionInBook - currentChapter.start); return ProgressBar( - progress: currentChapterProgress ?? position.data ?? const Duration(seconds: 0), + progress: + currentChapterProgress ?? position.data ?? const Duration(seconds: 0), total: currentChapter == null ? player.book?.duration ?? const Duration(seconds: 0) : currentChapter.end - currentChapter.start, @@ -226,7 +234,8 @@ class AudiobookChapterProgressBar extends HookConsumerWidget { player.seek(duration); }, thumbRadius: 8, - buffered: currentChapterBuffered ?? buffered.data ?? const Duration(seconds: 0), + buffered: + currentChapterBuffered ?? buffered.data ?? const Duration(seconds: 0), bufferedBarColor: Theme.of(context).colorScheme.secondary, timeLabelType: TimeLabelType.remainingTime, timeLabelLocation: TimeLabelLocation.below, diff --git a/lib/features/player/view/player_when_expanded.dart b/lib/features/player/view/player_when_expanded.dart index a27d260..bf437ae 100644 --- a/lib/features/player/view/player_when_expanded.dart +++ b/lib/features/player/view/player_when_expanded.dart @@ -105,7 +105,10 @@ class PlayerWhenExpanded extends HookConsumerWidget { decoration: BoxDecoration( boxShadow: [ BoxShadow( - color: Theme.of(context).colorScheme.primary.withValues(alpha: 0.1), + color: Theme.of(context) + .colorScheme + .primary + .withValues(alpha: 0.1), blurRadius: 32 * earlyPercentage, spreadRadius: 8 * earlyPercentage, // offset: Offset(0, 16 * earlyPercentage), @@ -171,7 +174,10 @@ class PlayerWhenExpanded extends HookConsumerWidget { currentBookMetadata?.authorName ?? '', ].join(' - '), style: Theme.of(context).textTheme.titleMedium?.copyWith( - color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7), + color: Theme.of(context) + .colorScheme + .onSurface + .withValues(alpha: 0.7), ), maxLines: 1, overflow: TextOverflow.ellipsis, diff --git a/lib/features/player/view/player_when_minimized.dart b/lib/features/player/view/player_when_minimized.dart index 55ba414..4d442ac 100644 --- a/lib/features/player/view/player_when_minimized.dart +++ b/lib/features/player/view/player_when_minimized.dart @@ -36,7 +36,8 @@ class PlayerWhenMinimized extends HookConsumerWidget { final vanishingPercentage = 1 - percentageMiniplayer; // final progress = // useStream(player.slowPositionStreamInBook, initialData: Duration.zero); - final progress = useStream(player.positionStream, initialData: Duration.zero); + final progress = + useStream(player.positionStream, initialData: Duration.zero); final bookMetaExpanded = ref.watch(currentBookMetadataProvider); @@ -58,7 +59,8 @@ class PlayerWhenMinimized extends HookConsumerWidget { context.pushNamed( Routes.libraryItem.name, pathParameters: { - Routes.libraryItem.pathParamName!: player.book!.libraryItemId, + Routes.libraryItem.pathParamName!: + player.book!.libraryItemId, }, ); }, @@ -92,7 +94,10 @@ class PlayerWhenMinimized extends HookConsumerWidget { maxLines: 1, overflow: TextOverflow.ellipsis, style: Theme.of(context).textTheme.bodyMedium!.copyWith( - color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7), + color: Theme.of(context) + .colorScheme + .onSurface + .withValues(alpha: 0.7), ), ), ], @@ -138,7 +143,8 @@ class PlayerWhenMinimized extends HookConsumerWidget { child: LinearProgressIndicator( // value: (progress.data ?? Duration.zero).inSeconds / // player.book!.duration.inSeconds, - value: (progress.data ?? Duration.zero).inSeconds / player.duration!.inSeconds, + value: (progress.data ?? Duration.zero).inSeconds / + player.duration!.inSeconds, color: Theme.of(context).colorScheme.onPrimaryContainer, backgroundColor: Theme.of(context).colorScheme.primaryContainer, ), diff --git a/lib/router/scaffold_with_nav_bar.dart b/lib/router/scaffold_with_nav_bar.dart index 5e608c6..95ad553 100644 --- a/lib/router/scaffold_with_nav_bar.dart +++ b/lib/router/scaffold_with_nav_bar.dart @@ -116,7 +116,8 @@ class ScaffoldWithNavBar extends HookConsumerWidget { // extended: false, destinations: _navigationItems(context).map((item) { final isDestinationLibrary = item.name == S.of(context).library; - var currentLibrary = ref.watch(currentLibraryProvider).valueOrNull; + var currentLibrary = + ref.watch(currentLibraryProvider).valueOrNull; final libraryIcon = AbsIcons.getIconByName( currentLibrary?.icon, ); @@ -125,9 +126,13 @@ class ScaffoldWithNavBar extends HookConsumerWidget { isDestinationLibrary ? libraryIcon ?? item.icon : item.icon, ), selectedIcon: Icon( - isDestinationLibrary ? libraryIcon ?? item.activeIcon : item.activeIcon, + isDestinationLibrary + ? libraryIcon ?? item.activeIcon + : item.activeIcon, ), - label: Text(isDestinationLibrary ? currentLibrary?.name ?? item.name : item.name), + label: Text(isDestinationLibrary + ? currentLibrary?.name ?? item.name + : item.name), // tooltip: item.tooltip, ); // if (isDestinationLibrary) { @@ -166,8 +171,8 @@ class ScaffoldWithNavBar extends HookConsumerWidget { // useValueListenable(ref.watch(playerExpandProgressNotifierProvider)); final playerProgress = ref.watch(playerHeightProvider); final playerMaxHeight = MediaQuery.of(context).size.height; - var percentExpandedMiniPlayer = - (playerProgress - playerMinHeight) / (playerMaxHeight - playerMinHeight); + var percentExpandedMiniPlayer = (playerProgress - playerMinHeight) / + (playerMaxHeight - playerMinHeight); // Clamp the value between 0 and 1 percentExpandedMiniPlayer = percentExpandedMiniPlayer.clamp(0.0, 1.0); return Opacity( @@ -193,9 +198,13 @@ class ScaffoldWithNavBar extends HookConsumerWidget { isDestinationLibrary ? libraryIcon ?? item.icon : item.icon, ), selectedIcon: Icon( - isDestinationLibrary ? libraryIcon ?? item.activeIcon : item.activeIcon, + isDestinationLibrary + ? libraryIcon ?? item.activeIcon + : item.activeIcon, ), - label: isDestinationLibrary ? currentLibrary?.name ?? item.name : item.name, + label: isDestinationLibrary + ? currentLibrary?.name ?? item.name + : item.name, tooltip: item.tooltip, ); if (isDestinationLibrary) {