Make Gallery agnostic to the photo-upload events
This commit is contained in:
parent
bdb317956a
commit
0e5416d4ff
2 changed files with 7 additions and 11 deletions
|
@ -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<Gallery> {
|
|||
List<Photo> _photos;
|
||||
RefreshController _refreshController = RefreshController();
|
||||
StreamSubscription<PhotoOpenedEvent> _photoOpenEventSubscription;
|
||||
StreamSubscription<PhotoUploadEvent> _photoUploadEventSubscription;
|
||||
Photo _openedPhoto;
|
||||
|
||||
@override
|
||||
|
@ -56,19 +54,12 @@ class _GalleryState extends State<Gallery> {
|
|||
_openedPhoto = event.photo;
|
||||
});
|
||||
});
|
||||
_photoUploadEventSubscription =
|
||||
Bus.instance.on<PhotoUploadEvent>().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<Gallery> {
|
|||
return SmartRefresher(
|
||||
controller: _refreshController,
|
||||
child: list,
|
||||
header: SyncIndicator(),
|
||||
header: SyncIndicator(_refreshController),
|
||||
onRefresh: () {
|
||||
widget.syncFunction().then((_) {
|
||||
_refreshController.refreshCompleted();
|
||||
|
|
|
@ -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<SyncIndicator> {
|
|||
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<SyncIndicator> {
|
|||
} else {
|
||||
var s;
|
||||
if (_event.hasError) {
|
||||
widget.refreshController.refreshFailed();
|
||||
s = "Upload failed.";
|
||||
} else {
|
||||
s = "Uploading " +
|
||||
|
|
Loading…
Add table
Reference in a new issue