mirror of
https://github.com/immich-app/immich.git
synced 2024-12-26 10:50:29 +02:00
fix(mobile): back button while multiselecting showing the last selected image (#1521)
This commit is contained in:
parent
29c79ad1d8
commit
5d6559e839
@ -224,13 +224,28 @@ class ImmichAssetGridState extends State<ImmichAssetGrid> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future<bool> onWillPop() async {
|
||||||
|
if (widget.selectionActive && _selectedAssets.isNotEmpty) {
|
||||||
|
_deselectAll();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Stack(
|
return WillPopScope(
|
||||||
children: [
|
onWillPop: onWillPop,
|
||||||
_buildAssetGrid(),
|
child: Stack(
|
||||||
if (widget.selectionActive) _buildMultiSelectIndicator(),
|
children: [
|
||||||
],
|
_buildAssetGrid(),
|
||||||
|
if (widget.selectionActive) _buildMultiSelectIndicator(),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,46 +200,34 @@ class HomePage extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> onWillPop() async {
|
return SafeArea(
|
||||||
if (multiselectEnabled.state) {
|
bottom: !multiselectEnabled.state,
|
||||||
selectionEnabledHook.value = false;
|
top: true,
|
||||||
return false;
|
child: Stack(
|
||||||
}
|
children: [
|
||||||
|
ref.watch(assetProvider).renderList == null ||
|
||||||
return true;
|
ref.watch(assetProvider).allAssets.isEmpty
|
||||||
}
|
? buildLoadingIndicator()
|
||||||
|
: ImmichAssetGrid(
|
||||||
return WillPopScope(
|
renderList: ref.watch(assetProvider).renderList!,
|
||||||
onWillPop: onWillPop,
|
allAssets: ref.watch(assetProvider).allAssets,
|
||||||
child: SafeArea(
|
assetsPerRow: appSettingService
|
||||||
bottom: !multiselectEnabled.state,
|
.getSetting(AppSettingsEnum.tilesPerRow),
|
||||||
top: true,
|
showStorageIndicator: appSettingService
|
||||||
child: Stack(
|
.getSetting(AppSettingsEnum.storageIndicator),
|
||||||
children: [
|
listener: selectionListener,
|
||||||
ref.watch(assetProvider).renderList == null ||
|
selectionActive: selectionEnabledHook.value,
|
||||||
ref.watch(assetProvider).allAssets.isEmpty
|
),
|
||||||
? buildLoadingIndicator()
|
if (selectionEnabledHook.value)
|
||||||
: ImmichAssetGrid(
|
ControlBottomAppBar(
|
||||||
renderList: ref.watch(assetProvider).renderList!,
|
onShare: onShareAssets,
|
||||||
allAssets: ref.watch(assetProvider).allAssets,
|
onDelete: onDelete,
|
||||||
assetsPerRow: appSettingService
|
onAddToAlbum: onAddToAlbum,
|
||||||
.getSetting(AppSettingsEnum.tilesPerRow),
|
albums: albums,
|
||||||
showStorageIndicator: appSettingService
|
sharedAlbums: sharedAlbums,
|
||||||
.getSetting(AppSettingsEnum.storageIndicator),
|
onCreateNewAlbum: onCreateNewAlbum,
|
||||||
listener: selectionListener,
|
),
|
||||||
selectionActive: selectionEnabledHook.value,
|
],
|
||||||
),
|
|
||||||
if (selectionEnabledHook.value)
|
|
||||||
ControlBottomAppBar(
|
|
||||||
onShare: onShareAssets,
|
|
||||||
onDelete: onDelete,
|
|
||||||
onAddToAlbum: onAddToAlbum,
|
|
||||||
albums: albums,
|
|
||||||
sharedAlbums: sharedAlbums,
|
|
||||||
onCreateNewAlbum: onCreateNewAlbum,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user