diff --git a/lib/db/trash_db.dart b/lib/db/trash_db.dart index 26c6842a8..6711fbff4 100644 --- a/lib/db/trash_db.dart +++ b/lib/db/trash_db.dart @@ -183,6 +183,7 @@ class TrashDB { trashFile.deleteBy = row[columnTrashDeleteBy]; trashFile.uploadedFileID = row[columnUploadedFileID] == -1 ? null : row[columnUploadedFileID]; + trashFile.generatedID = -1 * trashFile.uploadedFileID; trashFile.localID = row[columnLocalID]; trashFile.ownerID = row[columnOwnerID]; trashFile.collectionID = diff --git a/lib/ui/fading_bottom_bar.dart b/lib/ui/fading_bottom_bar.dart index 4eaf96ef6..3e515405d 100644 --- a/lib/ui/fading_bottom_bar.dart +++ b/lib/ui/fading_bottom_bar.dart @@ -180,6 +180,7 @@ class FadingBottomBarState extends State { icon: Icon(Icons.restore_outlined), onPressed: () { showToast("coming soon"); + Navigator.pop(context); }, ), ), @@ -197,6 +198,7 @@ class FadingBottomBarState extends State { final trashedFile = []; trashedFile.add(widget.file); await deleteFromTrash(context, trashedFile); + Navigator.pop(context); }, ), ), diff --git a/lib/ui/thumbnail_widget.dart b/lib/ui/thumbnail_widget.dart index f5f7a5f41..8c2fef151 100644 --- a/lib/ui/thumbnail_widget.dart +++ b/lib/ui/thumbnail_widget.dart @@ -8,6 +8,7 @@ import 'package:photos/db/files_db.dart'; import 'package:photos/events/local_photos_updated_event.dart'; import 'package:photos/models/file.dart'; import 'package:photos/models/file_type.dart'; +import 'package:photos/models/trash_file.dart'; import 'package:photos/ui/common_elements.dart'; import 'package:photos/utils/file_util.dart'; import 'package:photos/utils/thumbnail_util.dart'; @@ -197,10 +198,12 @@ class _ThumbnailWidgetState extends State { Future _getThumbnailFromDisk() async { getThumbnailFromLocal(widget.file).then((thumbData) async { if (thumbData == null) { - if (widget.file.uploadedFileID != null) { - _logger.fine("Removing localID reference for " + widget.file.tag()); - widget.file.localID = null; - FilesDB.instance.update(widget.file); + if (widget.file.uploadedFileID != null ) { + if (widget.file is! TrashFile) { + _logger.fine("Removing localID reference for " + widget.file.tag()); + widget.file.localID = null; + FilesDB.instance.update(widget.file); + } _loadNetworkImage(); } else { if (await doesLocalFileExist(widget.file) == false) { diff --git a/lib/ui/trash_page.dart b/lib/ui/trash_page.dart index 3bd2366d5..a191d3ec2 100644 --- a/lib/ui/trash_page.dart +++ b/lib/ui/trash_page.dart @@ -30,8 +30,22 @@ class TrashPage extends StatelessWidget { creationStartTime, creationEndTime, limit: limit, asc: asc); }, - reloadEvent: Bus.instance.on(), - forceReloadEvents: [Bus.instance.on()], + reloadEvent: Bus.instance.on().where( + (event) => + event.updatedFiles.firstWhere( + (element) => element.uploadedFileID != null, + orElse: () => null) != + null, + ), + forceReloadEvents: [ + Bus.instance.on().where( + (event) => + event.updatedFiles.firstWhere( + (element) => element.uploadedFileID != null, + orElse: () => null) != + null, + ), + ], tagPrefix: tagPrefix, selectedFiles: _selectedFiles, initialFiles: null, diff --git a/lib/utils/delete_file_util.dart b/lib/utils/delete_file_util.dart index 6d838377b..0bae72736 100644 --- a/lib/utils/delete_file_util.dart +++ b/lib/utils/delete_file_util.dart @@ -209,8 +209,8 @@ Future deleteFromTrash( await dialog.show(); try { await TrashSyncService.instance.deleteFromTrash(files); - await dialog.hide(); showToast("successfully deleted"); + await dialog.hide(); Bus.instance.fire(FilesUpdatedEvent(files, type: EventType.deleted)); } catch (e, s) { Logger("TrashUtil").info("failed to delete from trash", e, s);