diff --git a/lib/ui/gallery.dart b/lib/ui/gallery.dart index 93e49b948..26e98ff23 100644 --- a/lib/ui/gallery.dart +++ b/lib/ui/gallery.dart @@ -6,7 +6,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:photos/core/event_bus.dart'; import 'package:photos/events/photo_opened_event.dart'; -import 'package:photos/events/photo_upload_event.dart'; import 'package:photos/models/photo.dart'; import 'package:photos/ui/detail_page.dart'; import 'package:photos/ui/loading_widget.dart'; @@ -44,7 +43,6 @@ class _GalleryState extends State { List _photos; RefreshController _refreshController = RefreshController(); StreamSubscription _photoOpenEventSubscription; - StreamSubscription _photoUploadEventSubscription; Photo _openedPhoto; @override @@ -56,19 +54,12 @@ class _GalleryState extends State { _openedPhoto = event.photo; }); }); - _photoUploadEventSubscription = - Bus.instance.on().listen((event) { - if (event.hasError) { - _refreshController.refreshFailed(); - } - }); super.initState(); } @override void dispose() { _photoOpenEventSubscription.cancel(); - _photoUploadEventSubscription.cancel(); super.dispose(); } @@ -114,7 +105,7 @@ class _GalleryState extends State { return SmartRefresher( controller: _refreshController, child: list, - header: SyncIndicator(), + header: SyncIndicator(_refreshController), onRefresh: () { widget.syncFunction().then((_) { _refreshController.refreshCompleted(); diff --git a/lib/ui/sync_indicator.dart b/lib/ui/sync_indicator.dart index b669e1a71..3be95e852 100644 --- a/lib/ui/sync_indicator.dart +++ b/lib/ui/sync_indicator.dart @@ -6,6 +6,10 @@ import 'package:photos/events/photo_upload_event.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; class SyncIndicator extends StatefulWidget { + final RefreshController refreshController; + + const SyncIndicator(this.refreshController, {Key key}) : super(key: key); + @override _SyncIndicatorState createState() => _SyncIndicatorState(); } @@ -38,7 +42,7 @@ class _SyncIndicatorState extends State { releaseText: "Release to sync.", completeText: "Sync completed.", failedText: "Sync unsuccessful.", - completeDuration: const Duration(milliseconds: 600), + completeDuration: const Duration(milliseconds: 1000), refreshStyle: RefreshStyle.UnFollow, ); } @@ -49,6 +53,7 @@ class _SyncIndicatorState extends State { } else { var s; if (_event.hasError) { + widget.refreshController.refreshFailed(); s = "Upload failed."; } else { s = "Uploading " +