diff --git a/lib/ui/device_folder_page.dart b/lib/ui/device_folder_page.dart index f632395fb5..7eb0e59c03 100644 --- a/lib/ui/device_folder_page.dart +++ b/lib/ui/device_folder_page.dart @@ -49,7 +49,7 @@ class _DeviceFolderPageState extends State { body: Gallery( () => Future.value(_getFilteredPhotos(PhotoRepository.instance.photos)), selectedPhotos: _selectedPhotos, - photoSelectionChangeCallback: (Set selectedPhotos) { + onPhotoSelectionChange: (Set selectedPhotos) { setState(() { _selectedPhotos = selectedPhotos; }); diff --git a/lib/ui/gallery.dart b/lib/ui/gallery.dart index 13e8331e6c..5090ea4001 100644 --- a/lib/ui/gallery.dart +++ b/lib/ui/gallery.dart @@ -16,18 +16,20 @@ import 'package:photos/utils/date_time_util.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; class Gallery extends StatefulWidget { - final Future> Function() loadFunction; + final Future> Function() loader; + // TODO: Verify why the event is necessary when calling loader post onRefresh + // should have done the job. + final Stream reloadEvent; + final Future Function() onRefresh; final Set selectedPhotos; - final Function(Set) photoSelectionChangeCallback; - final Future Function() syncFunction; - final Stream reloadTrigger; + final Function(Set) onPhotoSelectionChange; Gallery( - this.loadFunction, { + this.loader, { + this.reloadEvent, + this.onRefresh, this.selectedPhotos, - this.photoSelectionChangeCallback, - this.syncFunction, - this.reloadTrigger, + this.onPhotoSelectionChange, }); @override @@ -57,11 +59,13 @@ class _GalleryState extends State { _openedPhoto = event.photo; }); }); - widget.reloadTrigger.listen((event) { - setState(() { - _requiresLoad = true; + if (widget.reloadEvent != null) { + widget.reloadEvent.listen((event) { + setState(() { + _requiresLoad = true; + }); }); - }); + } super.initState(); } @@ -77,7 +81,7 @@ class _GalleryState extends State { return _onSnapshotAvailable(_lastSnapshot); } return FutureBuilder>( - future: widget.loadFunction(), + future: widget.loader(), builder: (context, snapshot) { _requiresLoad = false; _lastSnapshot = snapshot; @@ -109,15 +113,15 @@ class _GalleryState extends State { controller: _scrollController, cacheExtent: 1000, ); - if (widget.syncFunction != null) { + if (widget.onRefresh != null) { return SmartRefresher( controller: _refreshController, child: list, header: SyncIndicator(_refreshController), onRefresh: () { - widget.syncFunction().then((_) { + widget.onRefresh().then((_) { _refreshController.refreshCompleted(); - widget.loadFunction().then((_) => setState(() { + widget.loader().then((_) => setState(() { _requiresLoad = true; })); }).catchError((e) { @@ -208,7 +212,7 @@ class _GalleryState extends State { } else { _selectedPhotos.add(photo); } - widget.photoSelectionChangeCallback(_selectedPhotos); + widget.onPhotoSelectionChange(_selectedPhotos); }); } diff --git a/lib/ui/home_widget.dart b/lib/ui/home_widget.dart index b1b0b0a651..608ca5e566 100644 --- a/lib/ui/home_widget.dart +++ b/lib/ui/home_widget.dart @@ -116,16 +116,16 @@ class _HomeWidgetState extends State { return Gallery( () => Future.value( _getFilteredPhotos(PhotoRepository.instance.photos)), + reloadEvent: Bus.instance.on(), + onRefresh: () { + return PhotoSyncManager.instance.sync(); + }, selectedPhotos: _selectedPhotos, - photoSelectionChangeCallback: (Set selectedPhotos) { + onPhotoSelectionChange: (Set selectedPhotos) { setState(() { _selectedPhotos = selectedPhotos; }); }, - syncFunction: () { - return PhotoSyncManager.instance.sync(); - }, - reloadTrigger: Bus.instance.on(), ); } else if (snapshot.hasError) { return Center(child: Text(snapshot.error.toString())); diff --git a/lib/ui/remote_folder_page.dart b/lib/ui/remote_folder_page.dart index 3455fc72ea..8518c027ca 100644 --- a/lib/ui/remote_folder_page.dart +++ b/lib/ui/remote_folder_page.dart @@ -34,10 +34,10 @@ class _RemoteFolderPageState extends State { ), body: Gallery( () => PhotoDB.instance.getAllPhotosInFolder(widget.folder.id), - syncFunction: () => + onRefresh: () => FolderSharingService.instance.syncDiff(widget.folder), selectedPhotos: _selectedPhotos, - photoSelectionChangeCallback: (Set selectedPhotos) { + onPhotoSelectionChange: (Set selectedPhotos) { setState( () { _selectedPhotos = selectedPhotos;