~cytrogen/fluent-reader-mobile

ref: 2dedfb7640af6719d3d4c1d2f699a717dbb186f2 fluent-reader-mobile/lib/components/sync_control.dart -rw-r--r-- 782 bytes
2dedfb76 — Bruce Liu add splash screens 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import 'dart:async';

import 'package:fluent_reader_lite/utils/global.dart';
import 'package:flutter/cupertino.dart';

class SyncControl extends StatefulWidget {
  @override
  _SyncControlState createState() => _SyncControlState();
}

class _SyncControlState extends State<SyncControl> {
  Future<void> _onRefresh() {
    var completer = Completer();
    Function listener;
    listener = () {
      if (!Global.syncModel.syncing) {
        completer.complete();
        Global.syncModel.removeListener(listener);
      }
    };
    Global.syncModel.addListener(listener);
    Global.syncModel.syncWithService();
    return completer.future;
  }

  @override
  Widget build(BuildContext context) {
    return CupertinoSliverRefreshControl(
      onRefresh: _onRefresh,
    );
  }
}