Memories: Add option to show info and delete file

This commit is contained in:
Neeraj Gupta 2023-02-22 15:24:39 +05:30
parent a1038ea32e
commit bf9f27ef9a
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1

View file

@ -1,3 +1,6 @@
import "dart:io";
import "package:flutter/cupertino.dart";
import 'package:flutter/material.dart';
import 'package:photos/ente_theme_data.dart';
import 'package:photos/models/memory.dart';
@ -315,6 +318,22 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
);
}
void onFileDeleted() {
if (widget.memories.length == 1) {
Navigator.pop(context);
} else {
setState(() {
if (_index != 0) {
_pageController?.jumpToPage(_index - 1);
}
widget.memories.removeAt(_index);
if (_index != 0) {
_index--;
}
});
}
}
Hero _buildInfoText() {
return Hero(
tag: widget.title,
@ -346,17 +365,46 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
Widget _buildBottomIcons() {
final file = widget.memories[_index].file;
return Container(
alignment: Alignment.bottomRight,
padding: const EdgeInsets.fromLTRB(0, 0, 26, 20),
child: IconButton(
icon: Icon(
Icons.adaptive.share,
color: Colors.white, //same for both themes
return SafeArea(
child: Container(
alignment: Alignment.bottomRight,
padding: const EdgeInsets.fromLTRB(26, 0, 26, 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
IconButton(
icon: const Icon(
Icons.delete_outline,
color: Colors.white, //same for both themes
),
onPressed: () async {
await showSingleFileDeleteSheet(
context,
file,
onFileRemoved: (file) => {onFileDeleted()},
);
},
),
IconButton(
icon: Icon(
Platform.isAndroid ? Icons.info_outline : CupertinoIcons.info,
color: Colors.white, //same for both themes
),
onPressed: () {
showInfoSheet(context, file);
},
),
IconButton(
icon: Icon(
Icons.adaptive.share,
color: Colors.white, //same for both themes
),
onPressed: () {
share(context, [file]);
},
),
],
),
onPressed: () {
share(context, [file]);
},
),
);
}