Fix stale state issue on the hidden collections list after unhiding a collection
This commit is contained in:
parent
88898096a4
commit
980d60fc29
|
@ -31,12 +31,12 @@ class _AlbumHorizontalListState extends State<AlbumHorizontalList> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
super.initState();
|
||||||
_collectionUpdatesSubscription =
|
_collectionUpdatesSubscription =
|
||||||
Bus.instance.on<CollectionUpdatedEvent>().listen((event) {
|
Bus.instance.on<CollectionUpdatedEvent>().listen((event) {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
_logger = Logger((_AlbumHorizontalListState).toString());
|
_logger = Logger((_AlbumHorizontalListState).toString());
|
||||||
super.initState();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
|
import "dart:async";
|
||||||
|
|
||||||
import 'package:collection/collection.dart' show IterableExtension;
|
import 'package:collection/collection.dart' show IterableExtension;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/core/configuration.dart';
|
import 'package:photos/core/configuration.dart';
|
||||||
import 'package:photos/core/event_bus.dart';
|
import 'package:photos/core/event_bus.dart';
|
||||||
import 'package:photos/db/files_db.dart';
|
import 'package:photos/db/files_db.dart';
|
||||||
|
import "package:photos/events/collection_updated_event.dart";
|
||||||
import 'package:photos/events/files_updated_event.dart';
|
import 'package:photos/events/files_updated_event.dart';
|
||||||
import "package:photos/generated/l10n.dart";
|
import "package:photos/generated/l10n.dart";
|
||||||
import "package:photos/models/collection.dart";
|
import "package:photos/models/collection.dart";
|
||||||
|
@ -36,16 +39,29 @@ class HiddenPage extends StatefulWidget {
|
||||||
class _HiddenPageState extends State<HiddenPage> {
|
class _HiddenPageState extends State<HiddenPage> {
|
||||||
int? _defaultHiddenCollectionId;
|
int? _defaultHiddenCollectionId;
|
||||||
final _hiddenCollectionsExcludingDefault = <Collection>[];
|
final _hiddenCollectionsExcludingDefault = <Collection>[];
|
||||||
|
late StreamSubscription<CollectionUpdatedEvent>
|
||||||
|
_collectionUpdatesSubscription;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
_collectionUpdatesSubscription =
|
||||||
|
Bus.instance.on<CollectionUpdatedEvent>().listen((event) {
|
||||||
|
setState(() {
|
||||||
|
getHiddenCollections();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
getHiddenCollections();
|
||||||
|
}
|
||||||
|
|
||||||
|
getHiddenCollections() {
|
||||||
final hiddenCollections =
|
final hiddenCollections =
|
||||||
CollectionsService.instance.getHiddenCollections();
|
CollectionsService.instance.getHiddenCollections();
|
||||||
CollectionsService.instance
|
CollectionsService.instance
|
||||||
.getDefaultHiddenCollection()
|
.getDefaultHiddenCollection()
|
||||||
.then((defaultHiddenCollection) {
|
.then((defaultHiddenCollection) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
_hiddenCollectionsExcludingDefault.clear();
|
||||||
_defaultHiddenCollectionId = defaultHiddenCollection.id;
|
_defaultHiddenCollectionId = defaultHiddenCollection.id;
|
||||||
for (Collection hiddenColleciton in hiddenCollections) {
|
for (Collection hiddenColleciton in hiddenCollections) {
|
||||||
if (hiddenColleciton.id != defaultHiddenCollection.id) {
|
if (hiddenColleciton.id != defaultHiddenCollection.id) {
|
||||||
|
@ -56,6 +72,12 @@ class _HiddenPageState extends State<HiddenPage> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_collectionUpdatesSubscription.cancel();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
final _selectedFiles = SelectedFiles();
|
final _selectedFiles = SelectedFiles();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
Loading…
Reference in a new issue