@@ -3,6 +3,7 @@ import 'dart:async';
33import 'package:auto_route/auto_route.dart' ;
44import 'package:easy_localization/easy_localization.dart' ;
55import 'package:flutter/material.dart' ;
6+ import 'package:flutter/services.dart' ;
67import 'package:hooks_riverpod/hooks_riverpod.dart' ;
78import 'package:immich_mobile/domain/models/asset/base_asset.model.dart' ;
89import 'package:immich_mobile/domain/models/timeline.model.dart' ;
@@ -129,6 +130,7 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
129130 reloadSubscription? .cancel ();
130131 _prevPreCacheStream? .removeListener (_dummyListener);
131132 _nextPreCacheStream? .removeListener (_dummyListener);
133+ SystemChrome .setEnabledSystemUIMode (SystemUiMode .edgeToEdge);
132134 super .dispose ();
133135 }
134136
@@ -596,6 +598,7 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
596598 // Rebuild the widget when the asset viewer state changes
597599 // Using multiple selectors to avoid unnecessary rebuilds for other state changes
598600 ref.watch (assetViewerProvider.select ((s) => s.showingBottomSheet));
601+ ref.watch (assetViewerProvider.select ((s) => s.showingControls));
599602 ref.watch (assetViewerProvider.select ((s) => s.backgroundOpacity));
600603 ref.watch (assetViewerProvider.select ((s) => s.stackIndex));
601604 ref.watch (isPlayingMotionVideoProvider);
@@ -612,6 +615,15 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
612615 });
613616 });
614617
618+ // Listen for control visibility changes and change system UI mode accordingly
619+ ref.listen (assetViewerProvider.select ((value) => value.showingControls), (_, showingControls) async {
620+ if (showingControls) {
621+ SystemChrome .setEnabledSystemUIMode (SystemUiMode .edgeToEdge);
622+ } else {
623+ SystemChrome .setEnabledSystemUIMode (SystemUiMode .immersiveSticky);
624+ }
625+ });
626+
615627 // Currently it is not possible to scroll the asset when the bottom sheet is open all the way.
616628 // Issue: https://github.com/flutter/flutter/issues/109037
617629 // TODO: Add a custom scrum builder once the fix lands on stable
0 commit comments