Finish loader as Gif image in all cases where the network is busy

merge-update-with-lab-changes
Elham Rababah 5 years ago
parent cd7c354458
commit bf412e1edf

@ -0,0 +1 @@
8bbc713f808a1e4202d48e35ddf46f23

@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -143,7 +144,9 @@ class _HomePageState extends State<HomePage> {
new Color(
0xFFbcc2c4),
onPressed: () {
navigateToCovidDriveThru();
//TODO remove it when all the loader cases ended This is just an example
// GifLoaderDialogUtils.showMyDialog(context);
navigateToCovidDriveThru();
},
child: Text(
"BOOK NOW",

@ -0,0 +1,43 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
class GifLoaderContainer extends StatefulWidget {
@override
_GifLoaderContainerState createState() => _GifLoaderContainerState();
}
class _GifLoaderContainerState extends State<GifLoaderContainer>
with TickerProviderStateMixin {
GifController controller1;
@override
void initState() {
controller1 = GifController(vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_) {
controller1.repeat(
min: 0, max: 12, period: Duration(milliseconds: 750), reverse: true);
});
super.initState();
}
@override
void dispose() {
controller1.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Center(
//progress-loading.gif
child: Container(
margin: EdgeInsets.only(bottom: 40),
child: GifImage(
controller: controller1,
image: AssetImage(
"assets/images/progress-loading.gif"), //NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"),
),
));
}
}

@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
import 'gif_loader_container.dart';
class GifLoaderDialogUtils {
static AlertDialog dialog = AlertDialog(
backgroundColor: Colors.transparent,
content: GifLoaderContainer(),
);
static showMyDialog(BuildContext context) {
showDialog(context: context, child: dialog);
}
static hideDialog(BuildContext context) {
Navigator.of(context).pop();
}
}

@ -1,7 +1,7 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_container.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
@ -16,21 +16,14 @@ class NetworkBaseView extends StatefulWidget {
_NetworkBaseViewState createState() => _NetworkBaseViewState();
}
class _NetworkBaseViewState extends State<NetworkBaseView> with TickerProviderStateMixin{
GifController controller1;
class _NetworkBaseViewState extends State<NetworkBaseView>{
@override
void initState() {
controller1 = GifController(vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_){
controller1.repeat(min: 0,max: 12,period: Duration(milliseconds: 750),reverse: true);
});
super.initState();
}
@override
void dispose() {
controller1.dispose();
super.dispose();
}
@ -49,18 +42,15 @@ class _NetworkBaseViewState extends State<NetworkBaseView> with TickerProviderS
return widget.child;
break;
case ViewState.Busy:
return Stack(children: [Container(
height: MediaQuery.of(context).size.height,
color: Colors.grey.withOpacity(0.6),
),Center(//progress-loading.gif
child: Container(
margin: EdgeInsets.only(bottom: 40),
child: GifImage(
controller: controller1,
image: AssetImage("assets/images/progress-loading.gif"),//NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"),
return Stack(
children: [
Container(
height: MediaQuery.of(context).size.height,
color: Colors.grey.withOpacity(0.6),
),
),
)],);
GifLoaderContainer()
],
);
break;
case ViewState.Error:
return Center(
@ -71,6 +61,8 @@ class _NetworkBaseViewState extends State<NetworkBaseView> with TickerProviderS
break;
}
}
}

Loading…
Cancel
Save