From ded8d4e2b460cb194f0668616e1eb3e319a148d8 Mon Sep 17 00:00:00 2001 From: Noel S Date: Thu, 26 Feb 2026 09:10:46 -0700 Subject: [PATCH] fix(mobile): set correct initial system-ui mode in asset viewer (#26500) * fix: set correct initial system-ui mode on asset open * move to function and add details visibility to initial state logic * switch to ref.read --- .../widgets/asset_viewer/asset_viewer.page.dart | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart index 3ed5fb2034..d59e867d66 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart @@ -117,6 +117,9 @@ class _AssetViewerState extends ConsumerState { _reloadSubscription = EventStream.shared.listen(_onEvent); WidgetsBinding.instance.addPostFrameCallback(_onAssetInit); + + final assetViewer = ref.read(assetViewerProvider); + _setSystemUIMode(assetViewer.showingControls, assetViewer.showingDetails); } @override @@ -226,6 +229,13 @@ class _AssetViewerState extends ConsumerState { _onAssetChanged(index); } + void _setSystemUIMode(bool controls, bool details) { + final mode = !controls || (CurrentPlatform.isIOS && details) + ? SystemUiMode.immersiveSticky + : SystemUiMode.edgeToEdge; + unawaited(SystemChrome.setEnabledSystemUIMode(mode)); + } + @override Widget build(BuildContext context) { final showingControls = ref.watch(assetViewerProvider.select((s) => s.showingControls)); @@ -245,10 +255,7 @@ class _AssetViewerState extends ConsumerState { ref.listen(assetViewerProvider.select((value) => (value.showingControls, value.showingDetails)), (_, state) { final (controls, details) = state; - final mode = !controls || (CurrentPlatform.isIOS && details) - ? SystemUiMode.immersiveSticky - : SystemUiMode.edgeToEdge; - unawaited(SystemChrome.setEnabledSystemUIMode(mode)); + _setSystemUIMode(controls, details); }); return PopScope(