#253 invalidate source entries when loading metadata on init
This commit is contained in:
parent
a6a3244b3c
commit
a470bb69d7
3 changed files with 12 additions and 3 deletions
|
@ -43,6 +43,8 @@ mixin SourceBase {
|
|||
ValueNotifier<ProgressEvent> progressNotifier = ValueNotifier(const ProgressEvent(done: 0, total: 0));
|
||||
|
||||
void setProgress({required int done, required int total}) => progressNotifier.value = ProgressEvent(done: done, total: total);
|
||||
|
||||
void invalidateEntries();
|
||||
}
|
||||
|
||||
abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagMixin, TrashMixin {
|
||||
|
@ -113,14 +115,19 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
|
|||
}
|
||||
|
||||
void _invalidate([Set<AvesEntry>? entries]) {
|
||||
_visibleEntries = null;
|
||||
_trashedEntries = null;
|
||||
_sortedEntriesByDate = null;
|
||||
invalidateEntries();
|
||||
invalidateAlbumFilterSummary(entries: entries);
|
||||
invalidateCountryFilterSummary(entries: entries);
|
||||
invalidateTagFilterSummary(entries: entries);
|
||||
}
|
||||
|
||||
@override
|
||||
void invalidateEntries() {
|
||||
_visibleEntries = null;
|
||||
_trashedEntries = null;
|
||||
_sortedEntriesByDate = null;
|
||||
}
|
||||
|
||||
void updateDerivedFilters([Set<AvesEntry>? entries]) {
|
||||
_invalidate(entries);
|
||||
// it is possible for entries hidden by a filter type, to have an impact on other types
|
||||
|
|
|
@ -24,6 +24,7 @@ mixin LocationMixin on SourceBase {
|
|||
final saved = await (ids != null ? metadataDb.loadAddressesById(ids) : metadataDb.loadAddresses());
|
||||
final idMap = entryById;
|
||||
saved.forEach((metadata) => idMap[metadata.id]?.addressDetails = metadata);
|
||||
invalidateEntries();
|
||||
onAddressMetadataChanged();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ mixin TagMixin on SourceBase {
|
|||
final saved = await (ids != null ? metadataDb.loadCatalogMetadataById(ids) : metadataDb.loadCatalogMetadata());
|
||||
final idMap = entryById;
|
||||
saved.forEach((metadata) => idMap[metadata.id]?.catalogMetadata = metadata);
|
||||
invalidateEntries();
|
||||
onCatalogMetadataChanged();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue