diff --git a/lib/features/player/view/audiobook_player.dart b/lib/features/player/view/audiobook_player.dart index c88220b..cfb6b5e 100644 --- a/lib/features/player/view/audiobook_player.dart +++ b/lib/features/player/view/audiobook_player.dart @@ -69,8 +69,7 @@ class AudiobookPlayer extends HookConsumerWidget { ); // max height of the player is the height of the screen - final playerMaxHeight = - MediaQuery.of(context).size.height * playerMaxHeightPercentOfScreen; + final playerMaxHeight = MediaQuery.of(context).size.height; final availWidth = MediaQuery.of(context).size.width; diff --git a/lib/features/player/view/player_when_expanded.dart b/lib/features/player/view/player_when_expanded.dart index 0fdfbd2..a5fc097 100644 --- a/lib/features/player/view/player_when_expanded.dart +++ b/lib/features/player/view/player_when_expanded.dart @@ -2,8 +2,10 @@ import 'package:duration_picker/duration_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:miniplayer/miniplayer.dart'; import 'package:whispering_pages/constants/sizes.dart'; import 'package:whispering_pages/features/player/providers/currently_playing_provider.dart'; +import 'package:whispering_pages/features/player/providers/player_form.dart'; import 'package:whispering_pages/features/player/view/audiobook_player.dart'; import 'package:whispering_pages/features/sleep_timer/core/sleep_timer.dart'; import 'package:whispering_pages/features/sleep_timer/providers/sleep_timer_provider.dart' @@ -49,11 +51,47 @@ class PlayerWhenExpanded extends HookConsumerWidget { return Column( children: [ // sized box for system status bar; not needed as not full screen - // SizedBox( - // height: MediaQuery.of(context).padding.top * earlyPercentage, - // ), + SizedBox( + height: MediaQuery.of(context).padding.top * earlyPercentage, + ), // a row with a down arrow to minimize the player, a pill shaped container to drag the player, and a cast button + ConstrainedBox( + constraints: BoxConstraints( + maxHeight: 100 * earlyPercentage, + ), + child: Opacity( + opacity: earlyPercentage, + child: Padding( + padding: EdgeInsets.only(top: 8.0 * earlyPercentage), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // the down arrow + IconButton( + iconSize: 30, + icon: const Icon(Icons.keyboard_arrow_down), + onPressed: () { + // minimize the player + audioBookMiniplayerController.animateToHeight( + state: PanelState.MIN, + ); + }, + ), + + // the cast button + IconButton( + icon: const Icon(Icons.cast), + onPressed: () {}, + ), + ], + ), + ), + ), + ), + // the image Padding( padding: EdgeInsets.only( diff --git a/lib/router/scaffold_with_nav_bar.dart b/lib/router/scaffold_with_nav_bar.dart index aee00ed..694360a 100644 --- a/lib/router/scaffold_with_nav_bar.dart +++ b/lib/router/scaffold_with_nav_bar.dart @@ -29,8 +29,7 @@ class ScaffoldWithNavBar extends HookConsumerWidget { // final playerProgress = // useValueListenable(ref.watch(playerExpandProgressNotifierProvider)); final playerProgress = ref.watch(playerHeightProvider); - final playerMaxHeight = - MediaQuery.of(context).size.height * playerMaxHeightPercentOfScreen; + final playerMaxHeight = MediaQuery.of(context).size.height; var percentExpanded = (playerProgress - playerMinHeight) / (playerMaxHeight - playerMinHeight); // Clamp the value between 0 and 1