~cytrogen/fluent-reader-mobile

ref: 28b99e817dde641dec7cce333f69d2911758df23 fluent-reader-mobile/lib/components/sync_control.dart -rw-r--r-- 760 bytes
28b99e81 — Cytrogen feat: add subscription search/sort, rewrite README, upgrade infrastructure 4 hours 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
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();
    void 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,
    );
  }
}