1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-25 10:43:13 +02:00

feat(mobile): Clip and change background for Asset selection (#3460)

This commit is contained in:
shalong-tanwen 2023-07-29 06:32:57 +00:00 committed by GitHub
parent 54db2a48af
commit 74f04336bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -37,11 +37,21 @@ class ThumbnailImage extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final isDarkTheme = Theme.of(context).brightness == Brightness.dark;
final assetContainerColor =
isDarkTheme ? Colors.blueGrey : Theme.of(context).primaryColorLight;
Widget buildSelectionIcon(Asset asset) {
if (isSelected) {
return Icon(
Icons.check_circle,
return Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
color: assetContainerColor,
),
child: Icon(
Icons.check_circle_rounded,
color: Theme.of(context).primaryColor,
),
);
} else {
return const Icon(
@ -51,6 +61,36 @@ class ThumbnailImage extends HookConsumerWidget {
}
}
Widget buildImage(Asset asset) {
var image = ImmichImage(
asset,
width: 300,
height: 300,
useGrayBoxPlaceholder: useGrayBoxPlaceholder,
);
if (!multiselectEnabled || !isSelected) {
return image;
}
return Container(
decoration: BoxDecoration(
border: Border.all(
width: 0,
color: assetContainerColor,
),
color: assetContainerColor,
),
child: ClipRRect(
borderRadius: const BorderRadius.only(
topRight: Radius.circular(15.0),
bottomRight: Radius.circular(15.0),
bottomLeft: Radius.circular(15.0),
topLeft: Radius.zero,
),
child: image,
),
);
}
return GestureDetector(
onTap: () {
if (multiselectEnabled) {
@ -84,17 +124,12 @@ class ThumbnailImage extends HookConsumerWidget {
? Border.all(
color: onDeselect == null
? Colors.grey
: Theme.of(context).primaryColorLight,
width: 10,
: assetContainerColor,
width: 8,
)
: const Border(),
),
child: ImmichImage(
asset,
width: 300,
height: 300,
useGrayBoxPlaceholder: useGrayBoxPlaceholder,
),
child: buildImage(asset),
),
if (multiselectEnabled)
Padding(