Setup a reload trigger for Gallery
This commit is contained in:
parent
0e5416d4ff
commit
a387d026ae
4 changed files with 13 additions and 6 deletions
1
lib/events/event.dart
Normal file
1
lib/events/event.dart
Normal file
|
@ -0,0 +1 @@
|
|||
class Event {}
|
|
@ -1 +1,3 @@
|
|||
class LocalPhotosUpdatedEvent {}
|
||||
import 'package:photos/events/event.dart';
|
||||
|
||||
class LocalPhotosUpdatedEvent extends Event {}
|
||||
|
|
|
@ -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<Photo> selectedPhotos;
|
||||
final Function(Set<Photo>) photoSelectionChangeCallback;
|
||||
final Future<void> Function() syncFunction;
|
||||
final Stream<Event> reloadTrigger;
|
||||
|
||||
Gallery(
|
||||
this.loadFunction, {
|
||||
this.selectedPhotos,
|
||||
this.photoSelectionChangeCallback,
|
||||
this.syncFunction,
|
||||
this.reloadTrigger,
|
||||
});
|
||||
|
||||
@override
|
||||
|
@ -54,6 +57,11 @@ class _GalleryState extends State<Gallery> {
|
|||
_openedPhoto = event.photo;
|
||||
});
|
||||
});
|
||||
widget.reloadTrigger.listen((event) {
|
||||
setState(() {
|
||||
_requiresLoad = true;
|
||||
});
|
||||
});
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
|
|
@ -35,15 +35,11 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
ShakeDetector _detector;
|
||||
int _selectedNavBarItem = 0;
|
||||
Set<Photo> _selectedPhotos = HashSet<Photo>();
|
||||
StreamSubscription<LocalPhotosUpdatedEvent> _subscription;
|
||||
final _deviceFolderGalleryWidget = DeviceFolderGalleryWidget();
|
||||
final _remoteFolderGalleryWidget = RemoteFolderGalleryWidget();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_subscription = Bus.instance.on<LocalPhotosUpdatedEvent>().listen((event) {
|
||||
setState(() {});
|
||||
});
|
||||
_detector = ShakeDetector.autoStart(
|
||||
shakeThresholdGravity: 3,
|
||||
onPhoneShake: () {
|
||||
|
@ -116,6 +112,7 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
syncFunction: () {
|
||||
return PhotoSyncManager.instance.sync();
|
||||
},
|
||||
reloadTrigger: Bus.instance.on<LocalPhotosUpdatedEvent>(),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -164,7 +161,6 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
@override
|
||||
void dispose() {
|
||||
_detector.stopListening();
|
||||
_subscription.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue