@ -61,394 +61,416 @@ class _AppDrawerState extends State<AppDrawer> {
@ 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: < Widget > [
Expanded (
flex: 4 ,
child: ListView (
padding: EdgeInsets . zero ,
children: < Widget > [
Container (
height: SizeConfig . screenHeight * . 30 ,
child: InkWell (
child: DrawerHeader (
child: Column (
children: < Widget > [
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: < Widget > [
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: < Widget > [
Expanded (
flex: 4 ,
child: ListView (
padding: EdgeInsets . zero ,
children: < Widget > [
Container (
height: SizeConfig . screenHeight * . 30 ,
child: InkWell (
child: DrawerHeader (
child: Column (
children: < Widget > [
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: < Widget > [
Padding (
padding: EdgeInsets . only (
right: 5 ) ,
child: Icon (
Icons . account_circle ,
Row (
children: < Widget > [
Padding (
padding:
EdgeInsets . only (
right: 5 ) ,
child: Icon (
Icons . account_circle ,
color:
Color ( 0xFF40ACC9 ) ,
) ) ,
AppText (
user . firstName +
' ' +
user . lastName ,
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 (
user . firstName +
' ' +
user . lastName ,
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 ,
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 , 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 (
user . bloodGroup ! = null
? ' Blood Group: ' +
user . bloodGroup
: ' ' ,
fontSize: SizeConfig
. textMultiplier *
1.5 ,
constraints:
BoxConstraints (
minWidth: 20 ,
minHeight: 20 ,
) ,
] ,
) )
] )
] ) )
: SizedBox ( ) ,
] ,
) ,
) ,
) ,
) ,
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: 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: < 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 ( ) ,
) ,
] ,
) ,
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: ( ) {
log out ( ) ;
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: < Widget > [
Container (
child: Align (
alignment: FractionalOffset . bottomCenter ,
child: Container (
child: Row (
mainAxisAlignment: MainAxisAlignment . spaceEvenly ,
children: [
Column (
children: < Widget > [
Text ( TranslationBase . of ( context ) . poweredBy ) ,
Image . asset (
' assets/images/cs_logo_container.png ' ,
width: SizeConfig . imageSizeMultiplier * 30 ,
)
] ,
) ,
Column (
children: < Widget > [
Image . asset (
' assets/images/new-design/vidamobile.png ' ,
width: SizeConfig . imageSizeMultiplier * 25 ,
)
) ,
) ,
Expanded (
flex: 1 ,
child: Column (
children: < Widget > [
Container (
child: Align (
alignment: FractionalOffset . bottomCenter ,
child: Container (
child: Row (
mainAxisAlignment:
MainAxisAlignment . spaceEvenly ,
children: [
Column (
children: < Widget > [
Text ( TranslationBase . of ( context )
. poweredBy ) ,
Image . asset (
' assets/images/cs_logo_container.png ' ,
width:
SizeConfig . imageSizeMultiplier * 30 ,
)
] ,
) ,
Column (
children: < Widget > [
Image . asset (
' assets/images/new-design/vidamobile.png ' ,
width:
SizeConfig . imageSizeMultiplier * 25 ,
)
] ,
) ,
] ,
) ,
] ,
) ,
) ,
) ,
) ,
)
],
) ,
)
] ,
)
] ,
) ,
)
] ,
) ,
) ,
) ,
) ,
) ,
) ;
) ) ;
}
drawerNavigator ( context , routeName ) {