fix issues with sultan branch

merge-requests/111/head
Mohammad ALjammal 6 years ago
parent 79eb6b19d0
commit a3730e4efb

@ -3,14 +3,9 @@ import 'dart:convert';
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/doctor_profile_model.dart'; import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:http_interceptor/http_methods.dart';
import 'package:http_interceptor/models/request_data.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
Helpers helpers = new Helpers(); Helpers helpers = new Helpers();
@ -32,15 +27,12 @@ Helpers helpers = new Helpers();
* */ * */
class BaseAppClient { class BaseAppClient {
static post( static post(
String endPoint, { String endPoint, {
Map<String, dynamic> body, Map<String, dynamic> body,
Function(dynamic response, int statusCode) onSuccess, Function(dynamic response, int statusCode) onSuccess,
Function(String error, int statusCode) onFailure, Function(String error, int statusCode) onFailure,
}) async { }) async {
String url = BASE_URL + endPoint; String url = BASE_URL + endPoint;
RequestData data = RequestData(body: body,baseUrl: url,method: Method.POST);
try { try {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE); Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
@ -49,8 +41,8 @@ class BaseAppClient {
body['DoctorID'] = doctorProfile?.doctorID; body['DoctorID'] = doctorProfile?.doctorID;
body['EditedBy'] = doctorProfile?.doctorID; body['EditedBy'] = doctorProfile?.doctorID;
body['ProjectID'] = doctorProfile?.projectID; body['ProjectID'] = doctorProfile?.projectID;
// if (!body.containsKey('ClinicID')) // if (!body.containsKey('ClinicID'))
body['ClinicID'] = doctorProfile?.clinicID; body['ClinicID'] = doctorProfile?.clinicID;
} }
body['TokenID'] = token ?? ''; body['TokenID'] = token ?? '';
body['LanguageID'] = LANGUAGE_ID; body['LanguageID'] = LANGUAGE_ID;
@ -64,7 +56,7 @@ class BaseAppClient {
print("URL : $url"); print("URL : $url");
print("Body : ${json.encode(body)}"); print("Body : ${json.encode(body)}");
if (await Helpers.checkConnection()) { if (await Helpers.checkConnection()) {
final response = await http.post(url, final response = await http.post(url,
body: json.encode(body), body: json.encode(body),
headers: { headers: {
@ -77,7 +69,8 @@ class BaseAppClient {
} else { } else {
var parsed = json.decode(response.body.toString()); var parsed = json.decode(response.body.toString());
if (!parsed['IsAuthenticated']) { if (!parsed['IsAuthenticated']) {
Navigator.of(AppGlobal.CONTEX).pushNamed(LOGIN); await helpers.logout();
helpers.showErrorToast('Your session expired Please login agian'); helpers.showErrorToast('Your session expired Please login agian');
} else if (parsed['MessageStatus'] == 1) { } else if (parsed['MessageStatus'] == 1) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);

@ -2,8 +2,8 @@ const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]"; const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]"; const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]"; const ONLY_DATE = "[0-9/]";
//const BASE_URL = 'https://hmgwebservices.com/Services/'; const BASE_URL = 'https://hmgwebservices.com/Services/';
const BASE_URL = 'https://uat.hmgwebservices.com/Services/'; //const BASE_URL = 'https://uat.hmgwebservices.com/Services/';
const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems_Region"; const PHARMACY_ITEMS_URL = "Lists.svc/REST/GetPharmcyItems_Region";
const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList"; const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL = const PATIENT_PROGRESS_NOTE_URL =

@ -51,14 +51,7 @@ class _LandingPageState extends State<LandingPage> {
}, },
), ),
centerTitle: true, centerTitle: true,
actions: <Widget>[
ProfileImageWidget(
height: 50,
width: 50,
url:
"https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png",
)
],
), ),
drawer: Theme( drawer: Theme(
data: Theme.of(context).copyWith( data: Theme.of(context).copyWith(

@ -6,8 +6,6 @@ import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indei
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../config/size_config.dart';
import '../../widgets/shared/app_scaffold_widget.dart';
class MyScheduleScreen extends StatelessWidget { class MyScheduleScreen extends StatelessWidget {
ScheduleProvider scheduleProvider; ScheduleProvider scheduleProvider;
@ -15,47 +13,46 @@ class MyScheduleScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
scheduleProvider = Provider.of(context); scheduleProvider = Provider.of(context);
return AppScaffold( return Scaffold(
appBarTitle: TranslationBase.of(context).mySchedule,
body: scheduleProvider.isLoading body: scheduleProvider.isLoading
? DrAppCircularProgressIndeicator() ? DrAppCircularProgressIndeicator()
: scheduleProvider.isError : scheduleProvider.isError
? Center( ? Center(
child: AppText( child: AppText(
scheduleProvider.error, scheduleProvider.error,
color: Theme.of(context).errorColor, color: Theme.of(context).errorColor,
), ),
) )
: scheduleProvider.listDoctorWorkingHoursTable.length == 0 : scheduleProvider.listDoctorWorkingHoursTable.length == 0
? Center( ? Center(
child: AppText( child: AppText(
TranslationBase.of(context).errorNoSchedule, TranslationBase.of(context).errorNoSchedule,
color: Theme.of(context).errorColor, color: Theme.of(context).errorColor,
), ),
) )
: Container( : Container(
padding: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0), padding: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
child: ListView( child: ListView(
children: <Widget>[ children: <Widget>[
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
SizedBox( SizedBox(
height: 20, height: 20,
), ),
scheduleListByDate(), scheduleListByDate(),
// scheduleListByDate('Wednesday, 8 April '), // scheduleListByDate('Wednesday, 8 April '),
], ],
), ),
], ],
), ),
], ],
), ),
), ),
); );
} }

@ -82,4 +82,14 @@ class DrAppSharedPreferances {
} }
return json.decode(string); return json.decode(string);
} }
clear() async {
final SharedPreferences prefs = await _prefs;
prefs.clear();
}
remove(String key) async {
final SharedPreferences prefs = await _prefs;
prefs.remove(key);
}
} }

@ -1,12 +1,16 @@
import 'package:doctor_app_flutter/models/list_doctor_working_hours_table_model.dart'; import 'package:doctor_app_flutter/models/list_doctor_working_hours_table_model.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:doctor_app_flutter/config/config.dart';
import '../config/size_config.dart'; import '../config/size_config.dart';
import '../util/dr_app_toast_msg.dart'; import '../util/dr_app_toast_msg.dart';
import 'package:connectivity/connectivity.dart'; import 'package:connectivity/connectivity.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
/* /*
*@author: Elham Rababah *@author: Elham Rababah
@ -48,10 +52,6 @@ class Helpers {
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
// padding: const EdgeInsets.symmetric(
// horizontal: 16.0,
// vertical: 5.0,
// ),
), ),
CupertinoButton( CupertinoButton(
child: Text( child: Text(
@ -97,7 +97,7 @@ class Helpers {
children: items.map((item) { children: items.map((item) {
return Text( return Text(
'${item["$decKey"]}', '${item["$decKey"]}',
style: TextStyle(fontSize: SizeConfig.textMultiplier * 3), style: TextStyle(fontSize: SizeConfig.textMultiplier * 2),
); );
}).toList(), }).toList(),
@ -164,14 +164,15 @@ class Helpers {
), ),
); );
} }
/*
/*
*@author: Amjad Amireh *@author: Amjad Amireh
*@Date:5/5/2020 *@Date:5/5/2020
*@param: checkDate *@param: checkDate
*@return: DateTime *@return: DateTime
*@desc: convert String to DateTime *@desc: convert String to DateTime
*/ */
static String checkDate(String dateString) { static String checkDate(String dateString) {
DateTime checkedTime = DateTime.parse(dateString); DateTime checkedTime = DateTime.parse(dateString);
DateTime currentTime = DateTime.now(); DateTime currentTime = DateTime.now();
@ -257,6 +258,7 @@ static String checkDate(String dateString) {
return "Sunday"; return "Sunday";
} }
} }
/* /*
*@author: Mohammad Aljammal *@author: Mohammad Aljammal
*@Date:26/5/2020 *@Date:26/5/2020
@ -275,6 +277,7 @@ static String checkDate(String dateString) {
else else
return ""; return "";
} }
/* /*
*@author: Mohammad Aljammal *@author: Mohammad Aljammal
*@Date:26/5/2020 *@Date:26/5/2020
@ -301,13 +304,14 @@ static String checkDate(String dateString) {
*@return: List<WorkingHours> *@return: List<WorkingHours>
*@desc: convert workingHours string to List<WorkingHours> *@desc: convert workingHours string to List<WorkingHours>
*/ */
static List<WorkingHours> getWorkingHours(String workingHours ){ static List<WorkingHours> getWorkingHours(String workingHours) {
List<WorkingHours> myWorkingHours =[]; List<WorkingHours> myWorkingHours = [];
List<String> listOfHours = workingHours.split('a'); List<String> listOfHours = workingHours.split('a');
listOfHours.forEach((element) { listOfHours.forEach((element) {
WorkingHours workingHours = WorkingHours(); WorkingHours workingHours = WorkingHours();
var from = element.substring(element.indexOf('m ') + 2 , element.indexOf('To')-2); var from = element.substring(
element.indexOf('m ') + 2, element.indexOf('To') - 2);
workingHours.from = from.trim(); workingHours.from = from.trim();
var to = element.substring(element.indexOf('To') + 2); var to = element.substring(element.indexOf('To') + 2);
workingHours.to = to.trim(); workingHours.to = to.trim();
@ -316,9 +320,6 @@ static String checkDate(String dateString) {
return myWorkingHours; return myWorkingHours;
} }
/* /*
*@author: Elham Rababah *@author: Elham Rababah
*@Date:12/5/2020 *@Date:12/5/2020
@ -333,4 +334,13 @@ static String checkDate(String dateString) {
} }
return localMsg; return localMsg;
} }
clearSharedPref() async {
await sharedPref.clear();
}
logout() async {
await clearSharedPref();
Navigator.of(AppGlobal.CONTEX).pushReplacementNamed(LOGIN);
}
} }

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/models/list_gt_my_pationents_question_model.dart'; import 'package:doctor_app_flutter/models/list_gt_my_pationents_question_model.dart';
import 'package:doctor_app_flutter/presentation/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
@ -42,7 +43,28 @@ class _DoctorReplyWidgetState extends State<DoctorReplyWidget> {
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
SizedBox(width: 5,), SizedBox(width: 5,),
LargeAvatar(name: widget.reply.patientName,url: '',), //LargeAvatar(icon: widget.reply.gender == 0 ? DoctorApp.male : DoctorApp.femaleicon ,),
Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(-1, -1),
end: Alignment(1, 1),
colors: [
Colors.grey[100],
Colors.grey[200],
]),
boxShadow: [
BoxShadow(
color: Color.fromRGBO(0, 0, 0, 0.08),
offset: Offset(0.0, 5.0),
blurRadius: 16.0)
],
borderRadius: BorderRadius.all(Radius.circular(50.0)),
),
width: 80,
height: 80,
child: Icon(widget.reply.gender == 1 ? DoctorApp.male : DoctorApp.femaleicon,size: 80,)),
SizedBox(width: 15,), SizedBox(width: 15,),
Expanded( Expanded(
child: Container( child: Container(

@ -45,6 +45,7 @@ class MyScheduleWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText('From',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,), AppText('From',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,),
SizedBox(height: 5,),
AppText(work.from,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,) AppText(work.from,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,)
], ],
), ),
@ -56,6 +57,7 @@ class MyScheduleWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText('To',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,), AppText('To',fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.bold,),
SizedBox(height: 5,),
AppText(work.to,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,) AppText(work.to,fontSize: 2.2 * SizeConfig.textMultiplier,fontWeight: FontWeight.w300,)
], ],
), ),

@ -7,12 +7,12 @@ import 'avatar_gradients.dart';
class LargeAvatar extends StatelessWidget { class LargeAvatar extends StatelessWidget {
LargeAvatar( LargeAvatar(
{Key key, {Key key,
this.name, this.name,
this.url, this.url,
this.disableProfileView: false, this.disableProfileView: false,
this.radius = 60.0, this.radius = 60.0,
this.width = 90, this.width = 90,
this.height = 90}) this.height = 90})
: super(key: key); : super(key: key);
final String name; final String name;
@ -35,20 +35,20 @@ class LargeAvatar extends StatelessWidget {
), ),
), ),
); );
} else if (name != null || name.isNotEmpty) { } else if (name == null || name.isEmpty) {
return Center( return Center(
child: AppText( child: AppText(
name[0].toUpperCase(), 'DR',
color: Colors.white, color: Colors.white,
fontSize: 18, ));
fontWeight: FontWeight.bold,
));
} else { } else {
return Center( return Center(
child: AppText( child: AppText(
'DR', name[0].toUpperCase(),
color: Colors.white, color: Colors.white,
)); fontSize: 18,
fontWeight: FontWeight.bold,
));
} }
} }
@ -60,8 +60,8 @@ class LargeAvatar extends StatelessWidget {
onTap: disableProfileView onTap: disableProfileView
? null ? null
: () { : () {
//TODO when we need that //TODO when we need that
}, },
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(

@ -89,35 +89,24 @@ class _AppDrawerState extends State<AppDrawer> {
}, },
), ),
), ),
InkWell(
child: DrawerItem("My Schedule", Icons.table_chart),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (_) => ScheduleProvider(),
child: MyScheduleScreen(),
),
),
);
},
),
InkWell( InkWell(
child: DrawerItem("Settings", Icons.settings), child: DrawerItem("Settings", Icons.settings),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(SETTINGS); Navigator.of(context).pushNamed(SETTINGS);
}, },
), ),
InkWell( InkWell(
child: DrawerItem("QR Reader", Icons.search), child: DrawerItem("QR Reader", Icons.search),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(QR_READER); Navigator.of(context).pushNamed(QR_READER);
}, },
), ),
InkWell( InkWell(
child: DrawerItem("lOGOUT", Icons.exit_to_app), child: DrawerItem("lOGOUT", Icons.exit_to_app),
onTap: () { onTap: () {
Navigator.pop(context);
Navigator.of(context).pushNamed(LOGIN); Navigator.of(context).pushNamed(LOGIN);
}, },
), ),

@ -30,6 +30,7 @@ class AppExpandableNotifier extends StatelessWidget {
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text( child: Text(
"See Graph Details", "See Graph Details",
style: TextStyle(fontWeight: FontWeight.bold),
)), )),
collapsed: Text(''), collapsed: Text(''),
expanded: bodyWid, expanded: bodyWid,

@ -1,13 +1,8 @@
import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import '../../config/size_config.dart';
import '../../presentation/doctor_app_icons.dart'; import '../../presentation/doctor_app_icons.dart';
import '../../widgets/shared/app_drawer_widget.dart';
import '../../widgets/shared/app_loader_widget.dart'; import '../../widgets/shared/app_loader_widget.dart';
import '../../widgets/shared/custom_shape_clipper.dart';
class AppScaffold extends StatelessWidget { class AppScaffold extends StatelessWidget {
String appBarTitle; String appBarTitle;
@ -37,12 +32,11 @@ class AppScaffold extends StatelessWidget {
}), }),
centerTitle: true, centerTitle: true,
actions: <Widget>[ actions: <Widget>[
ProfileImageWidget( IconButton(
height: 50, icon: Icon(DoctorApp.home_icon_active),
width: 50, color: Colors.white, //Colors.black,
url: onPressed: () => Navigator.pushReplacementNamed(context, HOME),
"https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", ),
)
], ],
) )
: null, : null,

Loading…
Cancel
Save