add structure

This commit is contained in:
2020-05-29 07:45:27 +06:30
parent 4c851d9971
commit bad27ba5c4
272 changed files with 36065 additions and 174 deletions

View File

@@ -0,0 +1,52 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/main_model.dart';
class OfflineRedirect extends StatefulWidget {
final Widget child;
OfflineRedirect({@required this.child});
@override
_OfflineRedirectState createState() => _OfflineRedirectState();
}
class _OfflineRedirectState extends State<OfflineRedirect> {
Timer offlineTimer;
@override
void initState() {
super.initState();
}
@override
void didChangeDependencies() {
_startOfflineTimer();
super.didChangeDependencies();
}
_startOfflineTimer() async {
if (offlineTimer!=null && offlineTimer.isActive) return;
var _duration = new Duration(milliseconds: 500);
this.offlineTimer = new Timer.periodic(_duration, offlineNav);
}
Future<void> offlineNav(Timer timer) async {
MainModel mainModel = Provider.of<MainModel>(context, listen: false);
if (!mainModel.isOnline) {
timer.cancel();
Navigator.pushNamedAndRemoveUntil(context, "/", (r) => false);
}
}
void dispose() {
offlineTimer.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return widget.child;
}
}