diff --git a/lib/theme/theme_value.dart b/lib/theme/theme_value.dart index e209081d..e20d6439 100644 --- a/lib/theme/theme_value.dart +++ b/lib/theme/theme_value.dart @@ -45,9 +45,9 @@ defaultTheme({fontName}) { primaryTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)), iconTheme: IconThemeData(), textTheme: TextTheme( - bodyText1: TextStyle(color: Colors.black), - headline1: TextStyle(color: Colors.white), - ), + bodyText1: TextStyle(color: Colors.black), + headline1: TextStyle(color: Colors.white), + headline2: TextStyle(color: Colors.white)), appBarTheme: AppBarTheme( color: Color(0xff515A5D), brightness: Brightness.light, @@ -74,9 +74,9 @@ invertThemes({fontName}) { ), hintColor: Colors.grey[400], textTheme: TextTheme( - bodyText1: TextStyle(color: Colors.white), - headline1: TextStyle(color: Colors.white), - ), + bodyText1: TextStyle(color: Colors.white), + headline1: TextStyle(color: Colors.white), + headline2: TextStyle(color: Colors.white)), disabledColor: Colors.grey[800], errorColor: Color.fromRGBO(235, 80, 60, 1.0), scaffoldBackgroundColor: Color(0xff000000), // Colors.grey[100], @@ -125,6 +125,7 @@ bwThemes({fontName}) { textTheme: TextTheme( bodyText1: TextStyle(color: Colors.red[900]), headline1: TextStyle(color: Colors.red[900]), + headline2: TextStyle(color: Colors.white), bodyText2: TextStyle(color: Colors.red[900]), subtitle1: TextStyle(color: Colors.red[900]), ), diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index c08d68a4..5b3e1c8c 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -183,10 +183,9 @@ class Utils { // } } - static getPhoneNumberWithoutZero(String number){ - String newNumber=""; - if(number.startsWith('0')) - { + static getPhoneNumberWithoutZero(String number) { + String newNumber = ""; + if (number.startsWith('0')) { newNumber = number.substring(1); } return newNumber; @@ -202,7 +201,11 @@ class Utils { .hasMatch(email); } - static List myMedicalList({ProjectViewModel projectViewModel, BuildContext context, bool isLogin, count}) { + static List myMedicalList( + {ProjectViewModel projectViewModel, + BuildContext context, + bool isLogin, + count}) { List medical = List(); if (projectViewModel.havePrivilege(5)) { medical.add(InkWell( @@ -406,16 +409,16 @@ class Utils { )); } if (projectViewModel.havePrivilege(20)) - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: HomeReportPage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).medical, - imagePath: 'medical_reports_icon.png', - subTitle: TranslationBase.of(context).medicalSubtitle, - ), - )); + medical.add(InkWell( + onTap: () { + Navigator.push(context, FadePage(page: HomeReportPage())); + }, + child: MedicalProfileItem( + title: TranslationBase.of(context).medical, + imagePath: 'medical_reports_icon.png', + subTitle: TranslationBase.of(context).medicalSubtitle, + ), + )); if (projectViewModel.havePrivilege(19)) { medical.add(InkWell( @@ -477,16 +480,16 @@ class Utils { )); } if (projectViewModel.havePrivilege(30)) - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: SmartWatchInstructions())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).smartWatches, - imagePath: 'smartwatch_icon.png', - subTitle: TranslationBase.of(context).smartWatchesSubtitle, - ), - )); + medical.add(InkWell( + onTap: () { + Navigator.push(context, FadePage(page: SmartWatchInstructions())); + }, + child: MedicalProfileItem( + title: TranslationBase.of(context).smartWatches, + imagePath: 'smartwatch_icon.png', + subTitle: TranslationBase.of(context).smartWatchesSubtitle, + ), + )); if (projectViewModel.havePrivilege(28)) { medical.add(InkWell( @@ -500,25 +503,29 @@ class Utils { ), )); } - if (projectViewModel.havePrivilege(32) || true) { + if (projectViewModel.havePrivilege(32) || true) { medical.add(InkWell( - onTap: () { - userData().then((userData_){ - if (projectViewModel.isLogin && userData_ != null) { - String patientID = userData_.patientID.toString(); - GifLoaderDialogUtils.showMyDialog(context); - projectViewModel.platformBridge().connectHMGInternetWifi(patientID).then((value) => {GifLoaderDialogUtils.hideDialog(context)}); - } else { - AlertDialogBox( - context: context, - confirmMessage: "Please login with your account first to use this feature", - okText: "OK", - okFunction: () { - AlertDialogBox.closeAlertDialog(context); - }).showAlertDialog(context); - } - }); - }, + onTap: () { + userData().then((userData_) { + if (projectViewModel.isLogin && userData_ != null) { + String patientID = userData_.patientID.toString(); + GifLoaderDialogUtils.showMyDialog(context); + projectViewModel + .platformBridge() + .connectHMGInternetWifi(patientID) + .then((value) => {GifLoaderDialogUtils.hideDialog(context)}); + } else { + AlertDialogBox( + context: context, + confirmMessage: + "Please login with your account first to use this feature", + okText: "OK", + okFunction: () { + AlertDialogBox.closeAlertDialog(context); + }).showAlertDialog(context); + } + }); + }, child: MedicalProfileItem( title: TranslationBase.of(context).internet, imagePath: 'insurance_card_icon.png', @@ -546,12 +553,11 @@ class Utils { } Future userData() async { - var userData = AuthenticatedUser.fromJson(await AppSharedPreferences().getObject(MAIN_USER)); + var userData = AuthenticatedUser.fromJson( + await AppSharedPreferences().getObject(MAIN_USER)); return userData; } - - // extension function that use in iterations(list.. etc) to iterate items and get index and item it self extension IndexedIterable on Iterable { Iterable mapIndexed(T Function(E e, int i) f) { diff --git a/lib/widgets/data_display/services)contaniner.dart b/lib/widgets/data_display/services)contaniner.dart index cb0b3774..e435539f 100644 --- a/lib/widgets/data_display/services)contaniner.dart +++ b/lib/widgets/data_display/services)contaniner.dart @@ -15,7 +15,7 @@ class ServicesContainer extends StatelessWidget { height: 60, margin: EdgeInsets.all(8), decoration: BoxDecoration( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(7), ), @@ -38,6 +38,7 @@ class ServicesContainer extends StatelessWidget { Texts( title, fontSize: 16, + color: Colors.black, ), ], ), diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 8822526c..d5ddf3a9 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -61,394 +61,416 @@ class _AppDrawerState extends State { @override Widget build(BuildContext context) { projectProvider = Provider.of(context); - return SizedBox( - width: MediaQuery.of(context).size.width * 0.75, - child: Container( - color: Colors.white, - child: Drawer( - child: Column( - children: [ - Expanded( - flex: 4, - child: ListView( - padding: EdgeInsets.zero, - children: [ - Container( - height: SizeConfig.screenHeight * .30, - child: InkWell( - child: DrawerHeader( - child: Column( - children: [ - Container( - child: - Image.asset('assets/images/logo_HMG.png'), - margin: EdgeInsets.all( - SizeConfig.imageSizeMultiplier * 4), - ), - (user != null && projectProvider.isLogin) - ? Padding( - padding: EdgeInsets.all(15), - child: Column( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Row( + return Container( + width: MediaQuery.of(context).size.width * 0.75, + color: Theme.of(context).scaffoldBackgroundColor, + child: Container( + // color: Colors.white, + child: Theme( + data: Theme.of(context).copyWith( + canvasColor: Theme.of(context).scaffoldBackgroundColor), + child: Drawer( + child: Column( + children: [ + Expanded( + flex: 4, + child: ListView( + padding: EdgeInsets.zero, + children: [ + Container( + height: SizeConfig.screenHeight * .30, + child: InkWell( + child: DrawerHeader( + child: Column( + children: [ + Container( + child: Image.asset( + 'assets/images/logo_HMG.png'), + margin: EdgeInsets.all( + SizeConfig.imageSizeMultiplier * 4), + ), + (user != null && projectProvider.isLogin) + ? Padding( + padding: EdgeInsets.all(15), + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, children: [ - Padding( - padding: EdgeInsets.only( - right: 5), - child: Icon( - Icons.account_circle, + Row( + children: [ + Padding( + padding: + EdgeInsets.only( + right: 5), + child: Icon( + Icons.account_circle, + color: + Color(0xFF40ACC9), + )), + AppText( + user.firstName + + ' ' + + user.lastName, color: Color(0xFF40ACC9), + ) + ], + ), + Row(children: [ + Padding( + padding: EdgeInsets.only( + left: 30, top: 5), + child: Column( + children: [ + AppText( + TranslationBase.of( + context) + .fileno + + ": " + + user.patientID + .toString(), + color: Color( + 0xFF40ACC9), + fontSize: SizeConfig + .textMultiplier * + 1.5, + ), + AppText( + user.bloodGroup != + null + ? 'Blood Group: ' + + user.bloodGroup + : '', + fontSize: SizeConfig + .textMultiplier * + 1.5, + ), + ], + )) + ]) + ])) + : SizedBox(), + ], + ), + ), + ), + ), + Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + InkWell( + child: DrawerItem( + TranslationBase.of(context).arabicChange, + Icons.translate), + onTap: () { + sharedPref.setBool(IS_ROBOT_INIT, null); + if (projectProvider.isArabic) { + projectProvider.changeLanguage('en'); + } else { + projectProvider.changeLanguage('ar'); + } + }, + ), + (user != null && projectProvider.isLogin) + ? Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + (user.isFamily == null || + user.isFamily == false) && + projectProvider.havePrivilege(2) + ? InkWell( + child: DrawerItem( + TranslationBase.of(context) + .family, + Icons.group, + textColor: Theme.of(context) + .textTheme + .bodyText1 + .color, + iconColor: Theme.of(context) + .textTheme + .bodyText1 + .color, + bottomLine: false, + sideArrow: true, + ), + onTap: () { + Navigator.of(context).pushNamed( + MY_FAMILIY, + ); + }, + ) + : SizedBox(), + FutureBuilder( + future: getFamilyFiles(), // async work + builder: (BuildContext context, + AsyncSnapshot< + GetAllSharedRecordsByStatusResponse> + snapshot) { + switch (snapshot.connectionState) { + case ConnectionState.waiting: + return Padding( + padding: EdgeInsets.all(10), + child: Text('')); + default: + if (snapshot.hasError) + return Padding( + padding: EdgeInsets.all(10), + child: + Text(snapshot.error)); + else + return Container( + decoration: BoxDecoration( + border: Border( + bottom: BorderSide( + // <--- left side + color: Colors.grey[200], + width: 1.0, + ), )), - AppText( - user.firstName + - ' ' + - user.lastName, - color: Color(0xFF40ACC9), - ) - ], - ), - Row(children: [ - Padding( - padding: EdgeInsets.only( - left: 30, top: 5), - child: Column( - children: [ - AppText( - TranslationBase.of( - context) - .fileno + - ": " + - user.patientID - .toString(), - color: - Color(0xFF40ACC9), - fontSize: SizeConfig - .textMultiplier * - 1.5, + child: Column( + children: [ + user.isFamily == true + ? Container( + padding: EdgeInsets + .only( + bottom: + 5), + child: InkWell( + onTap: () { + switchUser( + mainUser, + context); + }, + child: Row( + crossAxisAlignment: + CrossAxisAlignment + .start, + children: < + Widget>[ + Expanded( + child: + Icon(Icons.person), + ), + Expanded( + flex: + 7, + child: + Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + AppText(mainUser.firstName + ' ' + mainUser.lastName, color: Theme.of(context).textTheme.bodyText1.color), + AppText( + TranslationBase.of(context).fileno + ": " + mainUser.patientID.toString(), + color: Theme.of(context).textTheme.bodyText1.color, + ), + ])), + ], + ))) + : SizedBox(), + Column( + mainAxisAlignment: + MainAxisAlignment + .start, + mainAxisSize: + MainAxisSize + .min, + children: snapshot + .data + .getAllSharedRecordsByStatusList + .map( + (result) { + return result + .status == + 3 + ? Container( + padding: EdgeInsets.only( + bottom: + 5), + child: InkWell( + onTap: () { + switchUser(result, + context); + }, + child: Row( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Expanded( + child: Icon(Icons.person, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), + ), + Expanded( + flex: 7, + child: Padding( + padding: EdgeInsets.only(left: 5, right: 5), + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + AppText(result.patientName, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), + AppText(TranslationBase.of(context).fileno + ": " + result.iD.toString(), color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), + ]))), + ], + ))) + : SizedBox(); + }).toList()) + ], + )); + } + }, + ), + InkWell( + child: Stack( + children: [ + DrawerItem( + TranslationBase.of(context) + .notification, + Icons.notifications, + count: notificationCount != null + ? new Container( + padding: + EdgeInsets.all(4), + margin: EdgeInsets.all(2), + decoration: + new BoxDecoration( + color: Colors.red, + borderRadius: + BorderRadius + .circular(20), ), - AppText( - user.bloodGroup != null - ? 'Blood Group: ' + - user.bloodGroup - : '', - fontSize: SizeConfig - .textMultiplier * - 1.5, + constraints: + BoxConstraints( + minWidth: 20, + minHeight: 20, ), - ], - )) - ]) - ])) - : SizedBox(), - ], - ), - ), - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - InkWell( - child: DrawerItem( - TranslationBase.of(context).arabicChange, - Icons.translate), - onTap: () { - sharedPref.setBool(IS_ROBOT_INIT, null); - if (projectProvider.isArabic) { - projectProvider.changeLanguage('en'); - } else { - projectProvider.changeLanguage('ar'); - } - }, - ), - (user != null && projectProvider.isLogin) - ? Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - (user.isFamily == null || - user.isFamily == false) && - projectProvider.havePrivilege(2) - ? InkWell( + child: new Text( + notificationCount, + style: new TextStyle( + color: Colors.white, + fontSize: + projectProvider + .isArabic + ? 8 + : 9, + ), + textAlign: + TextAlign.center, + ), + // ), + ) + : SizedBox(), + ), + ], + ), + onTap: () { + //NotificationsPage + Navigator.of(context).pop(); + Navigator.push( + context, + FadePage( + page: NotificationsPage())); + }, + ), + if (projectProvider.havePrivilege(3)) + InkWell( child: DrawerItem( - TranslationBase.of(context).family, - Icons.group, - textColor: Theme.of(context) - .textTheme - .bodyText1 - .color, - iconColor: Theme.of(context) - .textTheme - .bodyText1 - .color, - bottomLine: false, - sideArrow: true, - ), + TranslationBase.of(context) + .appsetting, + Icons.settings_input_composite), onTap: () { Navigator.of(context).pushNamed( - MY_FAMILIY, + SETTINGS, ); }, - ) - : SizedBox(), - FutureBuilder( - future: getFamilyFiles(), // async work - builder: (BuildContext context, - AsyncSnapshot< - GetAllSharedRecordsByStatusResponse> - snapshot) { - switch (snapshot.connectionState) { - case ConnectionState.waiting: - return Padding( - padding: EdgeInsets.all(10), - child: Text('')); - default: - if (snapshot.hasError) - return Padding( - padding: EdgeInsets.all(10), - child: Text(snapshot.error)); - else - return Container( - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - // <--- left side - color: Colors.grey[200], - width: 1.0, - ), - )), - child: Column( - children: [ - user.isFamily == true - ? Container( - padding: - EdgeInsets.only( - bottom: 5), - child: InkWell( - onTap: () { - switchUser( - mainUser, - context); - }, - child: Row( - crossAxisAlignment: - CrossAxisAlignment - .start, - children: < - Widget>[ - Expanded( - child: Icon( - Icons - .person), - ), - Expanded( - flex: 7, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText(mainUser.firstName + ' ' + mainUser.lastName), - AppText(TranslationBase.of(context).fileno + ": " + mainUser.patientID.toString()), - ])), - ], - ))) - : SizedBox(), - Column( - mainAxisAlignment: - MainAxisAlignment - .start, - mainAxisSize: - MainAxisSize.min, - children: snapshot.data - .getAllSharedRecordsByStatusList - .map( - (result) { - return result - .status == - 3 - ? Container( - padding: EdgeInsets - .only( - bottom: - 5), - child: InkWell( - onTap: () { - switchUser( - result, - context); - }, - child: Row( - crossAxisAlignment: - CrossAxisAlignment.start, - children: < - Widget>[ - Expanded( - child: - Icon(Icons.person, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), - ), - Expanded( - flex: 7, - child: Padding( - padding: EdgeInsets.only(left: 5, right: 5), - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - AppText(result.patientName, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), - AppText(TranslationBase.of(context).fileno + ": " + result.iD.toString(), color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), - ]))), - ], - ))) - : SizedBox(); - }).toList()) - ], - )); - } - }, - ), - InkWell( - child: Stack( - children: [ - DrawerItem( - TranslationBase.of(context) - .notification, - Icons.notifications, - count: notificationCount != null - ? new Container( - padding: EdgeInsets.all(4), - margin: EdgeInsets.all(2), - decoration: new BoxDecoration( - color: Colors.red, - borderRadius: - BorderRadius.circular( - 20), - ), - constraints: BoxConstraints( - minWidth: 20, - minHeight: 20, - ), - child: new Text( - notificationCount, - style: new TextStyle( - color: Colors.white, - fontSize: projectProvider - .isArabic - ? 8 - : 9, - ), - textAlign: TextAlign.center, - ), - // ), - ) - : SizedBox(), ), - ], - ), - onTap: () { - //NotificationsPage - Navigator.of(context).pop(); - Navigator.push(context, - FadePage(page: NotificationsPage())); - }, - ), - if (projectProvider.havePrivilege(3)) - InkWell( - child: DrawerItem( - TranslationBase.of(context) - .appsetting, - Icons.settings_input_composite), - onTap: () { - Navigator.of(context).pushNamed( - SETTINGS, - ); - }, - ), - InkWell( - child: DrawerItem( - TranslationBase.of(context).rateApp, - Icons.star), - onTap: () { - if (Platform.isIOS) { - launch( - "https://apps.apple.com/sa/app/dr-suliaman-alhabib/id733503978"); - } else { - launch( - "https://play.google.com/store/apps/details?id=com.ejada.hmg&hl=en"); - } - }, - ), - InkWell( + InkWell( + child: DrawerItem( + TranslationBase.of(context).rateApp, + Icons.star), + onTap: () { + if (Platform.isIOS) { + launch( + "https://apps.apple.com/sa/app/dr-suliaman-alhabib/id733503978"); + } else { + launch( + "https://play.google.com/store/apps/details?id=com.ejada.hmg&hl=en"); + } + }, + ), + InkWell( + child: DrawerItem( + TranslationBase.of(context).logout, + Icons.lock_open), + onTap: () { + logout(); + }, + ) + ], + ) + : InkWell( child: DrawerItem( - TranslationBase.of(context).logout, + TranslationBase.of(context) + .loginregister, Icons.lock_open), onTap: () { - logout(); + login(); }, - ) - ], - ) - : InkWell( - child: DrawerItem( - TranslationBase.of(context).loginregister, - Icons.lock_open), - onTap: () { - login(); - }, - ), - // InkWell( - // child: DrawerItem( - // TranslationBase.of(context).appsetting, - // Icons.settings_input_composite), - // onTap: () { - // Navigator.of(context).pushNamed( - // SETTINGS, - // ); - // }, - // ) + ), + // InkWell( + // child: DrawerItem( + // TranslationBase.of(context).appsetting, + // Icons.settings_input_composite), + // onTap: () { + // Navigator.of(context).pushNamed( + // SETTINGS, + // ); + // }, + // ) + ], + )) ], - ) - ], - ), - ), - Expanded( - flex: 1, - child: Column( - children: [ - Container( - child: Align( - alignment: FractionalOffset.bottomCenter, - child: Container( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text(TranslationBase.of(context).poweredBy), - Image.asset( - 'assets/images/cs_logo_container.png', - width: SizeConfig.imageSizeMultiplier * 30, - ) - ], - ), - Column( - children: [ - Image.asset( - 'assets/images/new-design/vidamobile.png', - width: SizeConfig.imageSizeMultiplier * 25, - ) + ), + ), + Expanded( + flex: 1, + child: Column( + children: [ + Container( + child: Align( + alignment: FractionalOffset.bottomCenter, + child: Container( + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text(TranslationBase.of(context) + .poweredBy), + Image.asset( + 'assets/images/cs_logo_container.png', + width: + SizeConfig.imageSizeMultiplier * 30, + ) + ], + ), + Column( + children: [ + Image.asset( + 'assets/images/new-design/vidamobile.png', + width: + SizeConfig.imageSizeMultiplier * 25, + ) + ], + ), ], ), - ], + ), ), - ), - ), - ) - ], - ), - ) - ], + ) + ], + ), + ) + ], + ), + ), ), - ), - ), - ); + )); } drawerNavigator(context, routeName) {