feat(mobile): Tap to enter immersive mode on gallery viewer (#1546)

This commit is contained in:
martyfuhry
2023-02-05 07:57:07 -05:00
committed by GitHub
parent bb0b2a1f53
commit f38c7a4b7e
2 changed files with 32 additions and 5 deletions

View File

@@ -17,12 +17,16 @@ class VideoViewerPage extends HookConsumerWidget {
final Asset asset;
final bool isMotionVideo;
final VoidCallback onVideoEnded;
final VoidCallback? onPlaying;
final VoidCallback? onPaused;
const VideoViewerPage({
Key? key,
required this.asset,
required this.isMotionVideo,
required this.onVideoEnded,
this.onPlaying,
this.onPaused,
}) : super(key: key);
@override
@@ -63,6 +67,8 @@ class VideoViewerPage extends HookConsumerWidget {
jwtToken: jwtToken,
isMotionVideo: isMotionVideo,
onVideoEnded: onVideoEnded,
onPaused: onPaused,
onPlaying: onPlaying,
),
if (downloadAssetStatus == DownloadAssetStatus.loading)
const Center(
@@ -89,6 +95,9 @@ class VideoThumbnailPlayer extends StatefulWidget {
final bool isMotionVideo;
final VoidCallback onVideoEnded;
final Function()? onPlaying;
final Function()? onPaused;
const VideoThumbnailPlayer({
Key? key,
this.url,
@@ -96,6 +105,8 @@ class VideoThumbnailPlayer extends StatefulWidget {
this.file,
required this.onVideoEnded,
required this.isMotionVideo,
this.onPlaying,
this.onPaused,
}) : super(key: key);
@override
@@ -112,6 +123,11 @@ class _VideoThumbnailPlayerState extends State<VideoThumbnailPlayer> {
initializePlayer();
videoPlayerController.addListener(() {
if (videoPlayerController.value.isPlaying) {
widget.onPlaying?.call();
} else if (!videoPlayerController.value.isPlaying) {
widget.onPaused?.call();
}
if (videoPlayerController.value.position ==
videoPlayerController.value.duration) {
widget.onVideoEnded();