From 858d1e9d9b88cb77314e291750b578ccb3abae89 Mon Sep 17 00:00:00 2001 From: ExceptionsOccur <30021941+ExceptionsOccur@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:07:05 +0800 Subject: [PATCH] fix(mobile): back gesture in asset selection page from an album (#16449) * fix(mobile): the page for adding photos to the album cannot be navigated back using gestures #16409 * First-time return gesture adds the feature to cancel all current selections --------- Co-authored-by: ExceptionsOccur --- .../asset_grid/immich_asset_grid_view.dart | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart b/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart index d870c5abe2..941a2a7ac6 100644 --- a/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart +++ b/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart @@ -542,7 +542,24 @@ class ImmichAssetGridViewState extends ConsumerState { Widget build(BuildContext context) { return PopScope( canPop: !(widget.selectionActive && _selectedAssets.isNotEmpty), - onPopInvokedWithResult: (didPop, _) => !didPop ? _deselectAll() : null, + onPopInvokedWithResult: (didPop, _) { + if (didPop) { + return; + } else { + if (widget.preselectedAssets == null) { + Navigator.of(context).canPop() ? Navigator.of(context).pop() : null; + } + if (_selectedAssets.length != widget.preselectedAssets!.length && + !widget.preselectedAssets!.containsAll(_selectedAssets)) { + { + _deselectAll(); + return; + } + } else { + Navigator.of(context).canPop() ? Navigator.of(context).pop() : null; + } + } + }, child: Stack( children: [ AssetDragRegion(