diff --git a/lib/screens/library_search/library_search_screen.dart b/lib/screens/library_search/library_search_screen.dart index 92b9d03..25b7e84 100644 --- a/lib/screens/library_search/library_search_screen.dart +++ b/lib/screens/library_search/library_search_screen.dart @@ -160,6 +160,8 @@ class _LibrarySearchScreenState extends ConsumerState { child: Scaffold( extendBody: true, extendBodyBehindAppBar: true, + floatingActionButtonAnimator: + playerState == VideoPlayerState.minimized ? FloatingActionButtonAnimator.noAnimation : null, floatingActionButtonLocation: playerState == VideoPlayerState.minimized ? FloatingActionButtonLocation.centerFloat : null, floatingActionButton: switch (playerState) { diff --git a/lib/screens/shared/detail_scaffold.dart b/lib/screens/shared/detail_scaffold.dart index 619d342..0fc3d74 100644 --- a/lib/screens/shared/detail_scaffold.dart +++ b/lib/screens/shared/detail_scaffold.dart @@ -78,6 +78,8 @@ class _DetailScaffoldState extends ConsumerState { }, refreshOnStart: true, child: Scaffold( + floatingActionButtonAnimator: + playerState == VideoPlayerState.minimized ? FloatingActionButtonAnimator.noAnimation : null, floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, floatingActionButton: switch (playerState) { VideoPlayerState.minimized => const Padding( diff --git a/lib/screens/shared/nested_scaffold.dart b/lib/screens/shared/nested_scaffold.dart index 2312673..aed43c7 100644 --- a/lib/screens/shared/nested_scaffold.dart +++ b/lib/screens/shared/nested_scaffold.dart @@ -19,6 +19,8 @@ class NestedScaffold extends ConsumerWidget { return Card( child: Scaffold( backgroundColor: Colors.transparent, + floatingActionButtonAnimator: + playerState == VideoPlayerState.minimized ? FloatingActionButtonAnimator.noAnimation : null, floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, floatingActionButton: switch (AdaptiveLayout.layoutOf(context)) { ViewSize.phone => null, diff --git a/lib/widgets/navigation_scaffold/components/floating_player_bar.dart b/lib/widgets/navigation_scaffold/components/floating_player_bar.dart index 8703cde..e4a2dc3 100644 --- a/lib/widgets/navigation_scaffold/components/floating_player_bar.dart +++ b/lib/widgets/navigation_scaffold/components/floating_player_bar.dart @@ -75,7 +75,8 @@ class _CurrentlyPlayingBarState extends ConsumerState { fladderSnackbar(context, title: "Swipe up/down to open/close the player"); }, child: Card( - elevation: 3, + elevation: 5, + color: Theme.of(context).colorScheme.primaryContainer, child: ConstrainedBox( constraints: const BoxConstraints(minHeight: 50, maxHeight: 85), child: LayoutBuilder(builder: (context, constraints) { diff --git a/lib/widgets/navigation_scaffold/navigation_scaffold.dart b/lib/widgets/navigation_scaffold/navigation_scaffold.dart index 56b3c1b..ca170eb 100644 --- a/lib/widgets/navigation_scaffold/navigation_scaffold.dart +++ b/lib/widgets/navigation_scaffold/navigation_scaffold.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:auto_route/auto_route.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:fladder/models/media_playback_model.dart'; @@ -53,6 +54,8 @@ class _NavigationScaffoldState extends ConsumerState { final playerState = ref.watch(mediaPlaybackProvider.select((value) => value.state)); final views = ref.watch(viewsProvider.select((value) => value.views)); + final isHomeRoutes = homeRoutes.any((element) => element.name.contains(context.router.current.name)); + return PopScope( canPop: currentIndex == 0, onPopInvokedWithResult: (didPop, result) { @@ -65,9 +68,13 @@ class _NavigationScaffoldState extends ConsumerState { appBar: const FladderAppBar(), extendBodyBehindAppBar: true, extendBody: true, + floatingActionButtonAnimator: + playerState == VideoPlayerState.minimized ? FloatingActionButtonAnimator.noAnimation : null, floatingActionButtonLocation: playerState == VideoPlayerState.minimized ? FloatingActionButtonLocation.centerFloat : null, - floatingActionButton: AdaptiveLayout.layoutModeOf(context) == LayoutMode.single + floatingActionButton: AdaptiveLayout.layoutModeOf(context) == LayoutMode.single && + AdaptiveLayout.viewSizeOf(context) == ViewSize.phone && + isHomeRoutes ? switch (playerState) { VideoPlayerState.minimized => const Padding( padding: EdgeInsets.symmetric(horizontal: 8),