create internet connection page Mohammad & Elham

merge-requests/126/head
Mohammad ALjammal 6 years ago
parent d31515d441
commit f22eec909b

@ -1,21 +1,44 @@
import 'dart:async';
import 'package:connectivity/connectivity.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:flutter/cupertino.dart';
class ProjectProvider with ChangeNotifier{
class ProjectProvider with ChangeNotifier {
DrAppSharedPreferances sharedPref = DrAppSharedPreferances();
Locale _appLocale;
String currentLanguage = 'ar';
bool _isArabic = false;
bool isInternetConnection;
Locale get appLocal => _appLocale;
bool get isArabic => _isArabic;
StreamSubscription subscription;
ProjectProvider() {
loadSharedPrefLanguage();
ProjectProvider(){
loadSharedPrefLanguage ();
subscription = Connectivity()
.onConnectivityChanged
.listen((ConnectivityResult result) {
switch (result) {
case ConnectivityResult.wifi:
isInternetConnection = true;
break;
case ConnectivityResult.mobile:
isInternetConnection = true;
break;
case ConnectivityResult.none:
isInternetConnection = false;
break;
}
notifyListeners();
});
}
void loadSharedPrefLanguage() async {
currentLanguage = await sharedPref.getString(APP_Language);
_appLocale = Locale(currentLanguage ?? 'en');
@ -40,4 +63,9 @@ class ProjectProvider with ChangeNotifier{
notifyListeners();
}
}
@override
void dispose() {
if (subscription != null) subscription.cancel();
super.dispose();
}
}

@ -1,9 +1,13 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/providers/project_provider.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import '../../presentation/doctor_app_icons.dart';
import '../../widgets/shared/app_loader_widget.dart';
import 'app_texts_widget.dart';
class AppScaffold extends StatelessWidget {
String appBarTitle;
@ -11,11 +15,16 @@ class AppScaffold extends StatelessWidget {
bool isLoading;
bool isShowAppBar;
AppScaffold({this.appBarTitle ='', this.body, this.isLoading = false, this.isShowAppBar = true});
AppScaffold(
{this.appBarTitle = '',
this.body,
this.isLoading = false,
this.isShowAppBar = true});
@override
Widget build(BuildContext context) {
AppGlobal.CONTEX = context;
ProjectProvider projectProvider = Provider.of(context);
return Scaffold(
backgroundColor: Hexcolor('#F5F5F5'),
appBar: isShowAppBar
@ -38,12 +47,28 @@ class AppScaffold extends StatelessWidget {
IconButton(
icon: Icon(DoctorApp.home_icon_active),
color: Colors.white, //Colors.black,
onPressed: () => Navigator.pushNamedAndRemoveUntil(context, HOME,(r) => false ),
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context, HOME, (r) => false),
),
],
)
: null,
body: Stack(children: <Widget>[body, buildAppLoaderWidget(isLoading)]));
body: projectProvider.isInternetConnection
? Stack(children: <Widget>[body, buildAppLoaderWidget(isLoading)])
: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SvgPicture.asset(
"assets/images/undraw_connected_world_wuay.svg",
height: 250,
),
AppText('No Internet Connection')
],
),
));
;
}
Widget buildAppLoaderWidget(bool isloading) {

Loading…
Cancel
Save