bug fixes

merge-update-with-lab-changes
Sultan Khan 5 years ago
parent ca2a48e860
commit 9bfd725e4f

@ -45,9 +45,9 @@ defaultTheme({fontName}) {
primaryTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)), primaryTextTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)),
iconTheme: IconThemeData(), iconTheme: IconThemeData(),
textTheme: TextTheme( textTheme: TextTheme(
bodyText1: TextStyle(color: Colors.black), bodyText1: TextStyle(color: Colors.black),
headline1: TextStyle(color: Colors.white), headline1: TextStyle(color: Colors.white),
), headline2: TextStyle(color: Colors.white)),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
color: Color(0xff515A5D), color: Color(0xff515A5D),
brightness: Brightness.light, brightness: Brightness.light,
@ -74,9 +74,9 @@ invertThemes({fontName}) {
), ),
hintColor: Colors.grey[400], hintColor: Colors.grey[400],
textTheme: TextTheme( textTheme: TextTheme(
bodyText1: TextStyle(color: Colors.white), bodyText1: TextStyle(color: Colors.white),
headline1: TextStyle(color: Colors.white), headline1: TextStyle(color: Colors.white),
), headline2: TextStyle(color: Colors.white)),
disabledColor: Colors.grey[800], disabledColor: Colors.grey[800],
errorColor: Color.fromRGBO(235, 80, 60, 1.0), errorColor: Color.fromRGBO(235, 80, 60, 1.0),
scaffoldBackgroundColor: Color(0xff000000), // Colors.grey[100], scaffoldBackgroundColor: Color(0xff000000), // Colors.grey[100],
@ -125,6 +125,7 @@ bwThemes({fontName}) {
textTheme: TextTheme( textTheme: TextTheme(
bodyText1: TextStyle(color: Colors.red[900]), bodyText1: TextStyle(color: Colors.red[900]),
headline1: TextStyle(color: Colors.red[900]), headline1: TextStyle(color: Colors.red[900]),
headline2: TextStyle(color: Colors.white),
bodyText2: TextStyle(color: Colors.red[900]), bodyText2: TextStyle(color: Colors.red[900]),
subtitle1: TextStyle(color: Colors.red[900]), subtitle1: TextStyle(color: Colors.red[900]),
), ),

@ -183,10 +183,9 @@ class Utils {
// } // }
} }
static getPhoneNumberWithoutZero(String number){ static getPhoneNumberWithoutZero(String number) {
String newNumber=""; String newNumber = "";
if(number.startsWith('0')) if (number.startsWith('0')) {
{
newNumber = number.substring(1); newNumber = number.substring(1);
} }
return newNumber; return newNumber;
@ -202,7 +201,11 @@ class Utils {
.hasMatch(email); .hasMatch(email);
} }
static List<Widget> myMedicalList({ProjectViewModel projectViewModel, BuildContext context, bool isLogin, count}) { static List<Widget> myMedicalList(
{ProjectViewModel projectViewModel,
BuildContext context,
bool isLogin,
count}) {
List<Widget> medical = List(); List<Widget> medical = List();
if (projectViewModel.havePrivilege(5)) { if (projectViewModel.havePrivilege(5)) {
medical.add(InkWell( medical.add(InkWell(
@ -406,16 +409,16 @@ class Utils {
)); ));
} }
if (projectViewModel.havePrivilege(20)) if (projectViewModel.havePrivilege(20))
medical.add(InkWell( medical.add(InkWell(
onTap: () { onTap: () {
Navigator.push(context, FadePage(page: HomeReportPage())); Navigator.push(context, FadePage(page: HomeReportPage()));
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).medical, title: TranslationBase.of(context).medical,
imagePath: 'medical_reports_icon.png', imagePath: 'medical_reports_icon.png',
subTitle: TranslationBase.of(context).medicalSubtitle, subTitle: TranslationBase.of(context).medicalSubtitle,
), ),
)); ));
if (projectViewModel.havePrivilege(19)) { if (projectViewModel.havePrivilege(19)) {
medical.add(InkWell( medical.add(InkWell(
@ -477,16 +480,16 @@ class Utils {
)); ));
} }
if (projectViewModel.havePrivilege(30)) if (projectViewModel.havePrivilege(30))
medical.add(InkWell( medical.add(InkWell(
onTap: () { onTap: () {
Navigator.push(context, FadePage(page: SmartWatchInstructions())); Navigator.push(context, FadePage(page: SmartWatchInstructions()));
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).smartWatches, title: TranslationBase.of(context).smartWatches,
imagePath: 'smartwatch_icon.png', imagePath: 'smartwatch_icon.png',
subTitle: TranslationBase.of(context).smartWatchesSubtitle, subTitle: TranslationBase.of(context).smartWatchesSubtitle,
), ),
)); ));
if (projectViewModel.havePrivilege(28)) { if (projectViewModel.havePrivilege(28)) {
medical.add(InkWell( medical.add(InkWell(
@ -500,25 +503,29 @@ class Utils {
), ),
)); ));
} }
if (projectViewModel.havePrivilege(32) || true) { if (projectViewModel.havePrivilege(32) || true) {
medical.add(InkWell( medical.add(InkWell(
onTap: () { onTap: () {
userData().then((userData_){ userData().then((userData_) {
if (projectViewModel.isLogin && userData_ != null) { if (projectViewModel.isLogin && userData_ != null) {
String patientID = userData_.patientID.toString(); String patientID = userData_.patientID.toString();
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
projectViewModel.platformBridge().connectHMGInternetWifi(patientID).then((value) => {GifLoaderDialogUtils.hideDialog(context)}); projectViewModel
} else { .platformBridge()
AlertDialogBox( .connectHMGInternetWifi(patientID)
context: context, .then((value) => {GifLoaderDialogUtils.hideDialog(context)});
confirmMessage: "Please login with your account first to use this feature", } else {
okText: "OK", AlertDialogBox(
okFunction: () { context: context,
AlertDialogBox.closeAlertDialog(context); confirmMessage:
}).showAlertDialog(context); "Please login with your account first to use this feature",
} okText: "OK",
}); okFunction: () {
}, AlertDialogBox.closeAlertDialog(context);
}).showAlertDialog(context);
}
});
},
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).internet, title: TranslationBase.of(context).internet,
imagePath: 'insurance_card_icon.png', imagePath: 'insurance_card_icon.png',
@ -546,12 +553,11 @@ class Utils {
} }
Future<AuthenticatedUser> userData() async { Future<AuthenticatedUser> userData() async {
var userData = AuthenticatedUser.fromJson(await AppSharedPreferences().getObject(MAIN_USER)); var userData = AuthenticatedUser.fromJson(
await AppSharedPreferences().getObject(MAIN_USER));
return userData; return userData;
} }
// extension function that use in iterations(list.. etc) to iterate items and get index and item it self // extension function that use in iterations(list.. etc) to iterate items and get index and item it self
extension IndexedIterable<E> on Iterable<E> { extension IndexedIterable<E> on Iterable<E> {
Iterable<T> mapIndexed<T>(T Function(E e, int i) f) { Iterable<T> mapIndexed<T>(T Function(E e, int i) f) {

@ -15,7 +15,7 @@ class ServicesContainer extends StatelessWidget {
height: 60, height: 60,
margin: EdgeInsets.all(8), margin: EdgeInsets.all(8),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Theme.of(context).primaryColor, color: Theme.of(context).textTheme.headline2.color,
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(7), borderRadius: BorderRadius.circular(7),
), ),
@ -38,6 +38,7 @@ class ServicesContainer extends StatelessWidget {
Texts( Texts(
title, title,
fontSize: 16, fontSize: 16,
color: Colors.black,
), ),
], ],
), ),

@ -61,394 +61,416 @@ class _AppDrawerState extends State<AppDrawer> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectProvider = Provider.of(context); projectProvider = Provider.of(context);
return SizedBox( return Container(
width: MediaQuery.of(context).size.width * 0.75, width: MediaQuery.of(context).size.width * 0.75,
child: Container( color: Theme.of(context).scaffoldBackgroundColor,
color: Colors.white, child: Container(
child: Drawer( // color: Colors.white,
child: Column( child: Theme(
children: <Widget>[ data: Theme.of(context).copyWith(
Expanded( canvasColor: Theme.of(context).scaffoldBackgroundColor),
flex: 4, child: Drawer(
child: ListView( child: Column(
padding: EdgeInsets.zero, children: <Widget>[
children: <Widget>[ Expanded(
Container( flex: 4,
height: SizeConfig.screenHeight * .30, child: ListView(
child: InkWell( padding: EdgeInsets.zero,
child: DrawerHeader( children: <Widget>[
child: Column( Container(
children: <Widget>[ height: SizeConfig.screenHeight * .30,
Container( child: InkWell(
child: child: DrawerHeader(
Image.asset('assets/images/logo_HMG.png'), child: Column(
margin: EdgeInsets.all( children: <Widget>[
SizeConfig.imageSizeMultiplier * 4), Container(
), child: Image.asset(
(user != null && projectProvider.isLogin) 'assets/images/logo_HMG.png'),
? Padding( margin: EdgeInsets.all(
padding: EdgeInsets.all(15), SizeConfig.imageSizeMultiplier * 4),
child: Column( ),
mainAxisAlignment: (user != null && projectProvider.isLogin)
MainAxisAlignment.start, ? Padding(
children: <Widget>[ padding: EdgeInsets.all(15),
Row( child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Padding( Row(
padding: EdgeInsets.only( children: <Widget>[
right: 5), Padding(
child: Icon( padding:
Icons.account_circle, EdgeInsets.only(
right: 5),
child: Icon(
Icons.account_circle,
color:
Color(0xFF40ACC9),
)),
AppText(
user.firstName +
' ' +
user.lastName,
color: Color(0xFF40ACC9), color: Color(0xFF40ACC9),
)
],
),
Row(children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 30, top: 5),
child: Column(
children: <Widget>[
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: <Widget>[
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: <Widget>[
(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( child: Column(
user.firstName + children: [
' ' + user.isFamily == true
user.lastName, ? Container(
color: Color(0xFF40ACC9), padding: EdgeInsets
) .only(
], bottom:
), 5),
Row(children: <Widget>[ child: InkWell(
Padding( onTap: () {
padding: EdgeInsets.only( switchUser(
left: 30, top: 5), mainUser,
child: Column( context);
children: <Widget>[ },
AppText( child: Row(
TranslationBase.of( crossAxisAlignment:
context) CrossAxisAlignment
.fileno + .start,
": " + children: <
user.patientID Widget>[
.toString(), Expanded(
color: child:
Color(0xFF40ACC9), Icon(Icons.person),
fontSize: SizeConfig ),
.textMultiplier * Expanded(
1.5, flex:
7,
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
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<Widget>(
(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: <Widget>[
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( constraints:
user.bloodGroup != null BoxConstraints(
? 'Blood Group: ' + minWidth: 20,
user.bloodGroup minHeight: 20,
: '',
fontSize: SizeConfig
.textMultiplier *
1.5,
), ),
], child: new Text(
)) notificationCount,
]) style: new TextStyle(
])) color: Colors.white,
: SizedBox(), fontSize:
], projectProvider
), .isArabic
), ? 8
), : 9,
), ),
Column( textAlign:
mainAxisAlignment: MainAxisAlignment.start, TextAlign.center,
children: <Widget>[ ),
InkWell( // ),
child: DrawerItem( )
TranslationBase.of(context).arabicChange, : SizedBox(),
Icons.translate), ),
onTap: () { ],
sharedPref.setBool(IS_ROBOT_INIT, null); ),
if (projectProvider.isArabic) { onTap: () {
projectProvider.changeLanguage('en'); //NotificationsPage
} else { Navigator.of(context).pop();
projectProvider.changeLanguage('ar'); Navigator.push(
} context,
}, FadePage(
), page: NotificationsPage()));
(user != null && projectProvider.isLogin) },
? Column( ),
mainAxisAlignment: MainAxisAlignment.start, if (projectProvider.havePrivilege(3))
children: <Widget>[ InkWell(
(user.isFamily == null ||
user.isFamily == false) &&
projectProvider.havePrivilege(2)
? InkWell(
child: DrawerItem( child: DrawerItem(
TranslationBase.of(context).family, TranslationBase.of(context)
Icons.group, .appsetting,
textColor: Theme.of(context) Icons.settings_input_composite),
.textTheme
.bodyText1
.color,
iconColor: Theme.of(context)
.textTheme
.bodyText1
.color,
bottomLine: false,
sideArrow: true,
),
onTap: () { onTap: () {
Navigator.of(context).pushNamed( 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: <Widget>[
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<Widget>(
(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: <Widget>[
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(),
), ),
], InkWell(
), child: DrawerItem(
onTap: () { TranslationBase.of(context).rateApp,
//NotificationsPage Icons.star),
Navigator.of(context).pop(); onTap: () {
Navigator.push(context, if (Platform.isIOS) {
FadePage(page: NotificationsPage())); launch(
}, "https://apps.apple.com/sa/app/dr-suliaman-alhabib/id733503978");
), } else {
if (projectProvider.havePrivilege(3)) launch(
InkWell( "https://play.google.com/store/apps/details?id=com.ejada.hmg&hl=en");
child: DrawerItem( }
TranslationBase.of(context) },
.appsetting, ),
Icons.settings_input_composite), InkWell(
onTap: () { child: DrawerItem(
Navigator.of(context).pushNamed( TranslationBase.of(context).logout,
SETTINGS, Icons.lock_open),
); onTap: () {
}, logout();
), },
InkWell( )
child: DrawerItem( ],
TranslationBase.of(context).rateApp, )
Icons.star), : InkWell(
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( child: DrawerItem(
TranslationBase.of(context).logout, TranslationBase.of(context)
.loginregister,
Icons.lock_open), Icons.lock_open),
onTap: () { onTap: () {
logout(); login();
}, },
) ),
], // InkWell(
) // child: DrawerItem(
: InkWell( // TranslationBase.of(context).appsetting,
child: DrawerItem( // Icons.settings_input_composite),
TranslationBase.of(context).loginregister, // onTap: () {
Icons.lock_open), // Navigator.of(context).pushNamed(
onTap: () { // SETTINGS,
login(); // );
}, // },
), // )
// InkWell( ],
// child: DrawerItem( ))
// TranslationBase.of(context).appsetting,
// Icons.settings_input_composite),
// onTap: () {
// Navigator.of(context).pushNamed(
// SETTINGS,
// );
// },
// )
], ],
) ),
], ),
), Expanded(
), flex: 1,
Expanded( child: Column(
flex: 1, children: <Widget>[
child: Column( Container(
children: <Widget>[ child: Align(
Container( alignment: FractionalOffset.bottomCenter,
child: Align( child: Container(
alignment: FractionalOffset.bottomCenter, child: Row(
child: Container( mainAxisAlignment:
child: Row( MainAxisAlignment.spaceEvenly,
mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [
children: [ Column(
Column( children: <Widget>[
children: <Widget>[ Text(TranslationBase.of(context)
Text(TranslationBase.of(context).poweredBy), .poweredBy),
Image.asset( Image.asset(
'assets/images/cs_logo_container.png', 'assets/images/cs_logo_container.png',
width: SizeConfig.imageSizeMultiplier * 30, width:
) SizeConfig.imageSizeMultiplier * 30,
], )
), ],
Column( ),
children: <Widget>[ Column(
Image.asset( children: <Widget>[
'assets/images/new-design/vidamobile.png', Image.asset(
width: SizeConfig.imageSizeMultiplier * 25, 'assets/images/new-design/vidamobile.png',
) width:
SizeConfig.imageSizeMultiplier * 25,
)
],
),
], ],
), ),
], ),
), ),
), )
), ],
) ),
], )
), ],
) ),
], ),
), ),
), ));
),
);
} }
drawerNavigator(context, routeName) { drawerNavigator(context, routeName) {

Loading…
Cancel
Save