diff --git a/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart b/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart index 5108406788..f2a8cb9ed1 100644 --- a/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart +++ b/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart @@ -67,12 +67,11 @@ class GalleryViewerPage extends HookConsumerWidget { final settings = ref.watch(appSettingsServiceProvider); final isLoadPreview = useState(AppSettingsEnum.loadPreview.defaultValue); final isLoadOriginal = useState(AppSettingsEnum.loadOriginal.defaultValue); - final isZoomed = useState(false); + final isZoomed = useState(false); final isPlayingMotionVideo = useState(false); Offset? localPosition; final currentIndex = useState(initialIndex); final currentAsset = loadAsset(currentIndex.value); - // Update is playing motion video ref.listen(videoPlaybackValueProvider.select((v) => v.state), (_, state) { isPlayingMotionVideo.value = state == VideoPlaybackState.playing; @@ -90,6 +89,8 @@ class GalleryViewerPage extends HookConsumerWidget { Asset asset = stackIndex.value == -1 ? currentAsset : stackElements.elementAt(stackIndex.value); + + final isMotionPhoto = asset.livePhotoVideoId != null; final isOwner = asset.ownerId == ref.watch(currentUserProvider)?.isarId; final isPartner = ref .watch(partnerSharedWithProvider) @@ -115,7 +116,6 @@ class GalleryViewerPage extends HookConsumerWidget { settings.getSetting(AppSettingsEnum.loadPreview); isLoadOriginal.value = settings.getSetting(AppSettingsEnum.loadOriginal); - isPlayingMotionVideo.value = false; return null; }, [], @@ -482,8 +482,7 @@ class GalleryViewerPage extends HookConsumerWidget { showStack: showStack, stackIndex: stackIndex.value, asset: asset, - showVideoPlayerControls: - !asset.isImage && !isPlayingMotionVideo.value, + showVideoPlayerControls: !asset.isImage && !isMotionPhoto, ), ], ), diff --git a/mobile/lib/modules/asset_viewer/views/video_viewer_page.dart b/mobile/lib/modules/asset_viewer/views/video_viewer_page.dart index 95b78b6931..5d621a0e63 100644 --- a/mobile/lib/modules/asset_viewer/views/video_viewer_page.dart +++ b/mobile/lib/modules/asset_viewer/views/video_viewer_page.dart @@ -112,9 +112,11 @@ class VideoViewerPage extends HookConsumerWidget { // Hide the controls // Done in a microtask to avoid setting the state while the widget is building - Future.microtask( - () => ref.read(showControlsProvider.notifier).show = false, - ); + if (!isMotionVideo) { + Future.microtask( + () => ref.read(showControlsProvider.notifier).show = false, + ); + } final video = controller.videoPlayerController.value; @@ -131,7 +133,8 @@ class VideoViewerPage extends HookConsumerWidget { [controller], ); - final size = MediaQuery.of(context).size; + final size = MediaQuery.sizeOf(context); + return PopScope( onPopInvoked: (pop) { ref.read(videoPlaybackValueProvider.notifier).value =