Enable pull to sync only on the root gallery

This commit is contained in:
Vishnu Mohandas 2020-06-06 19:53:26 +05:30
parent 1d0515d70e
commit 8c92ac15bb
2 changed files with 31 additions and 25 deletions

View file

@ -14,9 +14,10 @@ class Gallery extends StatefulWidget {
final List<Photo> photos;
final Set<Photo> selectedPhotos;
final Function(Set<Photo>) photoSelectionChangeCallback;
final bool enablePullToSync;
Gallery(this.photos, this.selectedPhotos,
{this.photoSelectionChangeCallback});
{this.photoSelectionChangeCallback, this.enablePullToSync = false});
@override
_GalleryState createState() {
@ -39,31 +40,35 @@ class _GalleryState extends State<Gallery> {
_selectedPhotos = widget.selectedPhotos;
_deduplicatePhotos();
_collatePhotos();
return SmartRefresher(
controller: _refreshController,
enablePullUp: true,
child: ListView.builder(
itemCount: _collatedPhotos.length,
itemBuilder: _buildListItem,
controller: _scrollController,
cacheExtent: 1000,
),
header: ClassicHeader(
idleText: "Pull down to sync.",
refreshingText: "Syncing...",
releaseText: "Release to sync.",
completeText: "Sync completed.",
failedText: "Sync unsuccessful.",
),
onRefresh: () async {
PhotoSyncManager.instance.sync().then((value) {
_refreshController.refreshCompleted();
}).catchError((e) {
_refreshController.refreshFailed();
});
},
final list = ListView.builder(
itemCount: _collatedPhotos.length,
itemBuilder: _buildListItem,
controller: _scrollController,
cacheExtent: 1000,
);
if (widget.enablePullToSync) {
return SmartRefresher(
controller: _refreshController,
enablePullUp: true,
child: list,
header: ClassicHeader(
idleText: "Pull down to sync.",
refreshingText: "Syncing...",
releaseText: "Release to sync.",
completeText: "Sync completed.",
failedText: "Sync unsuccessful.",
),
onRefresh: () async {
PhotoSyncManager.instance.sync().then((value) {
_refreshController.refreshCompleted();
}).catchError((e) {
_refreshController.refreshFailed();
});
},
);
} else {
return list;
}
}
Widget _buildListItem(BuildContext context, int index) {

View file

@ -77,6 +77,7 @@ class _HomeWidgetState extends State<HomeWidget> {
_selectedPhotos = selectedPhotos;
});
},
enablePullToSync: true,
),
_deviceFolderGalleryWidget,
_remoteFolderGalleryWidget,