From b6d2878cf101c78d687f950357019bb00d47ae66 Mon Sep 17 00:00:00 2001 From: Mohammad Aljammal Date: Thu, 26 Nov 2020 09:28:53 +0200 Subject: [PATCH 1/3] add Radiology translations and colors --- lib/config/config.dart | 4 ++-- lib/config/localized_values.dart | 15 ++++++++++++++- lib/pages/feedback/feedback_home_page.dart | 2 +- lib/pages/feedback/send_feedback_page.dart | 12 ++++++------ .../medical/radiology/radiology_details_page.dart | 9 +++++---- .../medical/radiology/radiology_home_page.dart | 4 ++-- lib/uitl/translations_delegate_base.dart | 3 +++ 7 files changed, 33 insertions(+), 16 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 58ade1bc..67f4fbbc 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -7,8 +7,8 @@ import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; const MAX_SMALL_SCREEN = 660; -const BASE_URL = 'https://uat.hmgwebservices.com/'; - //const BASE_URL = 'https://hmgwebservices.com/'; +// const BASE_URL = 'https://uat.hmgwebservices.com/'; + const BASE_URL = 'https://hmgwebservices.com/'; const GET_PROJECT = 'Services/Lists.svc/REST/GetProject'; ///Doctor diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index b1ed5307..0ced0591 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1022,5 +1022,18 @@ const Map localizedValues = { "in-patient": { "en": "In Patient", "ar": "تنويم" - } + }, + "report": { + "en": "Radiology Report", + "ar": "تقرير الاشعة" + }, + "open-rad": { + "en": "Open Image", + "ar": "فتح صور الاشعة" + }, + "send-copy": { + "en": "Email the Report", + "ar": "أرسل التقرير" + }, + }; diff --git a/lib/pages/feedback/feedback_home_page.dart b/lib/pages/feedback/feedback_home_page.dart index 309b5713..3d761bd3 100644 --- a/lib/pages/feedback/feedback_home_page.dart +++ b/lib/pages/feedback/feedback_home_page.dart @@ -74,7 +74,7 @@ class _FeedbackHomePageState extends State controller: _tabController, indicatorWeight: 5.0, indicatorSize: TabBarIndicatorSize.label, - indicatorColor: Colors.red[800], + indicatorColor: Theme.of(context).primaryColor, labelColor: Theme.of(context).primaryColor, labelPadding: EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0), diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 27d2f353..14463825 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -514,7 +514,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.ComplaintOnAnAppointment, groupValue: model.messageTypeDialog, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (MessageType value) => model.setMessageDialogType(value), ), @@ -538,7 +538,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.ComplaintWithoutAppointment, groupValue: model.messageTypeDialog, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (MessageType value) => model.setMessageDialogType(value), ), @@ -562,7 +562,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Question, groupValue: model.messageTypeDialog, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (MessageType value) => model.setMessageDialogType(value), ), @@ -586,7 +586,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Compliment, groupValue: model.messageTypeDialog, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (MessageType value) => model.setMessageDialogType(value), ), @@ -610,7 +610,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Suggestion, groupValue: model.messageTypeDialog, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (MessageType value) => model.setMessageDialogType(value), ), @@ -644,7 +644,7 @@ class FeedbackTypeDialogState extends State { child: Center( child: Texts( TranslationBase.of(context).cancel, - color: Colors.red, + color: Theme.of(context).primaryColor, ), ), ), diff --git a/lib/pages/medical/radiology/radiology_details_page.dart b/lib/pages/medical/radiology/radiology_details_page.dart index cb98fb81..9f8a0640 100644 --- a/lib/pages/medical/radiology/radiology_details_page.dart +++ b/lib/pages/medical/radiology/radiology_details_page.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -21,7 +22,7 @@ class RadiologyDetailsPage extends StatelessWidget { lineItem: finalRadiology.invoiceLineItemNo, invoiceNo: finalRadiology.invoiceNo), builder: (_, model, widget) => AppScaffold( - appBarTitle: 'Radiology Report', + appBarTitle: TranslationBase.of(context).report, isShowAppBar: true, baseViewModel: model, body: SingleChildScrollView( @@ -45,7 +46,7 @@ class RadiologyDetailsPage extends StatelessWidget { onTap: () { launch(model.radImageURL); }, - label: 'Open Radio Image', + label: TranslationBase.of(context).openRad, backgroundColor: Colors.grey[800], ), ), @@ -54,9 +55,9 @@ class RadiologyDetailsPage extends StatelessWidget { child: Button( onTap: () => model.sendRadReportEmail( finalRadiology: finalRadiology), - label: 'Send Copy', + label: TranslationBase.of(context).sendCopyRad, loading: model.state == ViewState.BusyLocal, - backgroundColor: Colors.red[800], + backgroundColor: Theme.of(context).primaryColor, ), ) ], diff --git a/lib/pages/medical/radiology/radiology_home_page.dart b/lib/pages/medical/radiology/radiology_home_page.dart index a7c4fcc5..1233a89a 100644 --- a/lib/pages/medical/radiology/radiology_home_page.dart +++ b/lib/pages/medical/radiology/radiology_home_page.dart @@ -38,7 +38,7 @@ class RadiologyHomePage extends StatelessWidget { leading: Radio( value: FilterType.Clinic, groupValue: model.filterType, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (FilterType value) { model.setFilterType(value); }, @@ -56,7 +56,7 @@ class RadiologyHomePage extends StatelessWidget { leading: Radio( value: FilterType.Hospital, groupValue: model.filterType, - activeColor: Colors.red[800], + activeColor: Theme.of(context).primaryColor, onChanged: (FilterType value) { model.setFilterType(value); }, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 12c7ff6e..6e991e01 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -863,6 +863,9 @@ String get fileno => localizedValues['fileno'][locale.languageCode]; String get range => localizedValues['range'][locale.languageCode]; String get outpatient => localizedValues['out-patient'][locale.languageCode]; String get inPatient => localizedValues['in-patient'][locale.languageCode]; + String get report => localizedValues['report'][locale.languageCode]; + String get openRad => localizedValues['open-rad'][locale.languageCode]; + String get sendCopyRad => localizedValues['send-copy'][locale.languageCode]; } From 340b9770c8a54b535a827d496f6c4cf0350490ab Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Sun, 29 Nov 2020 12:51:07 +0300 Subject: [PATCH 2/3] login --- lib/core/service/client/base_app_client.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index ff7e7776..60142fc6 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -140,7 +140,7 @@ class BaseAppClient { parsed['SMSLoginRequired'] == true) { onSuccess(parsed, statusCode); } else if (!parsed['IsAuthenticated']) { - await logout(); + // await logout(); //helpers.showErrorToast('Your session expired Please login agian'); } else { From 603833db3743e84c7c3f981d82b8415d2a99e46e Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Sun, 29 Nov 2020 12:51:27 +0300 Subject: [PATCH 3/3] login changes --- lib/pages/DrawerPages/family/my-family.dart | 93 ++++++++++++++++--- lib/pages/landing/home_page.dart | 12 +-- .../family_files/family_files_provider.dart | 45 ++++----- lib/widgets/drawer/app_drawer_widget.dart | 4 +- 4 files changed, 111 insertions(+), 43 deletions(-) diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index 0e6d86bf..f8c6b121 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -1,12 +1,18 @@ import 'dart:ui'; import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; +import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/locator.dart'; +import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; +import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; @@ -21,6 +27,7 @@ import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/routes.dart'; +import 'package:provider/provider.dart'; class MyFamily extends StatefulWidget { final bool isAppbarVisible; @@ -35,15 +42,23 @@ class _MyFamily extends State with TickerProviderStateMixin { var userID; TabController _tabController; int _tabIndex = 0; + AuthenticatedUserObject authenticatedUserObject = + locator(); + AppointmentRateViewModel appointmentRateViewModel = + locator(); + ProjectViewModel projectViewModel; + AuthenticatedUser user; @override void initState() { _tabController = new TabController(length: 2, vsync: this, initialIndex: 0); - + checkUserData(); super.initState(); } bool expandFlag = false; Widget build(BuildContext context) { + projectViewModel = Provider.of(context); + return AppScaffold( appBarTitle: TranslationBase.of(context).myFamilyFiles, isShowAppBar: widget.isAppbarVisible, @@ -117,14 +132,14 @@ class _MyFamily extends State with TickerProviderStateMixin { body: Column( children: [ Expanded( - child: TabBarView( + child: (user != null && projectViewModel.isLogin) ? TabBarView( physics: BouncingScrollPhysics(), controller: _tabController, children: [ myFamilyDetails(context), myFamilyRequest(context) ], - ), + ) : Container(child:AppText('Loading..')), ) ], ), @@ -540,12 +555,14 @@ class _MyFamily extends State with TickerProviderStateMixin { } Future getFamilyFiles() async { - if (await sharedPref.getObject(FAMILY_FILE) != null) { - // print(await sharedPref.getObject(FAMILY_FILE)); - return Future.value(GetAllSharedRecordsByStatusResponse.fromJson( - await sharedPref.getObject(FAMILY_FILE))); - } else { - return familyFileProvider.getSharedRecordByStatus(); + if (user != null) { + if (await sharedPref.getObject(FAMILY_FILE) != null) { + // print(await sharedPref.getObject(FAMILY_FILE)); + return Future.value(GetAllSharedRecordsByStatusResponse.fromJson( + await sharedPref.getObject(FAMILY_FILE))); + } else { + return familyFileProvider.getSharedRecordByStatus(); + } } } @@ -592,20 +609,55 @@ class _MyFamily extends State with TickerProviderStateMixin { } switchUser(user, context) { - GifLoaderDialogUtils.showMyDialog(context); + GifLoaderDialogUtils.showMyDialog(context); + // this + // .familyFileProvider + // .silentLoggin(user) + // .then((value) => loginAfter(value, context)); + + // Utils.showProgressDialog(context); this .familyFileProvider - .silentLoggin(user) - .then((value) => loginAfter(value, context)); + .silentLoggin(user is AuthenticatedUser ? null : user, + mainUser: user is AuthenticatedUser) + .then((value) => loginAfter(value, context)) + .catchError((err) { + print(err); + AppToast.showErrorToast(message: err); + Navigator.of(context).pop(); + }); } loginAfter(result, context) async{ GifLoaderDialogUtils.hideDialog(context); - var familyFile = await sharedPref.getObject(FAMILY_FILE); + // var familyFile = await sharedPref.getObject(FAMILY_FILE); + // var mainUser = await sharedPref.getObject(MAIN_USER); + // result = CheckActivationCode.fromJson(result); + // this.sharedPref.clear(); + // this.sharedPref.setObject(FAMILY_FILE, familyFile); + // this.sharedPref.setObject(MAIN_USER, mainUser); + // result.list.isFamily = true; + // this.sharedPref.setObject(USER_PROFILE, result.list); + // this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); + // this.sharedPref.setString(TOKEN, result.authenticationTokenID); + // + // authenticatedUserObject.isLogin = true; + // appointmentRateViewModel.isLogin = true; + // projectViewModel.isLogin = true; + // //this.checkIfUserAgreedBefore(result), + // Navigator.of(context).pushNamed( + // HOME, + // ); result = CheckActivationCode.fromJson(result); + var familyFile = await sharedPref.getObject(FAMILY_FILE); + var mainUser = await sharedPref.getObject(MAIN_USER); this.sharedPref.clear(); - this.sharedPref.setObject(FAMILY_FILE, familyFile); + if (mainUser["PatientID"] != result.list.patientID) { + result.list.isFamily = true; + } + this.sharedPref.setObject(MAIN_USER, mainUser); this.sharedPref.setObject(USER_PROFILE, result.list); + this.sharedPref.setObject(FAMILY_FILE, familyFile); this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); this.sharedPref.setString(TOKEN, result.authenticationTokenID); //this.checkIfUserAgreedBefore(result), @@ -634,4 +686,17 @@ class _MyFamily extends State with TickerProviderStateMixin { refreshFamily(context) }); } + checkUserData() async{ + if (await this.sharedPref.getObject(USER_PROFILE) != null) { + var data = AuthenticatedUser.fromJson( + await this.sharedPref.getObject(USER_PROFILE)); + + var data2 = AuthenticatedUser.fromJson( + await this.sharedPref.getObject(MAIN_USER)); + print(data2); + setState(() { + this.user = data; + }); + } + } } diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 6716535b..843dd462 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -43,12 +43,12 @@ class _HomePageState extends State { ToDoCountProviderModel toDoProvider; @override - void initState() { - WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - getToDoCount(); - }); - super.initState(); - } + // void initState() { + // WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + // getToDoCount(); + // }); + // super.initState(); + // } AuthenticatedUserObject authenticatedUserObject = locator(); diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index ea2b87fd..0b0c1ef5 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -37,8 +37,10 @@ const String SENT_REQUEST_URL = 'Services/Authentication.svc/REST/GetAllSharedRecordsByStatus'; const String RECEVIED_REQUEST_URL = 'Services/Authentication.svc/REST/GetAllPendingRecordsByResponseId'; -const ACCEPT_REJECT_FAMILY = 'Services/Authentication.svc/REST/Update_FileStatus'; -const DEACTIVATE_FAMILY = 'Services/Authentication.svc/REST/DeactivateRequestByRensponse'; +const ACCEPT_REJECT_FAMILY = + 'Services/Authentication.svc/REST/Update_FileStatus'; +const DEACTIVATE_FAMILY = + 'Services/Authentication.svc/REST/DeactivateRequestByRensponse'; class FamilyFilesProvider with ChangeNotifier { bool isLogin = false; @@ -49,7 +51,9 @@ class FamilyFilesProvider with ChangeNotifier { try { dynamic localRes; var request = GetAllSharedRecordsByStatusReq(); + var result = await sharedPref.getObject(MAIN_USER); request.status = 0; + request.patientID = result["PatientID"]; await new BaseAppClient().post(GET_SHARED_RECORD_BY_STATUS, onSuccess: (dynamic response, int statusCode) { localRes = response; @@ -57,7 +61,7 @@ class FamilyFilesProvider with ChangeNotifier { AppToast.showErrorToast(message: error); throw error; }, body: request.toJson()); - + sharedPref.setObject(FAMILY_FILE, localRes); return Future.value( GetAllSharedRecordsByStatusResponse.fromJson(localRes)); @@ -80,7 +84,7 @@ class FamilyFilesProvider with ChangeNotifier { return Future.error(error); }, body: request); if (localRes != null) { - sharedPref.setObject(FAMILY_FILE, localRes); + // sharedPref.setObject(FAMILY_FILE, localRes); allSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse.fromJson(localRes); return Future.value(allSharedRecordsByStatusResponse); @@ -105,7 +109,7 @@ class FamilyFilesProvider with ChangeNotifier { //AppToast.showErrorToast(message: error); //throw error; }, body: request); - sharedPref.setObject(FAMILY_FILE, localRes); + //sharedPref.setObject(FAMILY_FILE, localRes); return Future.value( GetAllSharedRecordsByStatusResponse.fromJson(localRes)); } catch (error) { @@ -251,9 +255,9 @@ class FamilyFilesProvider with ChangeNotifier { Future silentLoggin(GetAllSharedRecordsByStatusList switchUser, {onSuccess, mainUser}) async { Map request = {}; - if(mainUser ==true){ + if (mainUser == true) { var currentUser = - AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER)); + AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER)); //const request = new SwitchUserRequest(); request['LogInTokenID'] = ''; request['PatientOutSA'] = currentUser.outSA; //? 1 : 0; @@ -267,9 +271,9 @@ class FamilyFilesProvider with ChangeNotifier { request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966"; request['activationCode'] = '0000'; request['isRegister'] = false; - }else { + } else { var currentUser = - AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE)); + AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE)); //const request = new SwitchUserRequest(); request['LogInTokenID'] = ''; @@ -309,11 +313,11 @@ class FamilyFilesProvider with ChangeNotifier { await new BaseAppClient().post(ACCEPT_REJECT_FAMILY, onSuccess: (dynamic response, int statusCode) { - localRes = response; - }, onFailure: (String error, int statusCode) { - AppToast.showErrorToast(message: error); - throw error; - }, body: request); + localRes = response; + }, onFailure: (String error, int statusCode) { + AppToast.showErrorToast(message: error); + throw error; + }, body: request); return Future.value(localRes); } catch (error) { @@ -321,17 +325,18 @@ class FamilyFilesProvider with ChangeNotifier { throw error; } } + Future deactivateFamily(request) async { try { dynamic localRes; await new BaseAppClient().post(DEACTIVATE_FAMILY, onSuccess: (dynamic response, int statusCode) { - localRes = response; - }, onFailure: (String error, int statusCode) { - AppToast.showErrorToast(message: error); - throw error; - }, body: request); + localRes = response; + }, onFailure: (String error, int statusCode) { + AppToast.showErrorToast(message: error); + throw error; + }, body: request); return Future.value(localRes); } catch (error) { @@ -339,6 +344,4 @@ class FamilyFilesProvider with ChangeNotifier { throw error; } } - - } diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index f9658c02..bbe007d6 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -155,7 +155,7 @@ class _AppDrawerState extends State { ? Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - InkWell( + user.isFamily ==null || user.isFamily ==false ? InkWell( child: DrawerItem( TranslationBase.of(context).family, Icons.group, @@ -169,7 +169,7 @@ class _AppDrawerState extends State { MY_FAMILIY, ); }, - ), + ) : SizedBox(), FutureBuilder( future: getFamilyFiles(), // async work builder: (BuildContext context,