From 327f9d41b7c5fd760518c1ec2fbd50d1d291edfc Mon Sep 17 00:00:00 2001 From: Aamir Date: Thu, 24 Oct 2024 16:11:04 +0300 Subject: [PATCH] changes --- .../profile/document.dart | 39 ++--- lib/services/payments_service.dart | 8 +- .../provider_license_page.dart | 135 +++++++++--------- 3 files changed, 98 insertions(+), 84 deletions(-) diff --git a/lib/models/provider_branches_models/profile/document.dart b/lib/models/provider_branches_models/profile/document.dart index eb6d2f8..d82aa02 100644 --- a/lib/models/provider_branches_models/profile/document.dart +++ b/lib/models/provider_branches_models/profile/document.dart @@ -21,14 +21,16 @@ class Document { int? messageStatus; String? message; - factory Document.fromJson(Map json) => Document( + factory Document.fromJson(Map json) => + Document( totalItemsCount: json["totalItemsCount"], data: json["data"] == null ? null : List.from(json["data"].map((x) => DocumentData.fromJson(x))), messageStatus: json["messageStatus"], message: json["message"], ); - Map toJson() => { + Map toJson() => + { "totalItemsCount": totalItemsCount, "data": data == null ? null : List.from(data!.map((x) => x.toJson())), "messageStatus": messageStatus, @@ -50,6 +52,7 @@ class DocumentData { this.fileExt, this.documentName, this.isLocalFile, + this.description, }); int? id; @@ -64,22 +67,26 @@ class DocumentData { String? statusText; String? documentName; bool? isLocalFile; + String? description; - factory DocumentData.fromJson(Map json) => DocumentData( - id: json["id"], - serviceProviderId: json["serviceProviderID"], - documentId: json["documentID"], - documentUrl: json["documentURL"], - status: json["status"], - statusText: json["statusText"], - comment: json["comment"], - isActive: json["isActive"], - document: null, - fileExt: null, - documentName: json["documentName"], - isLocalFile: false); + factory DocumentData.fromJson(Map json) => + DocumentData( + id: json["id"], + serviceProviderId: json["serviceProviderID"], + documentId: json["documentID"], + documentUrl: json["documentURL"], + status: json["status"], + statusText: json["statusText"], + comment: json["comment"], + isActive: json["isActive"], + document: null, + fileExt: null, + documentName: json["documentName"], + isLocalFile: false, + description: null); - Map toJson() => { + Map toJson() => + { "id": id, "serviceProviderID": serviceProviderId, "documentID": documentId, diff --git a/lib/services/payments_service.dart b/lib/services/payments_service.dart index 36f5c91..4f8901d 100644 --- a/lib/services/payments_service.dart +++ b/lib/services/payments_service.dart @@ -27,10 +27,12 @@ abstract class PaymentService { class PaymentServiceImp implements PaymentService { MyInAppBrowser? myInAppBrowser; var inAppBrowserOptions = InAppBrowserClassOptions( - inAppWebViewGroupOptions: InAppWebViewGroupOptions(crossPlatform: InAppWebViewOptions(useShouldOverrideUrlLoading: true, transparentBackground: false), ios: IOSInAppWebViewOptions(applePayAPIEnabled: true)), + inAppWebViewGroupOptions: + InAppWebViewGroupOptions(crossPlatform: InAppWebViewOptions(useShouldOverrideUrlLoading: true, transparentBackground: false), ios: IOSInAppWebViewOptions(applePayAPIEnabled: true)), crossPlatform: InAppBrowserOptions(hideUrlBar: true, toolbarTopBackgroundColor: Colors.black), android: AndroidInAppBrowserOptions(), - ios: IOSInAppBrowserOptions(hideToolbarBottom: true, toolbarBottomBackgroundColor: Colors.white, closeButtonColor: Colors.white, presentationStyle: IOSUIModalPresentationStyle.OVER_FULL_SCREEN)); + ios: + IOSInAppBrowserOptions(hideToolbarBottom: true, toolbarBottomBackgroundColor: Colors.white, closeButtonColor: Colors.white, presentationStyle: IOSUIModalPresentationStyle.OVER_FULL_SCREEN)); String getUrlRequestByPaymentId({required int id, List? appointmentIds, required PaymentTypes paymentType}) { String urlRequest = ""; @@ -87,7 +89,7 @@ class PaymentServiceImp implements PaymentService { onBrowserLoadStart(onFailure: onFailure, onSuccess: onSuccess, url: url); }); await myInAppBrowser!.openUrlRequest( - urlRequest: URLRequest(url: Uri.parse(urlRequest)), + urlRequest: URLRequest(url: WebUri(urlRequest, forceToStringRawValue: true)), options: inAppBrowserOptions, ); } diff --git a/lib/views/setting_options/provider_license_page.dart b/lib/views/setting_options/provider_license_page.dart index 9d17e99..6ae4eea 100644 --- a/lib/views/setting_options/provider_license_page.dart +++ b/lib/views/setting_options/provider_license_page.dart @@ -130,72 +130,77 @@ class _ProviderLicensePageState extends State { return serviceVM.document!.data!.isEmpty ? Text(LocaleKeys.somethingWrong.tr()) : ListView.separated( - separatorBuilder: (context, index) { - return 20.height; - }, - itemCount: serviceVM.document!.data!.length, - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - padding: const EdgeInsets.symmetric(horizontal: 20), - itemBuilder: (context, index) { - DocumentData? document = serviceVM.document?.data![index]; - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - 10.height, - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - (document!.documentName!).toText(fontSize: 16, letterSpacing: -0.56, fontWeight: MyFonts.SemiBold), - if (document.statusText != null && document.statusText!.isNotEmpty) ...[ - 10.width, - Utils.statusContainerChip(text: document.statusText!.replaceFirst('OrActive', ''), chipColor: getColorByStatus(document.status ?? 1)), - ], - ], - ), - if (document.status != 1 && document.status != 3) ...[ - Padding( - padding: const EdgeInsets.only(top: 4, bottom: 8), - child: LocaleKeys.enter_licence_detail.tr().toText(fontSize: 14, color: MyColors.lightTextColor), - ), - TxtField( - hint: LocaleKeys.description.tr(), - maxLines: 3, - isBackgroundEnabled: true, - ), - ], - 10.height, - if (isNeedToShow(model: serviceVM, document: document)) ...[ - PickedFilesContainer( - isReview: document.status == 4, - allowAdButton: false, - pickedFiles: isLocalOrNetworkFiles(model: serviceVM, document: document), - onCrossPressedPrimary: isNetworkImage(document: document) - ? serviceVM.removeNetworkImage - : document.documentId == 1 - ? serviceVM.commerceRemove - : document.documentId == 2 - ? serviceVM.commercialRemove - : serviceVM.vatRemove, - isPdf: serviceVM.document!.data![index].fileExt == "pdf", - isFromNetwork: !(document.isLocalFile ?? false), - onAddFilePressed: () { - serviceVM.pickPdfReceiptFile(context, document.documentId!, index); - }, - ), - buildCommentContainer(document: document), - ] else ...[ - 10.height, - DottedRectContainer( - onTap: () => serviceVM.pickPdfReceiptFile(context, document.documentId!, index) ?? "", - text: LocaleKeys.attachImage.tr(), - icon: MyAssets.attachmentIcon.buildSvg(), - ), - ], + separatorBuilder: (context, index) { + return 20.height; + }, + itemCount: serviceVM.document!.data!.length, + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + padding: const EdgeInsets.symmetric(horizontal: 20), + itemBuilder: (context, index) { + DocumentData? document = serviceVM.document?.data![index]; + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + 10.height, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + (document!.documentName!).toText(fontSize: 16, letterSpacing: -0.56, fontWeight: MyFonts.SemiBold), + if (document.statusText != null && document.statusText!.isNotEmpty) ...[ + 10.width, + Utils.statusContainerChip(text: document.statusText!.replaceFirst('OrActive', ''), chipColor: getColorByStatus(document.status ?? 1)), ], - ); - }, - ); + ], + ), + if (document.status != 1 && document.status != 3) ...[ + Padding( + padding: const EdgeInsets.only(top: 4, bottom: 8), + child: LocaleKeys.enter_licence_detail.tr().toText(fontSize: 14, color: MyColors.lightTextColor), + ), + TxtField( + hint: LocaleKeys.description.tr(), + maxLines: 3, + isBackgroundEnabled: true, + value: document.description != null ? document.description : "", + onChanged: (val) { + document.description = val; + }, + ), + ], + 10.height, + if (isNeedToShow(model: serviceVM, document: document)) ...[ + PickedFilesContainer( + isReview: document.status == 4, + allowAdButton: false, + pickedFiles: isLocalOrNetworkFiles(model: serviceVM, document: document), + onCrossPressedPrimary: isNetworkImage(document: document) + ? serviceVM.removeNetworkImage + : document.documentId == 1 + ? serviceVM.commerceRemove + : document.documentId == 2 + ? serviceVM.commercialRemove + : serviceVM.vatRemove, + isPdf: serviceVM.document!.data![index].fileExt == "pdf", + isFromNetwork: !(document.isLocalFile ?? false), + onAddFilePressed: () { + serviceVM.pickPdfReceiptFile(context, document.documentId!, index); + }, + ), + buildCommentContainer(document: document), + ] else + ...[ + 10.height, + DottedRectContainer( + onTap: () => serviceVM.pickPdfReceiptFile(context, document.documentId!, index) ?? "", + text: LocaleKeys.attachImage.tr(), + icon: MyAssets.attachmentIcon.buildSvg(), + ), + ], + ], + ); + }, + ); } List isLocalOrNetworkFiles({required ServiceVM model, required DocumentData document}) {