diff --git a/lib/api/profile_api_client.dart b/lib/api/profile_api_client.dart index c9d5794..ef2c189 100644 --- a/lib/api/profile_api_client.dart +++ b/lib/api/profile_api_client.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:io'; import 'package:mohem_flutter_app/api/api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; @@ -35,99 +36,140 @@ class ProfileApiClient { factory ProfileApiClient() => _instance; - Future> getEmployeeContacts() async { - String url = "${ApiConsts.erpRest}GET_EMPLOYEE_CONTACTS"; + // GET_EMP_BUSINESS_CARD_INFO requires the literal TokenID below to validate the call - + // it is not the usual session TokenID, so we don't merge AppState().postParamsJson here. + Future getEmployeeBusinessCardInfo() async { + String url = "${ApiConsts.erpRest}GET_EMP_BUSINESS_CARD_INFO"; + String deviceToken = AppState().getIsHuawei ? AppState().getHuaweiPushToken : (AppState().getDeviceToken ?? ""); Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, + "VersionID": AppState().postParamsObject?.versionID, + "Channel": AppState().postParamsObject?.channel, + "LanguageID": AppState().postParamsObject?.languageID, + "TokenID": "GET_EMP_BUSINESS_CARD_INFO", + "P_USER_NAME": AppState().getUserName ?? AppState().postParamsObject?.userName ?? AppState().postParamsObject?.pUserName, + "DeviceToken": deviceToken, + "DeviceType": Platform.isAndroid ? "android" : "ios", }; + print(jsonEncode(postParams)); + return await ApiClient().postJsonForObject( + (json) { + return GenericResponseModel.fromJson(json); + }, + url, + postParams, + ); + } + + Future> getEmployeeContacts() async { + String url = "${ApiConsts.erpRest}GET_EMPLOYEE_CONTACTS"; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getEmployeeContactsList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getEmployeeContactsList ?? []; + }, + url, + postParams, + ); } Future> getEmployeeBasicDetails() async { String url = "${ApiConsts.erpRest}GET_EMPLOYEE_BASIC_DETAILS"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getEmployeeBasicDetailsList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getEmployeeBasicDetailsList ?? []; + }, + url, + postParams, + ); } Future> getEmployeePhones() async { String url = "${ApiConsts.erpRest}GET_EMPLOYEE_PHONES"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getEmployeePhonesList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getEmployeePhonesList ?? []; + }, + url, + postParams, + ); } Future> getEmployeeAddress() async { String url = "${ApiConsts.erpRest}GET_EMPLOYEE_ADDRESS"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getEmployeeAddressList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getEmployeeAddressList ?? []; + }, + url, + postParams, + ); } Future> getEmployeeDocuments() async { String url = "${ApiConsts.erpRest}GET_EMPLOYEE_DOCUMENTS"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.employeeDocumentsList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.employeeDocumentsList ?? []; + }, + url, + postParams, + ); } Future updateEmpImage(img) async { String url = "${ApiConsts.erpRest}UPDATE_EMPLOYEE_IMAGE"; Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_IMAGE": img}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - // GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return json['UpdateEmployeeImageList']; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + // GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return json['UpdateEmployeeImageList']; + }, + url, + postParams, + ); } Future getDffStructure(String pFunctionName, String uRL, String requestType) async { String url = ApiConsts.erpRest + uRL; Map postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_REQUEST_TYPE": pFunctionName, "P_FUNCTION_NAME": pFunctionName, "P_COUNTRY_CODE": "SA"}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData; + }, + url, + postParams, + ); } Future getColStructure(String pFunctionName, String uRL, String requestType) async { String url = ApiConsts.erpRest + uRL; Map postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_FUNCTION_NAME": pFunctionName, "P_REQUEST_TYPE": requestType}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData; + }, + url, + postParams, + ); } Future getValueSetValues(String pSegmentName, String pDescFlexContextCode, String pDescFlexName, List> list) async { @@ -144,41 +186,38 @@ class ProfileApiClient { "GetValueSetValuesTBL": list, }; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getValueSetValuesList!.first; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getValueSetValuesList!.first; + }, + url, + postParams, + ); } Future> getPhoneNumberTypes() async { String url = "${ApiConsts.erpRest}GET_OBJECT_VALUES"; Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_OBJECT_NAME": "PHONE_TYPE", "P_OBJECT_TYPE": "LOOKUP"}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getObjectValuesList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getObjectValuesList ?? []; + }, + url, + postParams, + ); } - Future submetConatctTransaction( - String pFunctionName, - String actionType, - int contactRelationId, - String date, - ) async { + Future submetConatctTransaction(String pFunctionName, String actionType, int contactRelationId, String date) async { String url = "${ApiConsts.erpRest}SUBMIT_CONTACT_TRANSACTION"; Map postParams = { "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_FUNCTION_NAME": pFunctionName, "EITTransactionTBL": [ - { - "TRANSACTION_NUMBER": 1, - "NAME": "DATE_END", - "VARCHAR2_VALUE": null, - "NUMBER_VALUE": null, - "DATE_VALUE": date, - } + {"TRANSACTION_NUMBER": 1, "NAME": "DATE_END", "VARCHAR2_VALUE": null, "NUMBER_VALUE": null, "DATE_VALUE": date}, ], "P_CONTACT_RELATIONSHIP_ID": contactRelationId, "P_ACTION": actionType, @@ -186,28 +225,29 @@ class ProfileApiClient { "LegislationCodeStr": "SA", }; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.submitContactTransactionList; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.submitContactTransactionList; + }, + url, + postParams, + ); } Future getApproves(String action, String comments, int transactionId, String itemKey) async { String url = "${ApiConsts.erpRest}GET_APPROVERS_LIST"; - Map postParams = { - "P_AME_TRANSACTION_TYPE": "SSHRMS", - "P_PAGE_LIMIT": 1000, - "P_PAGE_NUM": 1, - "P_TRANSACTION_ID": transactionId, - "P_ACTION_MODE": action, - "P_COMMENTS": comments, - }; + Map postParams = {"P_AME_TRANSACTION_TYPE": "SSHRMS", "P_PAGE_LIMIT": 1000, "P_PAGE_NUM": 1, "P_TRANSACTION_ID": transactionId, "P_ACTION_MODE": action, "P_COMMENTS": comments}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - // return responseData.getApprovesList; - return (responseData.getApprovesList?.length ?? 0) > 0 ? responseData.getApprovesList!.first : null; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + // return responseData.getApprovesList; + return (responseData.getApprovesList?.length ?? 0) > 0 ? responseData.getApprovesList!.first : null; + }, + url, + postParams, + ); } Future submitPhoneNumbers(List empList) async { @@ -216,50 +256,49 @@ class ProfileApiClient { "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_FUNCTION_NAME": "HR_PERINFO_SS", - "P_MBL_PHONES_TBL": empList.map((element) { - return element.toJson(); - }).toList() + "P_MBL_PHONES_TBL": + empList.map((element) { + return element.toJson(); + }).toList(), }; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return SubmitPhonesTransactionList.fromJson(responseData.submitPhonesTransactionList ?? {}); - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return SubmitPhonesTransactionList.fromJson(responseData.submitPhonesTransactionList ?? {}); + }, + url, + postParams, + ); } Future startPhoneApprovalProcess(String action, String comments, String itemKey, int transactionId) async { String url = "${ApiConsts.erpRest}START_PHONES_APPROVAL_PROCESS"; - Map postParams = { - "P_SELECTED_RESP_ID": -999, - "P_MENU_TYPE": "E", - "P_ACTION_MODE": action, - "P_COMMENTS": comments, - "P_ITEM_KEY": itemKey, - "P_TRANSACTION_ID": transactionId, - }; + Map postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_ACTION_MODE": action, "P_COMMENTS": comments, "P_ITEM_KEY": itemKey, "P_TRANSACTION_ID": transactionId}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.startPhonesApprovalProcessList; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.startPhonesApprovalProcessList; + }, + url, + postParams, + ); } Future startAddressApprovalProcess(String action, String comments, String itemKey, int transactionId) async { String url = "${ApiConsts.erpRest}START_ADDRESS_APPROVAL_PROCESS"; - Map postParams = { - "P_SELECTED_RESP_ID": -999, - "P_MENU_TYPE": "E", - "P_ACTION_MODE": action, - "P_COMMENTS": comments, - "P_ITEM_KEY": itemKey, - "P_TRANSACTION_ID": transactionId, - }; + Map postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_ACTION_MODE": action, "P_COMMENTS": comments, "P_ITEM_KEY": itemKey, "P_TRANSACTION_ID": transactionId}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.startAddressApprovalProcessList; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.startAddressApprovalProcessList; + }, + url, + postParams, + ); } Future submitBasicDetailsTransaction(String pDescFlexContextCode, String pFunctionName, List> list, int correctOrNew) async { @@ -275,31 +314,38 @@ class ProfileApiClient { postParams.addAll(AppState().postParamsJson); postParams["EITTransactionTBL"] = list; postParams["EITTransactionTBLModel"] = list; - return await ApiClient().postJsonForObject((json) { - GenericResponseModel responseData = GenericResponseModel.fromJson(json); - return responseData.submitBasicDetTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel responseData = GenericResponseModel.fromJson(json); + return responseData.submitBasicDetTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); + }, + url, + postParams, + ); } Future startBasicDetailsApprovalProcess(String action, String comments, String itemKey, int transactionId) async { String url = "${ApiConsts.erpRest}START_BASIC_DET_APPR_PROCESS"; - Map postParams = { - "P_SELECTED_RESP_ID": -999, - "P_MENU_TYPE": "E", - "P_ACTION_MODE": action, - "P_COMMENTS": comments, - "P_ITEM_KEY": itemKey, - "P_TRANSACTION_ID": transactionId, - }; + Map postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E", "P_ACTION_MODE": action, "P_COMMENTS": comments, "P_ITEM_KEY": itemKey, "P_TRANSACTION_ID": transactionId}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.startAddressApprovalProcessList; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.startAddressApprovalProcessList; + }, + url, + postParams, + ); } Future submitAddressTransaction( - String pDescFlexContextCode, String pFunctionName, List> list, int correctOrNew, String countryCode, String effectiveDate) async { + String pDescFlexContextCode, + String pFunctionName, + List> list, + int correctOrNew, + String countryCode, + String effectiveDate, + ) async { String url = "${ApiConsts.erpRest}SUBMIT_ADDRESS_TRANSACTION"; Map postParams = { "P_SELECTED_RESP_ID": -999, @@ -316,23 +362,28 @@ class ProfileApiClient { postParams.addAll(AppState().postParamsJson); postParams["EITTransactionTBL"] = list; // postParams["EITTransactionTBLModel"] = list; - return await ApiClient().postJsonForObject((json) { - GenericResponseModel responseData = GenericResponseModel.fromJson(json); - return responseData.submitAddressTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel responseData = GenericResponseModel.fromJson(json); + return responseData.submitAddressTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); + }, + url, + postParams, + ); } Future> getCountriesList() async { String url = "${ApiConsts.erpRest}GET_COUNTRIES"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getCountriesList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getCountriesList ?? []; + }, + url, + postParams, + ); } // add & update family member @@ -340,73 +391,75 @@ class ProfileApiClient { String url = "${ApiConsts.erpRest}GET_BASIC_DET_DFF_STRUCTURE"; Map postParams = {"P_FUNCTION_NAME": "HR_PERINFO_SS", "P_MENU_TYPE": "E", "P_REQUEST_TYPE": "CONTACT", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getBasicDetDffStructureList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getBasicDetDffStructureList ?? []; + }, + url, + postParams, + ); } // add & update family member Future> getContactColsStructureList(String actionType) async { String url = "${ApiConsts.erpRest}GET_CONTACT_COLS_STRUCTURE"; - Map postParams = { - "P_ACTION": actionType, - "P_FUNCTION_NAME": "HR_PERINFO_SS", - }; + Map postParams = {"P_ACTION": actionType, "P_FUNCTION_NAME": "HR_PERINFO_SS"}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getContactColsStructureList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getContactColsStructureList ?? []; + }, + url, + postParams, + ); } // update family member Future> getContactDetailsList(int contactRelationId) async { String url = "${ApiConsts.erpRest}GET_CONTACT_DETAILS"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - "P_CONTACT_RELATIONSHIP_ID": contactRelationId, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_CONTACT_RELATIONSHIP_ID": contactRelationId}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getContactDetailsList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getContactDetailsList ?? []; + }, + url, + postParams, + ); } // add & update family member Future> getContactDffStructureList() async { String url = "${ApiConsts.erpRest}GET_CONTACT_DFF_STRUCTURE"; - Map postParams = { - "P_DESC_FLEX_CONTEXT_CODE": "HMG_ADD_CONTACT_DETAILS", - "P_FUNCTION_NAME": "HR_PERINFO_SS", - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - }; + Map postParams = {"P_DESC_FLEX_CONTEXT_CODE": "HMG_ADD_CONTACT_DETAILS", "P_FUNCTION_NAME": "HR_PERINFO_SS", "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getContactDffStructureList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getContactDffStructureList ?? []; + }, + url, + postParams, + ); } Future submitContactTransactionAddAndUpdate(String actionType, relationId, List> list) async { String url = "${ApiConsts.erpRest}SUBMIT_CONTACT_TRANSACTION"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - "P_FUNCTION_NAME": "HR_PERINFO_SS", - "P_ACTION": actionType, - "P_CONTACT_RELATIONSHIP_ID": relationId, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_FUNCTION_NAME": "HR_PERINFO_SS", "P_ACTION": actionType, "P_CONTACT_RELATIONSHIP_ID": relationId}; postParams.addAll(AppState().postParamsJson); postParams["EITTransactionTBL"] = list; - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.submitContactTransactionList; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.submitContactTransactionList; + }, + url, + postParams, + ); } Future> getPerformanceAppraisal() async { @@ -414,55 +467,48 @@ class ProfileApiClient { Map postParams = {}; postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - GenericResponseModel? responseData = GenericResponseModel.fromJson(json); - return responseData.getPerformanceAppraisalList ?? []; - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + return responseData.getPerformanceAppraisalList ?? []; + }, + url, + postParams, + ); } - Future getPatientInfo({ - required String nationalId, - required String dob, - String? logInTokenID, - }) async { + Future getPatientInfo({required String nationalId, required String dob, String? logInTokenID}) async { // NHIC Service GetPatientInfo only works on Production (hmgwebservices.com) // String url = "https://hmgwebservices.com/Services/NHIC.svc/REST/GetPatientInfo"; String url = "${ApiConsts.erpRest}GetMemberInfo"; - String token = logInTokenID ?? - AppState().postParamsObject?.logInTokenID ?? - ""; + String token = logInTokenID ?? AppState().postParamsObject?.logInTokenID ?? ""; Map postParams = { "PatientIdentificationID": int.tryParse(nationalId.trim()) ?? nationalId.trim(), "PatientOutSA": 0, "DOB": dob.trim(), "LogInTokenID": token, - "PatientMobileNumber":AppState().postParamsObject?.mobileNumber, // added this as per e-services changed - "TokenID":AppState().postParamsObject?.tokenID,// added this as per e-services changed - "LanguageID":AppState().postParamsObject?.languageID,// added this as per e-services changed - "Channel":AppState().postParamsObject?.channel, + "PatientMobileNumber": AppState().postParamsObject?.mobileNumber, // added this as per e-services changed + "TokenID": AppState().postParamsObject?.tokenID, // added this as per e-services changed + "LanguageID": AppState().postParamsObject?.languageID, // added this as per e-services changed + "Channel": AppState().postParamsObject?.channel, "VersionID": AppState().postParamsObject?.versionID, - "UserName":AppState().postParamsObject?.userName + "UserName": AppState().postParamsObject?.userName, }; - print(jsonEncode(postParams)); - return await ApiClient().postJsonForObject((json) { - return PatientInfoModel.fromJson(json); - }, url, postParams); + print(jsonEncode(postParams)); + return await ApiClient().postJsonForObject( + (json) { + return PatientInfoModel.fromJson(json); + }, + url, + postParams, + ); } - Future processContactMazayaAccess({ - required String accessAction, - int? contactRelationshipId, - int? contactPersonId, - int? personId, - }) async { + Future processContactMazayaAccess({required String accessAction, int? contactRelationshipId, int? contactPersonId, int? personId}) async { String url = "${ApiConsts.erpRest}PROCESS_CONTACT_MAZAYA_ACCESS"; String action = accessAction.trim().toLowerCase() == "revoke" ? "Revoke" : "Grant"; - Map postParams = { - "P_MENU_TYPE": "E", - "P_SELECTED_RESP_ID": -999, - "P_ACCESS_ACTION": action, - }; + Map postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999, "P_ACCESS_ACTION": action}; if (contactRelationshipId != null) { postParams["P_CONTACT_RELATIONSHIP_ID"] = contactRelationshipId; } @@ -473,8 +519,12 @@ class ProfileApiClient { postParams["P_PERSON_ID"] = personId; } postParams.addAll(AppState().postParamsJson); - return await ApiClient().postJsonForObject((json) { - return GenericResponseModel.fromJson(json); - }, url, postParams); + return await ApiClient().postJsonForObject( + (json) { + return GenericResponseModel.fromJson(json); + }, + url, + postParams, + ); } } diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index e346378..d8d6575 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -90,6 +90,8 @@ class ApiConsts { //DummyCards for the UI + + static int tabletMinLength = 500; // Notification Center GUIDs for OTP diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index 9e2d838..0982da9 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -405,6 +405,9 @@ class GenericResponseModel { dynamic getWalaplusDepInfoModelInternal; List? walaPlusCategories; + String? businessCardQROutside; + EmpBusinessCardInfoModel? empBusinessCardInfoModel; + GenericResponseModel({ this.date, this.languageID, @@ -680,6 +683,8 @@ class GenericResponseModel { this.getWalaplusDepInfoModel, this.getWalaplusDepInfoModelInternal, this.walaPlusCategories, + this.businessCardQROutside, + this.empBusinessCardInfoModel, }); GenericResponseModel.fromJson(Map json) { @@ -1478,6 +1483,9 @@ class GenericResponseModel { getWalaplusDepInfoModel = json['GET_WALAPLUS_DEP_INFO_Model'] != null ? GetWalaplusDepInfoModel.fromJson(json['GET_WALAPLUS_DEP_INFO_Model']) : null; getWalaplusDepInfoModelInternal = json['GET_WALAPLUS_DEP_INFO_Model_Internal']; + businessCardQROutside = json['BusinessCardQR_Outside']; + empBusinessCardInfoModel = json['GET_EMP_BUSINESS_CARD_INFO_Model'] != null ? EmpBusinessCardInfoModel.fromJson(json['GET_EMP_BUSINESS_CARD_INFO_Model']) : null; + if (json['WalaPlus_Categories'] != null) { walaPlusCategories = []; json['WalaPlus_Categories'].forEach((v) { @@ -1976,6 +1984,11 @@ class GenericResponseModel { data['GET_WALAPLUS_DEP_INFO_Model'] = this.getWalaplusDepInfoModel!.toJson(); } + data['BusinessCardQR_Outside'] = this.businessCardQROutside; + if (this.empBusinessCardInfoModel != null) { + data['GET_EMP_BUSINESS_CARD_INFO_Model'] = this.empBusinessCardInfoModel!.toJson(); + } + if (walaPlusCategories != null) { data['WalaPlus_Categories'] = walaPlusCategories!.map((WalaPlusCategoryModel v) => v.toJson()).toList(); } @@ -2011,21 +2024,41 @@ class GetWalaplusDepInfoModel { String? pEmpMobileNumber; String? pDependentName; - GetWalaplusDepInfoModel({ - this.pEmpEmailAddress, - this.pEmpMobileNumber, - this.pDependentName, - }); + GetWalaplusDepInfoModel({this.pEmpEmailAddress, this.pEmpMobileNumber, this.pDependentName}); + + factory GetWalaplusDepInfoModel.fromJson(Map json) => + GetWalaplusDepInfoModel(pEmpEmailAddress: json["P_EMP_EMAIL_ADDRESS"], pEmpMobileNumber: json["P_EMP_MOBILE_NUMBER"], pDependentName: json["P_DEPENDENT_NAME"]); + + Map toJson() => {"P_EMP_EMAIL_ADDRESS": pEmpEmailAddress, "P_EMP_MOBILE_NUMBER": pEmpMobileNumber, "P_DEPENDENT_NAME": pDependentName}; +} + +class EmpBusinessCardInfoModel { + String? pEmailAddress; + String? pFirstName; + String? pLastName; + String? pMobilePhoneNumber; + String? pPositionTitle; + String? pWorkExtensionNumber; + + EmpBusinessCardInfoModel({this.pEmailAddress, this.pFirstName, this.pLastName, this.pMobilePhoneNumber, this.pPositionTitle, this.pWorkExtensionNumber}); + + String get fullName => [pFirstName, pLastName].where((e) => e != null && e.trim().isNotEmpty).join(" "); - factory GetWalaplusDepInfoModel.fromJson(Map json) => GetWalaplusDepInfoModel( - pEmpEmailAddress: json["P_EMP_EMAIL_ADDRESS"], - pEmpMobileNumber: json["P_EMP_MOBILE_NUMBER"], - pDependentName: json["P_DEPENDENT_NAME"], - ); + factory EmpBusinessCardInfoModel.fromJson(Map json) => EmpBusinessCardInfoModel( + pEmailAddress: json["P_EMAIL_ADDRESS"], + pFirstName: json["P_FIRST_NAME"], + pLastName: json["P_LAST_NAME"], + pMobilePhoneNumber: json["P_MOBILE_PHONE_NUMBER"], + pPositionTitle: json["P_POSITION_TITLE"], + pWorkExtensionNumber: json["P_WORK_EXTENSION_NUMBER"], + ); Map toJson() => { - "P_EMP_EMAIL_ADDRESS": pEmpEmailAddress, - "P_EMP_MOBILE_NUMBER": pEmpMobileNumber, - "P_DEPENDENT_NAME": pDependentName, - }; + "P_EMAIL_ADDRESS": pEmailAddress, + "P_FIRST_NAME": pFirstName, + "P_LAST_NAME": pLastName, + "P_MOBILE_PHONE_NUMBER": pMobilePhoneNumber, + "P_POSITION_TITLE": pPositionTitle, + "P_WORK_EXTENSION_NUMBER": pWorkExtensionNumber, + }; } diff --git a/lib/ui/dialogs/id/business_card_dialog.dart b/lib/ui/dialogs/id/business_card_dialog.dart index a405ccf..e24c102 100644 --- a/lib/ui/dialogs/id/business_card_dialog.dart +++ b/lib/ui/dialogs/id/business_card_dialog.dart @@ -1,15 +1,18 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/models/generic_response_model.dart'; class BusinessCardDialog extends StatelessWidget { - const BusinessCardDialog({Key? key}) : super(key: key); + final String? qrBase64; + final EmpBusinessCardInfoModel? employeeInfo; + + const BusinessCardDialog({Key? key, this.qrBase64, this.employeeInfo}) : super(key: key); @override Widget build(BuildContext context) { @@ -40,7 +43,7 @@ class BusinessCardDialog extends StatelessWidget { ), ), Image.memory( - Utils.getPostBytes(AppState().memberInformationList!.businessCardQR ?? ""), + Utils.getPostBytes(qrBase64 ?? ""), width: 129, height: 129, ), @@ -50,28 +53,25 @@ class BusinessCardDialog extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ - (AppState().memberInformationList!.eMPLOYEENAME ?? "").toText23(isBold: true).paddingOnly(top: 15), - (AppState().memberInformationList!.getPositionName() ?? "").toText17( + (employeeInfo?.fullName ?? "").toText23(isBold: true).paddingOnly(top: 15), + (employeeInfo?.pPositionTitle ?? "").toText17( color: MyColors.grey57Color, ), 30.height, - // (AppState().memberInformationList!.eMPLOYEENUMBER ?? "").toText13(), Row( children: [ const Icon(Icons.email, size: 17.5, color: MyColors.grey3AColor).paddingOnly(right: 11.5), ("${LocaleKeys.email.tr()}: ").toText18(color: MyColors.grey57Color), - (AppState().memberInformationList!.eMPLOYEEEMAILADDRESS ?? "").toText18(), + (employeeInfo?.pEmailAddress ?? "").toText18(), ], ), Row( children: [ const Icon(Icons.call, size: 17.5, color: MyColors.grey3AColor).paddingOnly(right: 11.5), ("${LocaleKeys.mobile.tr()}: ").toText18(color: MyColors.grey57Color), - (AppState().memberInformationList!.mobileNumberWithZipCode ?? "").toText18(), + (employeeInfo?.pMobilePhoneNumber ?? "").toText18(), ], ), - // 1.height, - // (AppState().memberInformationList!.jOBNAME ?? "").toText13(), ], ), ], diff --git a/lib/ui/landing/dashboard_screen_for_dependet.dart b/lib/ui/landing/dashboard_screen_for_dependet.dart index a4ec744..9d9c7f3 100644 --- a/lib/ui/landing/dashboard_screen_for_dependet.dart +++ b/lib/ui/landing/dashboard_screen_for_dependet.dart @@ -12,6 +12,7 @@ import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/main.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/wala_plus_category_model.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/wala_plus_retailer_model.dart'; import 'package:mohem_flutter_app/widgets/info_chip_widget.dart'; @@ -472,7 +473,7 @@ class _DashboardScreenForDependetState extends State GridView.builder( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 0.85, crossAxisSpacing: 12, mainAxisSpacing: 16), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: isTablet ? 4 : 2, childAspectRatio: 0.85, crossAxisSpacing: 12, mainAxisSpacing: 16), itemCount: _filteredRetailersList.length, itemBuilder: (context, index) { return _buildOfferCard(_filteredRetailersList[index], isAr); @@ -908,7 +909,7 @@ class _DashboardScreenForDependetState extends State child: GridView.builder( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 0.72, crossAxisSpacing: 12, mainAxisSpacing: 16), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: isTablet ? 4 : 2, childAspectRatio: 0.85, crossAxisSpacing: 12, mainAxisSpacing: 16), itemCount: 4, itemBuilder: (_, __) { return Container( diff --git a/lib/ui/landing/wala_plus_retailer_details_screen.dart b/lib/ui/landing/wala_plus_retailer_details_screen.dart index d04600f..4f10b1a 100644 --- a/lib/ui/landing/wala_plus_retailer_details_screen.dart +++ b/lib/ui/landing/wala_plus_retailer_details_screen.dart @@ -142,7 +142,7 @@ class _WalaPlusRetailerDetailsScreenState extends State _openInAppBrowser(String url, {String? offerType}) async { String title = _retailer?.name ?? LocaleKeys.offerDetails.tr(); bool shouldStartScanning = offerType?.trim().toLowerCase() == "discount"; - + log("shouldStartScanning: ${shouldStartScanning.toString()} for offerType: ${offerType.toString()}"); await Navigator.push( context, MaterialPageRoute(builder: (BuildContext context) => AppInAppWebViewScreen(url: url, title: title, onPageLoaded: shouldStartScanning ? _clickStartScanningButton : null)), diff --git a/lib/ui/landing/widget/app_drawer.dart b/lib/ui/landing/widget/app_drawer.dart index b9bdbc4..3f9b2e4 100644 --- a/lib/ui/landing/widget/app_drawer.dart +++ b/lib/ui/landing/widget/app_drawer.dart @@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mohem_flutter_app/api/profile_api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; @@ -11,6 +12,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/dashboard/drawer_menu_item_model.dart'; +import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/provider/chat_provider_model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:mohem_flutter_app/ui/dialogs/id/business_card_dialog.dart'; @@ -37,6 +39,22 @@ class _AppDrawerState extends State { chatData = Provider.of(context, listen: false); } + Future _showBusinessCard(BuildContext context) async { + Utils.showLoading(context); + try { + GenericResponseModel? response = await ProfileApiClient().getEmployeeBusinessCardInfo(); + Utils.hideLoading(context); + showMDialog( + context, + child: BusinessCardDialog(qrBase64: response?.businessCardQROutside, employeeInfo: response?.empBusinessCardInfoModel), + isBusniessCard: true, + ); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + @override Widget build(BuildContext context) { if (drawerMenuItemList.isEmpty) { @@ -119,7 +137,7 @@ class _AppDrawerState extends State { }), menuItem("assets/images/drawer/employee_id.svg", LocaleKeys.employeeDigitalID.tr(), "", closeDrawer: false, onPress: () => showMDialog(context, child: EmployeeDigitialIdDialog())), if (AppState().businessCardPrivilege) - menuItem("assets/images/drawer/view_business_card.svg", LocaleKeys.viewBusinessCard.tr(), "", closeDrawer: false, onPress: () => showMDialog(context, child: BusinessCardDialog(), isBusniessCard: true)), + menuItem("assets/images/drawer/view_business_card.svg", LocaleKeys.viewBusinessCard.tr(), "", closeDrawer: false, onPress: () => _showBusinessCard(context)), menuItem("assets/images/drawer/logout.svg", LocaleKeys.logout.tr(), "", color: MyColors.redA3Color, closeDrawer: false, onPress: (){Utils.performLogout(context, chatData);}), // menuItem("assets/images/drawer/logout.svg", LocaleKeys.logout.tr(), "", color: MyColors.redA3Color, closeDrawer: false, onPress: () {Navigator.pushNamed(context, AppRoutes.survey,); ], diff --git a/lib/ui/login/verify_last_login_screen.dart b/lib/ui/login/verify_last_login_screen.dart index 8b52c41..f43ebc6 100644 --- a/lib/ui/login/verify_last_login_screen.dart +++ b/lib/ui/login/verify_last_login_screen.dart @@ -8,6 +8,7 @@ import 'package:local_auth/local_auth.dart'; import 'package:local_auth_darwin/local_auth_darwin.dart'; import 'package:local_auth_android/local_auth_android.dart'; import 'package:mohem_flutter_app/api/login_api_client.dart'; +import 'package:mohem_flutter_app/api/profile_api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; @@ -70,14 +71,22 @@ class _VerifyLastLoginScreenState extends State { surfaceTintColor: Colors.transparent, backgroundColor: Colors.transparent, automaticallyImplyLeading: false, - title: (mobileLoginInfoListModel?.businessCardPrivilege ?? false) - ? LocaleKeys.viewBusinessCard.tr().toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() { - showMDialog(context, child: const BusinessCardDialog()); - }) - : Container(), + title: + (mobileLoginInfoListModel?.businessCardPrivilege ?? false) + ? LocaleKeys.viewBusinessCard.tr().toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() async { + Utils.showLoading(context); + try { + GenericResponseModel? response = await ProfileApiClient().getEmployeeBusinessCardInfo(); + Utils.hideLoading(context); + showMDialog(context, child: BusinessCardDialog(qrBase64: response?.businessCardQROutside, employeeInfo: response?.empBusinessCardInfoModel)); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + }) + : Container(), actions: [ Center( - child: LocaleKeys.employeeDigitalID.tr().toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() { showMDialog(context, child: EmployeeDigitialIdDialog()); }), @@ -113,7 +122,10 @@ class _VerifyLastLoginScreenState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, - children: [LocaleKeys.lastLoginDetails.tr().toText16(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(mobileLoginInfoListModel!.editedOn ?? DateTime.now().toString()), false).toText12()], + children: [ + LocaleKeys.lastLoginDetails.tr().toText16(), + DateUtil.formatDateToDate(DateUtil.convertStringToDate(mobileLoginInfoListModel!.editedOn ?? DateTime.now().toString()), false).toText12(), + ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -208,8 +220,12 @@ class _VerifyLastLoginScreenState extends State { } Future loginWithFaceIDAndBiometrics() async { - - IOSAuthMessages iosStrings = const IOSAuthMessages(cancelButton: 'cancel', goToSettingsButton: 'settings', goToSettingsDescription: 'Please set up your Touch ID.', lockOut: 'Please reenable your Touch ID'); + IOSAuthMessages iosStrings = const IOSAuthMessages( + cancelButton: 'cancel', + goToSettingsButton: 'settings', + goToSettingsDescription: 'Please set up your Touch ID.', + lockOut: 'Please reenable your Touch ID', + ); // IOSAuthMessages iosStrings = const IOSAuthMessages( // cancelButton: 'cancel', @@ -220,13 +236,10 @@ class _VerifyLastLoginScreenState extends State { bool authenticated = false; try { - authenticated = await auth.authenticate(localizedReason: 'Scan your fingerprint to authenticate', options: const AuthenticationOptions( - useErrorDialogs: true, stickyAuth: true, biometricOnly: true, - ), - authMessages: [ - iosStrings, - const AndroidAuthMessages(), - ], + authenticated = await auth.authenticate( + localizedReason: 'Scan your fingerprint to authenticate', + options: const AuthenticationOptions(useErrorDialogs: true, stickyAuth: true, biometricOnly: true), + authMessages: [iosStrings, const AndroidAuthMessages()], ); } on PlatformException catch (e) { print(e); @@ -237,60 +250,58 @@ class _VerifyLastLoginScreenState extends State { } Widget _loginOptionButton(String _title, String _icon, int _flag, int? _loginIndex) { -// <<<<<<< HEAD + // <<<<<<< HEAD bool isDisable = false; - if(_flag >= 3 && _flag <= 4) { - bool isFaceEnabled = (_flag == 3 && (checkBiometricIsAvailable(BiometricType.face) || - checkBiometricIsAvailable(BiometricType.weak))); + if (_flag >= 3 && _flag <= 4) { + bool isFaceEnabled = (_flag == 3 && (checkBiometricIsAvailable(BiometricType.face) || checkBiometricIsAvailable(BiometricType.weak))); - bool isThumbEnabled = - (_flag == 4 && (checkBiometricIsAvailable(BiometricType.fingerprint) || - checkBiometricIsAvailable(BiometricType.strong))); + bool isThumbEnabled = (_flag == 4 && (checkBiometricIsAvailable(BiometricType.fingerprint) || checkBiometricIsAvailable(BiometricType.strong))); isDisable = !(isFaceEnabled || isThumbEnabled); } -// ======= -// bool isDisable = (_flag == 3 && !checkBiometricIsAvailable(BiometricType.face) || -// _flag == 4 && !checkBiometricIsAvailable(BiometricType.fingerprint) && _flag == 4 && !checkBiometricIsAvailable(BiometricType.face)); -// // >>>>>>> master + // ======= + // bool isDisable = (_flag == 3 && !checkBiometricIsAvailable(BiometricType.face) || + // _flag == 4 && !checkBiometricIsAvailable(BiometricType.fingerprint) && _flag == 4 && !checkBiometricIsAvailable(BiometricType.face)); + // // >>>>>>> master return InkWell( - onTap: isDisable - ? null - : () async { - if (_flag == 0) { - setState(() { - // isMoreOption = true; - }); - } else { - if (_flag == 3 || _flag == 4) { - bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics(); - if (!authenticateWithFaceAndTouchID) { - return; - } else { - if (mobileLoginInfoListModel!.loginType == 3 || mobileLoginInfoListModel!.loginType == 4) { - // bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics(); - // if (!authenticateWithFaceAndTouchID) { - // return; - // } else { - // performApiCall(_title, _icon, _flag, isDirectLogin: true); - // } - performApiCall(_title, _icon, _flag, _flag, isDirectLogin: true); + onTap: + isDisable + ? null + : () async { + if (_flag == 0) { + setState(() { + // isMoreOption = true; + }); + } else { + if (_flag == 3 || _flag == 4) { + bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics(); + if (!authenticateWithFaceAndTouchID) { + return; } else { - isNeedVerifyWithFaceIDAndBiometrics = true; - selectedFlag = _flag; - setState(() { - return; - }); + if (mobileLoginInfoListModel!.loginType == 3 || mobileLoginInfoListModel!.loginType == 4) { + // bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics(); + // if (!authenticateWithFaceAndTouchID) { + // return; + // } else { + // performApiCall(_title, _icon, _flag, isDirectLogin: true); + // } + performApiCall(_title, _icon, _flag, _flag, isDirectLogin: true); + } else { + isNeedVerifyWithFaceIDAndBiometrics = true; + selectedFlag = _flag; + setState(() { + return; + }); + } } + } else { + if (isNeedVerifyWithFaceIDAndBiometrics) + performApiCall(_title, _icon, selectedFlag, _flag); + else + performApiCall(_title, _icon, _flag, _flag); } - } else { - if (isNeedVerifyWithFaceIDAndBiometrics) - performApiCall(_title, _icon, selectedFlag, _flag); - else - performApiCall(_title, _icon, _flag, _flag); } - } - }, + }, child: Container( padding: const EdgeInsets.only(left: 20, right: 20, bottom: 15, top: 28), decoration: BoxDecoration( @@ -415,15 +426,15 @@ class _VerifyLastLoginScreenState extends State { } } -// -// formatDate(date) { -// return date; -// return DateFormat('MMM dd, yyy, kk:mm').format(date); -// } -// -// showLoader(bool isTrue) { -// setState(() { -// // isLoading = isTrue; -// }); -// } + // + // formatDate(date) { + // return date; + // return DateFormat('MMM dd, yyy, kk:mm').format(date); + // } + // + // showLoader(bool isTrue) { + // setState(() { + // // isLoading = isTrue; + // }); + // } }