diff --git a/assets/images/png/lakum_logo_white.png b/assets/images/png/lakum_logo_white.png index b05c90a2..db45e5a9 100644 Binary files a/assets/images/png/lakum_logo_white.png and b/assets/images/png/lakum_logo_white.png differ diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart index 958deaf2..64074ff8 100644 --- a/lib/core/api/api_client.dart +++ b/lib/core/api/api_client.dart @@ -208,8 +208,8 @@ class ApiClientImp implements ApiClient { body['TokenID'] = "@dm!n"; } - body['TokenID'] = "@dm!n"; - // body['PatientID'] = 1624918; + // body['TokenID'] = "@dm!n"; + // body['PatientID'] = 1018977; // body['PatientTypeID'] = 1; // body['PatientOutSA'] = 0; // body['SessionID'] = "45786230487560q"; diff --git a/lib/core/api_consts.dart b/lib/core/api_consts.dart index 96d80118..1fa35fb8 100644 --- a/lib/core/api_consts.dart +++ b/lib/core/api_consts.dart @@ -4,7 +4,7 @@ import 'package:hmg_patient_app_new/core/enums.dart'; class ApiConsts { static const maxSmallScreen = 660; - static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.preProd; + static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod; // static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT diff --git a/lib/core/utils/penguin_method_channel.dart b/lib/core/utils/penguin_method_channel.dart index c3da7242..939b98a9 100644 --- a/lib/core/utils/penguin_method_channel.dart +++ b/lib/core/utils/penguin_method_channel.dart @@ -22,7 +22,6 @@ class PenguinMethodChannel { "baseURL": "https://eagleiq.hmg.com", "dataURL": "https://eagleiq.hmg.com", "positionURL": "https://eagleiq.hmg.com", - "dataServiceName": "api", "positionServiceName": "pe", "clientID": "HMG", diff --git a/lib/features/contact_us/contact_us_view_model.dart b/lib/features/contact_us/contact_us_view_model.dart index 00ef8dbc..648fab6b 100644 --- a/lib/features/contact_us/contact_us_view_model.dart +++ b/lib/features/contact_us/contact_us_view_model.dart @@ -345,7 +345,7 @@ class ContactUsViewModel extends ChangeNotifier { } } else if (apiResponse.messageStatus == 1) { cocItemsList = apiResponse.data!; - cocItemsList.sort((a, b) => a.date!.compareTo(b.date!)); + cocItemsList.sort((a, b) => b.date!.compareTo(a.date!)); isCOCItemsListLoading = false; notifyListeners(); if (onSuccess != null) { diff --git a/lib/features/my_invoices/models/get_pharmacy_invoices_response_model.dart b/lib/features/my_invoices/models/get_pharmacy_invoices_response_model.dart index 458d512a..cfa19900 100644 --- a/lib/features/my_invoices/models/get_pharmacy_invoices_response_model.dart +++ b/lib/features/my_invoices/models/get_pharmacy_invoices_response_model.dart @@ -1,6 +1,7 @@ class GetPharmacyInvoicesResponseModel { String? setupId; int? projectID; + int? pharmacyProjectID; int? patientID; int? appointmentNo; String? appointmentDate; @@ -24,6 +25,7 @@ class GetPharmacyInvoicesResponseModel { GetPharmacyInvoicesResponseModel( {this.setupId, this.projectID, + this.pharmacyProjectID, this.patientID, this.appointmentNo, this.appointmentDate, @@ -46,6 +48,7 @@ class GetPharmacyInvoicesResponseModel { GetPharmacyInvoicesResponseModel.fromJson(Map json) { setupId = json['SetupId']; projectID = json['ProjectID']; + pharmacyProjectID = json['PharmacyProjectID']; patientID = json['PatientID']; appointmentNo = json['AppointmentNo']; appointmentDate = json['AppointmentDate']; @@ -71,6 +74,7 @@ class GetPharmacyInvoicesResponseModel { final Map data = new Map(); data['SetupId'] = this.setupId; data['ProjectID'] = this.projectID; + data['PharmacyProjectID'] = this.pharmacyProjectID; data['PatientID'] = this.patientID; data['AppointmentNo'] = this.appointmentNo; data['AppointmentDate'] = this.appointmentDate; diff --git a/lib/main.dart b/lib/main.dart index 25639e91..ffe2043e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -98,7 +98,7 @@ Future callAppStateInitializations() async { PlatformDispatcher.instance.onError = (error, stack) { if (!kDebugMode) { FirebaseCrashlytics.instance.recordError(error, stack, - fatal: false, + fatal: true, printDetails: true, reason: "${appState.isAuthenticated ? "Authenticated User ID: ${appState.getAuthenticatedUser()!.patientId} - ${appState.getAuthenticatedUser()!.mobileNumber}" : "Unauthenticated User"} - Uncaught asynchronous error"); diff --git a/lib/presentation/book_appointment/livecare/immediate_livecare_payment_page.dart b/lib/presentation/book_appointment/livecare/immediate_livecare_payment_page.dart index 031bb0b8..87f058af 100644 --- a/lib/presentation/book_appointment/livecare/immediate_livecare_payment_page.dart +++ b/lib/presentation/book_appointment/livecare/immediate_livecare_payment_page.dart @@ -510,7 +510,7 @@ class _ImmediateLiveCarePaymentPageState extends State { false, // Don't show files option, only camera and gallery (base64String, file) async { try { - print('=== Starting image processing ==='); - print('File path: ${file.path}'); - print('File exists: ${await file.exists()}'); - print('Original file size: ${await file.length() / 1024} KB'); - // Compress and resize the image - print('Calling compressAndResizeImage...'); final compressedFile = await ImageCompressionHelper.compressAndResizeImage(file); File finalFile; String finalBase64; if (compressedFile == null) { - print('⚠️ Compression failed - using original file as fallback'); // Fallback: use original image if compression fails final originalSize = await file.length(); final maxSize = 1048576; // 1MB if (originalSize > maxSize) { - print('❌ Original file is too large: ${originalSize / 1024} KB'); if (mounted) { Utils.showToast( LocaleKeys.imageSizeTooLarge.tr(context: context), @@ -111,8 +103,6 @@ class _FamilyCardsState extends State { } return; } - - print('✅ Using original file (${originalSize / 1024} KB)'); finalFile = file; var bytes = await file.readAsBytes(); finalBase64 = base64.encode(bytes); @@ -120,10 +110,8 @@ class _FamilyCardsState extends State { // Check compressed file size final fileSize = await compressedFile.length(); final maxSize = 1048576; // 1MB - print('✅ Compression successful: ${fileSize / 1024} KB'); if (fileSize > maxSize) { - print('❌ Compressed file still too large'); if (mounted) { Utils.showToast( LocaleKeys.imageSizeTooLarge.tr(context: context), @@ -137,22 +125,16 @@ class _FamilyCardsState extends State { finalBase64 = base64.encode(bytes); } - print('Converting to base64... Length: ${finalBase64.length}'); - if (mounted) { setState(() { _selectedImage = finalFile; }); - print('📤 Starting upload...'); // Upload the image _uploadImage(finalBase64); } - print('=== Image processing complete ==='); } catch (e, stackTrace) { - print('❌ Error in _pickImage: $e'); - print('Stack trace: $stackTrace'); if (mounted) { Utils.showToast( LocaleKeys.failedToProcessImage.tr(context: context), @@ -901,6 +883,7 @@ class _FamilyCardsState extends State { : Expanded( child: CustomButton( height: 40.h, + fontSize: 14.f, text: LocaleKeys.acceptLbl.tr(), onPressed: () { navigationService.pop(); @@ -917,6 +900,7 @@ class _FamilyCardsState extends State { Expanded( child: CustomButton( height: 40.h, + fontSize: 14.f, text: profile.status == FamilyFileEnum.active.toInt ? LocaleKeys.removeMember.tr() : LocaleKeys.rejectView.tr(), onPressed: () { navigationService.pop();