diff --git a/assets/images/svg/add_new_family_icon.svg b/assets/images/svg/add_new_family_icon.svg
new file mode 100644
index 00000000..ad7ee356
--- /dev/null
+++ b/assets/images/svg/add_new_family_icon.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index faa65060..9c974574 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -1654,5 +1654,8 @@
"twoWaySubtitle": "نقل من الموقع إلى المستشفى والعودة مرة أخرى",
"toHospitalSubtitle": "نقل من موقعك الحالي إلى المستشفى",
"fromHospitalSubtitle": "نقل من المستشفى إلى منزلك",
- "clinicSchedule": "جدول العيادة"
+ "clinicSchedule": "جدول العيادة",
+ "doctorAddedToFavourite": "تمت إضافة الطبيب إلى قائمة المفضلة",
+ "doctorRemovedFromFavourite": "تمت إزالة الطبيب من قائمة الأطباء المفضلين",
+ "addNewFavorite": "إضافة مفضلة جديدة"
}
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 4b944e5b..727cd16a 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -1646,5 +1646,8 @@
"twoWaySubtitle": "Round trip from location to hospital and back",
"toHospitalSubtitle": "Transfer from your current location to the hospital",
"fromHospitalSubtitle": "Transfer from the hospital back to your home",
- "clinicSchedule": "Clinic Schedule"
+ "clinicSchedule": "Clinic Schedule",
+ "doctorAddedToFavourite": "Doctor added to favorites list",
+ "doctorRemovedFromFavourite": "Doctor removed from favorites list",
+ "addNewFavorite": "Add new favourite"
}
diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart
index 709d0166..374ac9d1 100644
--- a/lib/core/api/api_client.dart
+++ b/lib/core/api/api_client.dart
@@ -199,8 +199,8 @@ class ApiClientImp implements ApiClient {
body['TokenID'] = "@dm!n";
}
- body['TokenID'] = "@dm!n";
- body['PatientID'] = 1018977;
+ // 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 5fb73a37..9546250d 100644
--- a/lib/core/api_consts.dart
+++ b/lib/core/api_consts.dart
@@ -233,6 +233,11 @@ class ApiConsts {
static String getAiOverViewLabOrders = "Services/Patients.svc/REST/HMGAI_Lab_Analyze_Orders_API";
static String getAiOverViewLabOrder = "Services/Patients.svc/REST/HMGAI_Lab_Analyzer_API";
+ static String googleCloudStorageARTranslationFileURL = "https://storage.googleapis.com/hmg-patientapp-translations/ar-SA.json";
+ static String googleCloudStorageENTranslationFileURL = "https://storage.googleapis.com/hmg-patientapp-translations/en-US.json";
+
+ static String googleCloudStorageENTranslationFileBaseURL = "https://storage.googleapis.com/hmg-patientapp-translations";
+
// ************ static values for Api ****************
static final double appVersionID = 20.9;
diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart
index 6d36098e..b8b7f177 100644
--- a/lib/core/app_assets.dart
+++ b/lib/core/app_assets.dart
@@ -220,6 +220,7 @@ class AppAssets {
static const String ibw = '$svgBasePath/ibw.svg';
static const String general_health = '$svgBasePath/general_health.svg';
static const String women_health = '$svgBasePath/women_health.svg';
+ static const String add_new_family_icon = '$svgBasePath/add_new_family_icon.svg';
static const String height = '$svgBasePath/height.svg';
static const String weight = '$svgBasePath/weight.svg';
diff --git a/lib/features/authentication/authentication_view_model.dart b/lib/features/authentication/authentication_view_model.dart
index 8d313774..8116b2a0 100644
--- a/lib/features/authentication/authentication_view_model.dart
+++ b/lib/features/authentication/authentication_view_model.dart
@@ -630,7 +630,7 @@ class AuthenticationViewModel extends ChangeNotifier {
_appState.setUserBloodGroup = activation.patientBlodType ?? "N/A";
// Fetch patient blood type from new API
- await getPatientBloodTypeNew();
+ // await getPatientBloodTypeNew();
}
// _appState.setUserBloodGroup = (activation.patientBlodType ?? "");
_appState.setAppAuthToken = activation.authenticationTokenId;
@@ -722,6 +722,7 @@ class AuthenticationViewModel extends ChangeNotifier {
}
Future navigateToHomeScreen() async {
+ getPatientBloodTypeNew();
Navigator.pushAndRemoveUntil(
_navigationService.navigatorKey.currentContext!,
CustomPageRoute(
@@ -1018,7 +1019,9 @@ class AuthenticationViewModel extends ChangeNotifier {
nationalId: _appState.getAuthenticatedUser()!.patientIdentificationNo,
gender: _appState.getAuthenticatedUser()!.gender)
.toJson());
- resultEither.fold((failure) async => await _errorHandlerService.handleError(failure: failure), (apiResponse) async {
+ resultEither.fold((failure) async {
+ // await _errorHandlerService.handleError(failure: failure);
+ }, (apiResponse) async {
if (apiResponse.messageStatus == 2) {}
if (apiResponse.messageStatus == 1) {
log("Insert Device Data Success");
diff --git a/lib/features/book_appointments/book_appointments_view_model.dart b/lib/features/book_appointments/book_appointments_view_model.dart
index eab01644..88c9b21c 100644
--- a/lib/features/book_appointments/book_appointments_view_model.dart
+++ b/lib/features/book_appointments/book_appointments_view_model.dart
@@ -857,8 +857,8 @@ class BookAppointmentsViewModel extends ChangeNotifier {
}
initialSlotDuration = apiResponse.data["InitialSlotDuration"];
freeSlotsResponse = apiResponse.data['FreeTimeSlots'];
- isWaitingAppointmentAvailable = apiResponse.data["IsAllowToBookWaitingAppointment"];
- // isWaitingAppointmentAvailable = true;
+ // isWaitingAppointmentAvailable = apiResponse.data["IsAllowToBookWaitingAppointment"];
+ isWaitingAppointmentAvailable = true;
freeSlotsResponse.forEach((element) {
// date = (isLiveCareSchedule != null && isLiveCareSchedule)
diff --git a/lib/features/translations/custom_asset_loader.dart b/lib/features/translations/custom_asset_loader.dart
new file mode 100644
index 00000000..8cf9e7c9
--- /dev/null
+++ b/lib/features/translations/custom_asset_loader.dart
@@ -0,0 +1,27 @@
+import 'dart:convert';
+import 'dart:io';
+import 'dart:ui';
+import 'package:easy_localization/easy_localization.dart';
+import 'package:flutter/services.dart';
+import 'package:path_provider/path_provider.dart';
+
+class RemoteFileLoader extends AssetLoader {
+ @override
+ Future