diff --git a/lib/events/event.dart b/lib/events/event.dart new file mode 100644 index 000000000..61a42e710 --- /dev/null +++ b/lib/events/event.dart @@ -0,0 +1 @@ +class Event {} diff --git a/lib/events/local_photos_updated_event.dart b/lib/events/local_photos_updated_event.dart index 89f18dec7..ad2ba8616 100644 --- a/lib/events/local_photos_updated_event.dart +++ b/lib/events/local_photos_updated_event.dart @@ -1 +1,3 @@ -class LocalPhotosUpdatedEvent {} +import 'package:photos/events/event.dart'; + +class LocalPhotosUpdatedEvent extends Event {} diff --git a/lib/ui/gallery.dart b/lib/ui/gallery.dart index 26e98ff23..10f7a6abe 100644 --- a/lib/ui/gallery.dart +++ b/lib/ui/gallery.dart @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:photos/core/event_bus.dart'; +import 'package:photos/events/event.dart'; import 'package:photos/events/photo_opened_event.dart'; import 'package:photos/models/photo.dart'; import 'package:photos/ui/detail_page.dart'; @@ -19,12 +20,14 @@ class Gallery extends StatefulWidget { final Set selectedPhotos; final Function(Set) photoSelectionChangeCallback; final Future Function() syncFunction; + final Stream reloadTrigger; Gallery( this.loadFunction, { this.selectedPhotos, this.photoSelectionChangeCallback, this.syncFunction, + this.reloadTrigger, }); @override @@ -54,6 +57,11 @@ class _GalleryState extends State { _openedPhoto = event.photo; }); }); + widget.reloadTrigger.listen((event) { + setState(() { + _requiresLoad = true; + }); + }); super.initState(); } diff --git a/lib/ui/home_widget.dart b/lib/ui/home_widget.dart index a2ead4db8..9af242117 100644 --- a/lib/ui/home_widget.dart +++ b/lib/ui/home_widget.dart @@ -35,15 +35,11 @@ class _HomeWidgetState extends State { ShakeDetector _detector; int _selectedNavBarItem = 0; Set _selectedPhotos = HashSet(); - StreamSubscription _subscription; final _deviceFolderGalleryWidget = DeviceFolderGalleryWidget(); final _remoteFolderGalleryWidget = RemoteFolderGalleryWidget(); @override void initState() { - _subscription = Bus.instance.on().listen((event) { - setState(() {}); - }); _detector = ShakeDetector.autoStart( shakeThresholdGravity: 3, onPhoneShake: () { @@ -116,6 +112,7 @@ class _HomeWidgetState extends State { syncFunction: () { return PhotoSyncManager.instance.sync(); }, + reloadTrigger: Bus.instance.on(), ); } @@ -164,7 +161,6 @@ class _HomeWidgetState extends State { @override void dispose() { _detector.stopListening(); - _subscription.cancel(); super.dispose(); } }