From d5e180e428b599906b054959142451dc28b11d70 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Fri, 13 Mar 2026 19:02:16 +0300 Subject: [PATCH] Added new hmg patient app redirection in offer details page --- lib/config/localized_values.dart | 1 + lib/pages/feedback/status_feedback_page.dart | 6 +++ .../landing/fragments/offer_details_page.dart | 40 ++++++++++++++----- lib/uitl/translations_delegate_base.dart | 1 + 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 9dbcfa56..3ae2891a 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -2857,4 +2857,5 @@ const Map localizedValues = { "servicePriceList6": {"en": "Dietician Consultation", "ar": "كشف أخصائي تغذية"}, "servicePriceList7": {"en": "LiveCare Consultation", "ar": "كشف استشارة عن بعد ( لايف كير )"}, "servicePriceListRights": {"en": "The patient has the right to a free follow-up within 14 days of initial visit", "ar": "يحق للمريض الحصول على متابعة مجانية في غضون 14 يومًا من الزيارة الأولى"}, + "downloadNewApp": {"en": "Download the new app now", "ar": "حمل التطبيق الجديد الآن"}, }; diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index 0f4f4169..b17c8675 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -251,6 +251,12 @@ class _StatusFeedbackPageState extends State { MyRichText(TranslationBase.of(context).number + ": ", cOCItemList[index].itemID.toString(), isArabic), Text(cOCItemList[index].cOCTitle!, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, fontFamily: isArabic ? 'Cairo' : 'Poppins', color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12)), + Container( + margin: EdgeInsets.only(top: 12.0), + width: MediaQuery.of(context).size.width * 0.55, + child: Text((TranslationBase.of(context).details + ": " + cOCItemList[index].detail!), + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, fontFamily: isArabic ? 'Cairo' : 'Poppins', color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12)), + ), ], ), Column( diff --git a/lib/pages/landing/fragments/offer_details_page.dart b/lib/pages/landing/fragments/offer_details_page.dart index da17f891..c56e7984 100644 --- a/lib/pages/landing/fragments/offer_details_page.dart +++ b/lib/pages/landing/fragments/offer_details_page.dart @@ -1,4 +1,5 @@ import 'dart:developer'; +import 'dart:io'; import 'dart:ui'; import 'package:auto_size_text/auto_size_text.dart' show AutoSizeText; @@ -31,6 +32,7 @@ import 'package:hmg_patient_app/widgets/in_app_browser/InAppBrowser.dart'; import 'package:hmg_patient_app/widgets/others/app_scaffold_widget.dart'; import 'package:hmg_patient_app/widgets/transitions/fade_page.dart'; import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../../widgets/dialogs/confirm_dialog.dart'; import '../../ToDoList/payment_method_select.dart'; @@ -173,11 +175,13 @@ class _OfferDetailsPageState extends State { const SizedBox(height: 24), /// Hospital Dropdown (mock UI) - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - decoration: BoxDecoration( + projectViewModel.havePrivilege(113) + ? Container() + : Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( color: Colors.grey.shade300, borderRadius: BorderRadius.circular(12), ), @@ -237,10 +241,20 @@ class _OfferDetailsPageState extends State { SizedBox( width: MediaQuery.of(context).size.width - 24, height: 50, - child: DefaultButton("Pay Now ادفع الآن", () { - if (projectViewModel.isLogin) { - if (selectedHospital != null) { - startPaymentProcess(context); + child: projectViewModel.havePrivilege(113) + ? DefaultButton(TranslationBase.of(context).downloadNewApp, () { + if (Platform.isAndroid) { + _launchURL("https://play.google.com/store/apps/details?id=com.cloudsolutions.HMGPatientApp"); + } + if (Platform.isIOS) { + _launchURL("https://itunes.apple.com/app/id6758851027"); + // _launchURL("https://apps.apple.com/us/app/dr-sulaiman-alhabib-beta/id6758851027"); + } + }) + : DefaultButton("Pay Now ادفع الآن", () { + if (projectViewModel.isLogin) { + if (selectedHospital != null) { + startPaymentProcess(context); } else { AppToast.showErrorToast(message: TranslationBase.of(context).selectHospital); } @@ -267,6 +281,14 @@ class _OfferDetailsPageState extends State { ); } + _launchURL(String url) async { + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch $url'; + } + } + startPaymentProcess(BuildContext context) { Navigator.push( context, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index ab1b77a8..9ae6a53f 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -3542,6 +3542,7 @@ class TranslationBase { String get servicePriceList6 => localizedValues["servicePriceList6"][locale.languageCode]; String get servicePriceList7 => localizedValues["servicePriceList7"][locale.languageCode]; String get servicePriceListRights => localizedValues["servicePriceListRights"][locale.languageCode]; + String get downloadNewApp => localizedValues["downloadNewApp"][locale.languageCode]; String getTranslation(String label) { switch (label) {