#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));
|
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 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 {
|
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]) {
|
void _invalidate([Set<AvesEntry>? entries]) {
|
||||||
_visibleEntries = null;
|
invalidateEntries();
|
||||||
_trashedEntries = null;
|
|
||||||
_sortedEntriesByDate = null;
|
|
||||||
invalidateAlbumFilterSummary(entries: entries);
|
invalidateAlbumFilterSummary(entries: entries);
|
||||||
invalidateCountryFilterSummary(entries: entries);
|
invalidateCountryFilterSummary(entries: entries);
|
||||||
invalidateTagFilterSummary(entries: entries);
|
invalidateTagFilterSummary(entries: entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void invalidateEntries() {
|
||||||
|
_visibleEntries = null;
|
||||||
|
_trashedEntries = null;
|
||||||
|
_sortedEntriesByDate = null;
|
||||||
|
}
|
||||||
|
|
||||||
void updateDerivedFilters([Set<AvesEntry>? entries]) {
|
void updateDerivedFilters([Set<AvesEntry>? entries]) {
|
||||||
_invalidate(entries);
|
_invalidate(entries);
|
||||||
// it is possible for entries hidden by a filter type, to have an impact on other types
|
// 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 saved = await (ids != null ? metadataDb.loadAddressesById(ids) : metadataDb.loadAddresses());
|
||||||
final idMap = entryById;
|
final idMap = entryById;
|
||||||
saved.forEach((metadata) => idMap[metadata.id]?.addressDetails = metadata);
|
saved.forEach((metadata) => idMap[metadata.id]?.addressDetails = metadata);
|
||||||
|
invalidateEntries();
|
||||||
onAddressMetadataChanged();
|
onAddressMetadataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ mixin TagMixin on SourceBase {
|
||||||
final saved = await (ids != null ? metadataDb.loadCatalogMetadataById(ids) : metadataDb.loadCatalogMetadata());
|
final saved = await (ids != null ? metadataDb.loadCatalogMetadataById(ids) : metadataDb.loadCatalogMetadata());
|
||||||
final idMap = entryById;
|
final idMap = entryById;
|
||||||
saved.forEach((metadata) => idMap[metadata.id]?.catalogMetadata = metadata);
|
saved.forEach((metadata) => idMap[metadata.id]?.catalogMetadata = metadata);
|
||||||
|
invalidateEntries();
|
||||||
onCatalogMetadataChanged();
|
onCatalogMetadataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue