From d0c62a602b156ce1b100df4b5b16f341ca2068d3 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Fri, 8 Oct 2021 15:47:56 +0900 Subject: [PATCH] fixed image/thumbnail invalidation when removing metadata --- lib/model/entry.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/model/entry.dart b/lib/model/entry.dart index 75c0838b5..2a379205b 100644 --- a/lib/model/entry.dart +++ b/lib/model/entry.dart @@ -426,7 +426,7 @@ class AvesEntry { _xmpSubjects = null; metadataChangeNotifier.notifyListeners(); - _onImageChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); + _onVisualFieldChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); } void clearMetadata() { @@ -614,9 +614,13 @@ class AvesEntry { final updated = await mediaFileService.getEntry(uri, mimeType); if (updated != null) { + final oldDateModifiedSecs = dateModifiedSecs; + final oldRotationDegrees = rotationDegrees; + final oldIsFlipped = isFlipped; await _applyNewFields(updated.toMap(), persist: persist); await catalog(background: false, persist: persist); await locate(background: false); + await _onVisualFieldChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); } } @@ -628,7 +632,7 @@ class AvesEntry { final oldRotationDegrees = rotationDegrees; final oldIsFlipped = isFlipped; await _applyNewFields(newFields, persist: persist); - await _onImageChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); + await _onVisualFieldChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); return true; } @@ -640,7 +644,7 @@ class AvesEntry { final oldRotationDegrees = rotationDegrees; final oldIsFlipped = isFlipped; await _applyNewFields(newFields, persist: persist); - await _onImageChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); + await _onVisualFieldChanged(oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); return true; } @@ -669,7 +673,7 @@ class AvesEntry { } // when the entry image itself changed (e.g. after rotation) - Future _onImageChanged(int? oldDateModifiedSecs, int oldRotationDegrees, bool oldIsFlipped) async { + Future _onVisualFieldChanged(int? oldDateModifiedSecs, int oldRotationDegrees, bool oldIsFlipped) async { if (oldDateModifiedSecs != dateModifiedSecs || oldRotationDegrees != rotationDegrees || oldIsFlipped != isFlipped) { await EntryCache.evict(uri, mimeType, oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); imageChangeNotifier.notifyListeners();