Use dummy generatedID for trashed files

This commit is contained in:
Neeraj Gupta 2021-10-13 14:47:58 +05:30
parent 2cf7699198
commit 517a7b2a20
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1
5 changed files with 27 additions and 7 deletions

View file

@ -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 =

View file

@ -180,6 +180,7 @@ class FadingBottomBarState extends State<FadingBottomBar> {
icon: Icon(Icons.restore_outlined),
onPressed: () {
showToast("coming soon");
Navigator.pop(context);
},
),
),
@ -197,6 +198,7 @@ class FadingBottomBarState extends State<FadingBottomBar> {
final trashedFile = <TrashFile>[];
trashedFile.add(widget.file);
await deleteFromTrash(context, trashedFile);
Navigator.pop(context);
},
),
),

View file

@ -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<ThumbnailWidget> {
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) {

View file

@ -30,8 +30,22 @@ class TrashPage extends StatelessWidget {
creationStartTime, creationEndTime,
limit: limit, asc: asc);
},
reloadEvent: Bus.instance.on<CollectionUpdatedEvent>(),
forceReloadEvents: [Bus.instance.on<CollectionUpdatedEvent>()],
reloadEvent: Bus.instance.on<FilesUpdatedEvent>().where(
(event) =>
event.updatedFiles.firstWhere(
(element) => element.uploadedFileID != null,
orElse: () => null) !=
null,
),
forceReloadEvents: [
Bus.instance.on<FilesUpdatedEvent>().where(
(event) =>
event.updatedFiles.firstWhere(
(element) => element.uploadedFileID != null,
orElse: () => null) !=
null,
),
],
tagPrefix: tagPrefix,
selectedFiles: _selectedFiles,
initialFiles: null,

View file

@ -209,8 +209,8 @@ Future<void> 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);