From b677be9e3cf816b28a491a6e0cba4d488537ade7 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 16 Jan 2025 14:04:42 +0300 Subject: [PATCH 1/8] Updates & fixes --- android/app/build.gradle | 5 +- android/app/src/main/AndroidManifest.xml | 7 ++- .../diplomaticquarterapp/MainActivity.kt | 7 +++ ios/Runner.xcodeproj/project.pbxproj | 6 +- lib/config/config.dart | 12 ++-- .../livecare/live_care_payment_page.dart | 60 +++++++++---------- lib/pages/login/confirm-login.dart | 8 ++- lib/uitl/whatsapp_method_channel.dart | 32 ++++++++++ lib/widgets/otp/sms-popup.dart | 12 ++++ 9 files changed, 106 insertions(+), 43 deletions(-) create mode 100644 lib/uitl/whatsapp_method_channel.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 98c75fbe..ef1c3d69 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -213,7 +213,8 @@ dependencies { implementation 'com.google.android.material:material:1.9.0' implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.22' androidTestImplementation "androidx.test:core:1.4.0" - implementation 'com.airbnb.android:lottie:5.2.0' - implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.22' +// implementation 'com.airbnb.android:lottie:5.2.0' +// implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.22' + implementation 'com.whatsapp.otp:whatsapp-otp-android-sdk:0.1.0' } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 2856e8f1..0bd786ec 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -71,6 +71,8 @@ + + - - - - - - - - - - - - - - - + FlutterApplication and put your custom class here. + --> + + + + + + + + + + + + + - - - - + + - + - - + + - + - + - - + + + + @@ -53,111 +84,146 @@ - - - - - + + - - - - - - - + + + + + + + - - + + + + + android:icon="@mipmap/ic_launcher_local" + android:label="Dr. Alhabib" + android:screenOrientation="sensorPortrait" + android:showOnLockScreen="true" + android:usesCleartextTraffic="true" + tools:replace="android:extractNativeLibs,android:label"> + + + + + + + - - + to determine the Window background behind the Flutter UI. + --> - + Flutter's first frame. + --> - - - + + + + - + + + + + + + + - - - - - - - - - - - + + - - + + - + - + - - + - - - + + + - + @@ -173,26 +239,17 @@ - - - - - - - + + + - - - - - - - - - + \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt index d51e25ec..c874ea4d 100644 --- a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/MainActivity.kt @@ -1,4 +1,5 @@ package com.ejada.hmg +import android.app.PendingIntent import android.content.Intent import android.content.pm.PackageManager import android.os.Build @@ -7,6 +8,7 @@ import android.view.WindowManager import androidx.annotation.NonNull; import androidx.annotation.RequiresApi import com.cloud.diplomaticquarterapp.PenguinInPlatformBridge +import com.cloud.diplomaticquarterapp.whatsapp.AppSignatureRetriever import com.ejada.hmg.utils.* import io.flutter.embedding.android.FlutterFragmentActivity import io.flutter.embedding.engine.FlutterEngine @@ -26,11 +28,8 @@ class MainActivity: FlutterFragmentActivity() { OpenTokPlatformBridge(flutterEngine, this).create() PenguinInPlatformBridge(flutterEngine, this).create() WhatsAppOtpPlatformBridge(flutterEngine, this).invoke() - WhatsApp.handleOTP(intent){code -> - WhatsAppOtpPlatformBridge.result?.success(code); - } - -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + AppSignatureRetriever().logSignatures(this) +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {x // val mChannel = NotificationChannel("video_call_noti", "video call", NotificationManager.IMPORTANCE_HIGH) // val soundUri = Uri.parse("android.resource://" + getApplicationContext() // .getPackageName() + "/" + R.raw.alert) diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/AppSignatureRetriever.java b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/AppSignatureRetriever.java new file mode 100644 index 00000000..83e6e917 --- /dev/null +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/AppSignatureRetriever.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.cloud.diplomaticquarterapp.whatsapp; + +import static java.sql.DriverManager.println; + +import android.content.Context; +import android.content.ContextWrapper; +import android.content.pm.PackageManager; +import android.content.pm.Signature; +import android.util.Base64; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; +import java.util.Collection; +import java.util.stream.Collectors; + +public class AppSignatureRetriever { + + private static final String HASH_TYPE = "SHA-256"; + public static final int NUM_HASHED_BYTES = 9; + public static final int NUM_BASE64_CHAR = 11; + + + public void logSignatures(Context context) { + Collection appSignatures = getAppSignatures(context); + appSignatures.forEach(signature -> println("Signature: " + signature)); + } + + /** + * Get all the app signatures for the current package. + * + * @return signatures for current app + */ + public Collection getAppSignatures(Context context) { + try { + // Get all package signatures for the current package + String packageName = context.getPackageName(); + println("Package name: " + packageName); + PackageManager packageManager = context.getPackageManager(); + Signature[] signatures = packageManager.getPackageInfo(packageName, + PackageManager.GET_SIGNATURES).signatures; + + // For each signature create a compatible hash + Collection appCodes = Arrays.stream(signatures) + .map(signature -> hash(packageName, signature.toCharsString())) + .collect(Collectors.toList()); + return appCodes; + } catch (PackageManager.NameNotFoundException e) { + println("Unable to find package to obtain hash."); + throw new RuntimeException("Unable to find package to obtain hash.", e); + } + + } + + private String hash(String packageName, String signature) { + String appInfo = packageName + " " + signature; + try { + MessageDigest messageDigest = MessageDigest.getInstance(HASH_TYPE); + messageDigest.update(appInfo.getBytes(StandardCharsets.UTF_8)); + byte[] hashSignature = messageDigest.digest(); + + // truncated into NUM_HASHED_BYTES + hashSignature = Arrays.copyOfRange(hashSignature, 0, NUM_HASHED_BYTES); + // encode into Base64 + String base64Hash = Base64.encodeToString(hashSignature, Base64.NO_PADDING | Base64.NO_WRAP); + base64Hash = base64Hash.substring(0, NUM_BASE64_CHAR); + + println(String.format("pkg: %s -- hash: %s", packageName, base64Hash)); + return base64Hash; + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("Unable to generate hash for application", e); + } + } +} diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsApp.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsApp.kt index 6d16745d..73452e6f 100644 --- a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsApp.kt +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsApp.kt @@ -14,7 +14,11 @@ object WhatsApp { intent, // call your function to validate {code -> validateOTP(code) }, - {_,_->}) + {error,exception-> + println("the error is ${error.name}") + println("the exception stacktrace is ${exception.message}") + println("the exception is cause ${exception.cause}") + }) fun performHandShake(context : WeakReference) = whatsAppOtpHandler.sendOtpIntentToWhatsApp(context.get()!!) diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt new file mode 100644 index 00000000..5862b30b --- /dev/null +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt @@ -0,0 +1,18 @@ +package com.ejada.hmg +import android.app.PendingIntent +import android.content.Intent +import android.os.Bundle +import com.cloud.diplomaticquarterapp.whatsapp.WhatsApp +import com.cloud.diplomaticquarterapp.whatsapp.WhatsAppOtpPlatformBridge +import io.flutter.embedding.android.FlutterFragmentActivity + +class WhatsAppCodeActivity : FlutterFragmentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + WhatsApp.handleOTP(intent){code -> + WhatsAppOtpPlatformBridge.result?.success(code); + println("the code is $code") + finish() + } + } +} \ No newline at end of file diff --git a/android/app/src/main/res/layout/activity_whats_app_code.xml b/android/app/src/main/res/layout/activity_whats_app_code.xml new file mode 100644 index 00000000..95bd5d8b --- /dev/null +++ b/android/app/src/main/res/layout/activity_whats_app_code.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 1093435a..6c4ac3df 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,23 +1,23 @@ - HMG Patient App + HMG Patient App - + Unknown error: the Geofence service is not available now. - + Geofence service is not available now. Go to Settings>Location>Mode and choose High accuracy. - + Your app has registered too many geofences. - + You have provided too many PendingIntents to the addGeofences() call. - + App do not have permission to access location service. - + Geofence requests happened too frequently. - sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg + sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index aabea14c..1c17088b 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -346,10 +346,16 @@ class _ConfirmLogin extends State { } loginWithSMS(type) async { - // if (type == 4) { - // var channel = WhatsappMethodChannel(); - // await channel.handleHandShake(); - // } + if (type == 4) { + var channel = WhatsappMethodChannel(); + // var whatsappStatus = await channel.isWhatsAppInstalled(); + // if(whatsappStatus) { + // print("whatapp is installed"); + channel.handleHandShake(); + // }else{ + // print("whatapp is not installed"); + // } + } //if (!el.disabled) { if (this.user != null && this.registerd_data == null) { diff --git a/lib/uitl/whatsapp_method_channel.dart b/lib/uitl/whatsapp_method_channel.dart index 20d26159..068e123e 100644 --- a/lib/uitl/whatsapp_method_channel.dart +++ b/lib/uitl/whatsapp_method_channel.dart @@ -24,9 +24,11 @@ class WhatsappMethodChannel { Future startListening() async { try{ - return await _channel.invokeMethod("startListening"); + String code = await _channel.invokeMethod("startListening"); + print("the code in flutter is ${code}"); + return code; }catch(e){ return ""; } } -} +} \ No newline at end of file diff --git a/lib/widgets/otp/sms-popup.dart b/lib/widgets/otp/sms-popup.dart index 5c30605a..66bdb936 100644 --- a/lib/widgets/otp/sms-popup.dart +++ b/lib/widgets/otp/sms-popup.dart @@ -103,9 +103,10 @@ class SMSOTP { child: StatefulBuilder(builder: (context, setState) { if (displayTime == '') { startTimer(setState); - - // startLister(); - if (Platform.isAndroid && type == 1) checkSignature(); + if (Platform.isAndroid ) { + if (type == 1) checkSignature(); + else if(type == 4) _listenWhatsAppCode(); + } } return Container( @@ -297,17 +298,15 @@ class SMSOTP { SmsVerification.stopListening(); // }); }); + } + void _listenWhatsAppCode(){ WhatsappMethodChannel().startListening().then((message) { - // setState(() { final intRegex = RegExp(r'\d+', multiLine: true); var otp = SmsVerification.getCode(message, intRegex); _pinPutController.text = otp; onSuccess(otp); - SmsVerification.stopListening(); - // }); }); - } // startLister() { From 59335ac04db8172a60ac7a326404d105e3193dfe Mon Sep 17 00:00:00 2001 From: "taha.alam" Date: Sun, 19 Jan 2025 15:45:37 +0300 Subject: [PATCH 3/8] WD: reverting changes --- lib/pages/landing/widgets/services_view.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/pages/landing/widgets/services_view.dart b/lib/pages/landing/widgets/services_view.dart index b76cf82c..8ca7f76b 100644 --- a/lib/pages/landing/widgets/services_view.dart +++ b/lib/pages/landing/widgets/services_view.dart @@ -231,15 +231,15 @@ class ServicesView extends StatelessWidget { openLiveCare(context); } else if (hmgServices.action == 2) { //todo for temporary basis - Navigator.push(context, FadePage(page: VitalSigns())); + // Navigator.push(context, FadePage(page: VitalSigns())); // initPenguinSDK(); - // if (projectViewModel.isIndoorNavigationEnabled) { - // if (!isLocked) openNavigationProjectSelection(context); - // } else { - // Navigator.push(context, FadePage(page: ErOptions(isAppbar: true))); - // locator().hmgServices.logServiceName('emergency service'); - // } + if (projectViewModel.isIndoorNavigationEnabled) { + if (!isLocked) openNavigationProjectSelection(context); + } else { + Navigator.push(context, FadePage(page: ErOptions(isAppbar: true))); + locator().hmgServices.logServiceName('emergency service'); + } } else if (hmgServices.action == 3) { Navigator.push(context, FadePage(page: HomeHealthCarePage())); locator().hmgServices.logServiceName('home health care'); From bd3dca6719d132f9c1cc351555bd2030beecd48a Mon Sep 17 00:00:00 2001 From: "taha.alam" Date: Mon, 20 Jan 2025 10:31:59 +0300 Subject: [PATCH 4/8] WD: session id issue fixed --- lib/pages/login/login.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index beb047f5..832e0a1e 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -362,12 +362,12 @@ class _Login extends State { projectViewModel.setPrivilege(privilegeList: result); result = CheckActivationCode.fromJson(result); result.list.isFamily = false; - this.sharedPref.setString(BLOOD_TYPE, + await this.sharedPref.setString(BLOOD_TYPE, result.patientBloodType != null ? result.patientBloodType : ""); - this.sharedPref.setObject(USER_PROFILE, result.list); - this.sharedPref.setObject(MAIN_USER, result.list); - this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); - this.sharedPref.setString(TOKEN, result.authenticationTokenID); + await this.sharedPref.setObject(USER_PROFILE, result.list); + await this.sharedPref.setObject(MAIN_USER, result.list); + await this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); + await this.sharedPref.setString(TOKEN, result.authenticationTokenID); await authenticatedUserObject.getUser(getUser: true); authenticatedUserObject.isLogin = true; appointmentRateViewModel.isLogin = true; From 62bc29d450246c28e210ae07b08b77f6dc98c96f Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 19 Jan 2025 16:21:44 +0300 Subject: [PATCH 5/8] updates --- .../whatsapp/WhatsAppOtpPlatformBridge.kt | 52 +++++++ .../lib/src/pixel_format.dart | 19 +++ .../vital_sign_camera/lib/src/vital_sign.dart | 138 ++++++++++++++++++ .../vital_sign_camera_platform_interface.dart | 42 ++++++ 4 files changed, 251 insertions(+) create mode 100644 android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppOtpPlatformBridge.kt create mode 100644 packages/vital_sign_camera/lib/src/pixel_format.dart create mode 100644 packages/vital_sign_camera/lib/src/vital_sign.dart create mode 100644 packages/vital_sign_camera/lib/src/vital_sign_camera_platform_interface.dart diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppOtpPlatformBridge.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppOtpPlatformBridge.kt new file mode 100644 index 00000000..a03584ae --- /dev/null +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppOtpPlatformBridge.kt @@ -0,0 +1,52 @@ +package com.cloud.diplomaticquarterapp.whatsapp + +import android.os.Build +import android.util.Log +import androidx.annotation.RequiresApi +import com.cloud.diplomaticquarterapp.penguin.PenguinView +import com.ejada.hmg.MainActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import java.lang.ref.WeakReference + +class WhatsAppOtpPlatformBridge( + private var flutterEngine: FlutterEngine, + private var mainActivity: MainActivity +) { + + + private lateinit var channel: MethodChannel + + companion object { + private const val CHANNEL = "whats_app_otp" + var result: MethodChannel.Result? = null + } + + fun invoke() { + channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL) + channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result -> + when (call.method) { + "isWhatsAppInstalled" -> { + val isAppInstalled = + WhatsApp.isWhatsAppInstalled(WeakReference(mainActivity)) + result.success(isAppInstalled) + } + + "performHandShake" -> { + WhatsApp.performHandShake(WeakReference(mainActivity)) + } + + + "startListening" -> { + WhatsAppOtpPlatformBridge.result = result + } + + else -> { + result.notImplemented() + } + + } + } + } +} \ No newline at end of file diff --git a/packages/vital_sign_camera/lib/src/pixel_format.dart b/packages/vital_sign_camera/lib/src/pixel_format.dart new file mode 100644 index 00000000..bbc2401d --- /dev/null +++ b/packages/vital_sign_camera/lib/src/pixel_format.dart @@ -0,0 +1,19 @@ +/// Represents the pixel format of a `Frame`. +/// * `v420`: 420 YpCbCr 8 Bi-Planar Video Range +/// * `f420`: 420 YpCbCr 8 Bi-Planar Full Range +/// * `x420`: 420 YpCbCr 10 Bi-Planar Video Range +enum PixelFormat { f420, v420, x420 } + +PixelFormat pixelFormatFromString(String string) { + switch (string) { + case '420f': + return PixelFormat.f420; + case '420v': + return PixelFormat.v420; + case 'x420': + return PixelFormat.x420; + default: + // ignore: fixme + return PixelFormat.f420; + } +} diff --git a/packages/vital_sign_camera/lib/src/vital_sign.dart b/packages/vital_sign_camera/lib/src/vital_sign.dart new file mode 100644 index 00000000..9bc60b47 --- /dev/null +++ b/packages/vital_sign_camera/lib/src/vital_sign.dart @@ -0,0 +1,138 @@ +/// The vital signs result of a scan. +class VitalSign { + final double heartRate; + final double spo2; + final double ibi; + final double? stress; + final double? stressScore; + final double? respiratoryRate; + final double? hrvSdnn; + final double? hrvRmssd; + final double? temperature; + final String? bloodPressure; + final double? bloodPressureSystolic; + final double? bloodPressureDiastolic; + final double? facialSkinAge; + final double? bloodAlcohol; + final double? bloodSugar; + final String? version; + + const VitalSign( + this.heartRate, + this.spo2, + this.ibi, + this.stress, + this.stressScore, + this.respiratoryRate, + this.hrvSdnn, + this.hrvRmssd, + this.temperature, + this.bloodPressure, + this.bloodPressureSystolic, + this.bloodPressureDiastolic, + this.facialSkinAge, + this.bloodAlcohol, + this.bloodSugar, + this.version); + + factory VitalSign.fromMap(Map map) { + return VitalSign( + map['heartRate'], + map['spo2'], + map['ibi'], + map['stress'], + map['stressScore'], + map['respiratoryRate'], + map['hrvSdnn'], + map['hrvRmssd'], + map['temperature'], + map['bloodPressure'], + map['bloodPressureSystolic'], + map['bloodPressureDiastolic'], + map['facialSkinAge'], + map['bloodAlcohol'], + map['bloodSugar'], + map['version']); + } +} + +/// The cardiovascular risks result of a scan. +class CardiovascularRisks { + final double generalRisk; + final double coronaryHeartDisease; + final double congestiveHeartFailure; + final double intermittentClaudication; + final double stroke; + + const CardiovascularRisks(this.generalRisk, this.coronaryHeartDisease, + this.congestiveHeartFailure, this.intermittentClaudication, this.stroke); + + factory CardiovascularRisks.fromMap(Map map) { + return CardiovascularRisks( + map['generalRisk'], + map['coronaryHeartDisease'], + map['congestiveHeartFailure'], + map['intermittentClaudication'], + map['stroke']); + } +} + +/// The covid risk result of a scan. +class CovidRisk { + final double covidRisk; + + const CovidRisk(this.covidRisk); + + factory CovidRisk.fromMap(Map map) { + return CovidRisk(map['covidRisk']); + } +} + +/// The health risks result of a scan. +class HealthRisks { + final CardiovascularRisks? cardiovascularRisks; + final CovidRisk? covidRisk; + final String version; + + const HealthRisks(this.cardiovascularRisks, this.covidRisk, this.version); + + factory HealthRisks.fromMap(Map map) { + return HealthRisks( + map['cardiovascularRisks'] != null + ? CardiovascularRisks.fromMap(map['cardiovascularRisks']) + : null, + map['covidRisk'] != null ? CovidRisk.fromMap(map['covidRisk']) : null, + map['version']); + } +} + +/// The holistic analysis result of a scan. +class HolisticAnalysis { + final double? generalWellness; + final double? bmi; + final double? absi; + final double? cardiacWorkload; + final double? pulseRespiratoryQuotient; + final double? waistToHeightRatio; + final String? version; + + const HolisticAnalysis( + this.generalWellness, + this.bmi, + this.absi, + this.cardiacWorkload, + this.pulseRespiratoryQuotient, + this.waistToHeightRatio, + this.version); + + factory HolisticAnalysis.fromMap(Map map) { + return HolisticAnalysis( + map['generalWellness'], + map['bmi'], + map['absi'], + map['cardiacWorkload'], + map['pulseRespiratoryQuotient'], + map['waistToHeightRatio'], + map['version']); + } +} diff --git a/packages/vital_sign_camera/lib/src/vital_sign_camera_platform_interface.dart b/packages/vital_sign_camera/lib/src/vital_sign_camera_platform_interface.dart new file mode 100644 index 00000000..4e9601fb --- /dev/null +++ b/packages/vital_sign_camera/lib/src/vital_sign_camera_platform_interface.dart @@ -0,0 +1,42 @@ +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; +import 'camera_permission.dart'; + +import 'camera_device.dart'; +import 'vital_sign_camera_method_channel.dart'; + +abstract class VitalSignCameraPlatform extends PlatformInterface { + /// Constructs a VitalSignCameraPlatform. + VitalSignCameraPlatform() : super(token: _token); + + static final Object _token = Object(); + + static VitalSignCameraPlatform _instance = MethodChannelVitalSignCamera(); + + /// The default instance of [VitalSignCameraPlatform] to use. + /// + /// Defaults to [MethodChannelVitalSignCamera]. + static VitalSignCameraPlatform get instance => _instance; + + /// Platform-specific implementations should set this with their own + /// platform-specific class that extends [VitalSignCameraPlatform] when + /// they register themselves. + static set instance(VitalSignCameraPlatform instance) { + PlatformInterface.verifyToken(instance, _token); + _instance = instance; + } + + Future> availableCameraDevices() { + throw UnimplementedError( + 'availableCameraDevices() has not been implemented.'); + } + + Future requestCameraPermission() { + throw UnimplementedError( + 'availableCameraDevices() has not been implemented.'); + } + + Future getCameraPermissionStatus() { + throw UnimplementedError( + 'getCameraPermissionStatus() has not been implemented.'); + } +} From e9accb00efb6a45812d7eede73521ee3660318ac Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 20 Jan 2025 10:34:19 +0300 Subject: [PATCH 6/8] updates --- .../whatsapp/WhatsAppCodeActivity.kt | 1 - android/settings.gradle | 2 +- ios/Podfile | 2 +- packages/vital_sign_camera/LICENSE | 1 + .../vital_sign_camera/analysis_options.yaml | 4 + packages/vital_sign_camera/android/gradlew | 0 .../vital_sign_camera/android/gradlew.bat | 178 +++++++++--------- .../VitalSignEngineCore | Bin .../VitalSignObjCFramework | Bin .../VitalSignObjCFramework | Bin 10 files changed, 96 insertions(+), 92 deletions(-) create mode 100644 packages/vital_sign_camera/LICENSE create mode 100644 packages/vital_sign_camera/analysis_options.yaml mode change 100644 => 100755 packages/vital_sign_camera/android/gradlew mode change 100644 => 100755 packages/vital_sign_camera/ios/frameworks/VitalSignEngineCore.xcframework/ios-x86_64-simulator/VitalSignEngineCore.framework/VitalSignEngineCore mode change 100644 => 100755 packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-arm64/VitalSignObjCFramework.framework/VitalSignObjCFramework mode change 100644 => 100755 packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-x86_64-simulator/VitalSignObjCFramework.framework/VitalSignObjCFramework diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt index 5862b30b..8e86ec97 100644 --- a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/whatsapp/WhatsAppCodeActivity.kt @@ -11,7 +11,6 @@ class WhatsAppCodeActivity : FlutterFragmentActivity() { super.onCreate(savedInstanceState) WhatsApp.handleOTP(intent){code -> WhatsAppOtpPlatformBridge.result?.success(code); - println("the code is $code") finish() } } diff --git a/android/settings.gradle b/android/settings.gradle index d7a696e3..4c1c588e 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,6 +1,6 @@ include ':app' include ':vital-sign-engine' -project(':vital-sign-engine').projectDir = new File('C:\\Users\\taha.alam\\AndroidStudioProjects\\diplomatic-quarter\\packages\\vital_sign_camera\\android\\libs') +project(':vital-sign-engine').projectDir = new File('/Users/mohamedmekawy/Documents/Work/DiplomaticQuarter_3.16/packages/vital_sign_camera/android/libs') def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() diff --git a/ios/Podfile b/ios/Podfile index 7721bb87..dec2c9fd 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -28,7 +28,7 @@ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelpe flutter_ios_podfile_setup target 'Runner' do - use_frameworks! + use_frameworks! :linkage => :static use_modular_headers! pod 'OpenTok', '~> 2.22.0' diff --git a/packages/vital_sign_camera/LICENSE b/packages/vital_sign_camera/LICENSE new file mode 100644 index 00000000..ba75c69f --- /dev/null +++ b/packages/vital_sign_camera/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/packages/vital_sign_camera/analysis_options.yaml b/packages/vital_sign_camera/analysis_options.yaml new file mode 100644 index 00000000..a5744c1c --- /dev/null +++ b/packages/vital_sign_camera/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/vital_sign_camera/android/gradlew b/packages/vital_sign_camera/android/gradlew old mode 100644 new mode 100755 diff --git a/packages/vital_sign_camera/android/gradlew.bat b/packages/vital_sign_camera/android/gradlew.bat index 107acd32..ac1b06f9 100644 --- a/packages/vital_sign_camera/android/gradlew.bat +++ b/packages/vital_sign_camera/android/gradlew.bat @@ -1,89 +1,89 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/vital_sign_camera/ios/frameworks/VitalSignEngineCore.xcframework/ios-x86_64-simulator/VitalSignEngineCore.framework/VitalSignEngineCore b/packages/vital_sign_camera/ios/frameworks/VitalSignEngineCore.xcframework/ios-x86_64-simulator/VitalSignEngineCore.framework/VitalSignEngineCore old mode 100644 new mode 100755 diff --git a/packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-arm64/VitalSignObjCFramework.framework/VitalSignObjCFramework b/packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-arm64/VitalSignObjCFramework.framework/VitalSignObjCFramework old mode 100644 new mode 100755 diff --git a/packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-x86_64-simulator/VitalSignObjCFramework.framework/VitalSignObjCFramework b/packages/vital_sign_camera/ios/frameworks/VitalSignObjCFramework.xcframework/ios-x86_64-simulator/VitalSignObjCFramework.framework/VitalSignObjCFramework old mode 100644 new mode 100755 From 884f7d7544310fcb01fa83d65899ff3d8b25a598 Mon Sep 17 00:00:00 2001 From: sultan khan Date: Tue, 21 Jan 2025 10:25:39 +0300 Subject: [PATCH 7/8] HMG identity changed. --- lib/config/localized_values.dart | 60 +- .../all_habib_medical_service_page2.dart | 6 +- lib/pages/appUpdatePage/app_update_page.dart | 2 +- .../fragments/home_page_fragment2.dart | 546 +++++++++--------- lib/pages/landing/home_page.dart | 14 +- lib/pages/login/welcome.dart | 2 +- .../payfort_services/payfort_service.dart | 2 +- lib/splashPage.dart | 24 +- lib/uitl/app_toast.dart | 7 +- lib/vital_signs/vital_sign.dart | 140 ++--- lib/widgets/drawer/app_drawer_widget.dart | 40 +- lib/widgets/habib_logo_widget.dart | 2 +- 12 files changed, 423 insertions(+), 422 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 7bfb0397..1812db22 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -2,23 +2,23 @@ // Used for Native through Platform Method Channel // --------- - -- - - - - - - - - ---------------- const Map platformLocalizedValues = { - "errorConnectingHmgNetwork": {"en": "Sorry you are not connecting to HMG network", "ar": "نعتذر لست متصل في شكبة مستشفى د.سليمان الحبيب"}, - "successConnectingHmgNetwork": {"en": "You connected to HMG network successfully, you can access the app", "ar": "تم التصال بشبكة د.سليمان الحبيب بنجاح, تستطيع الان استخدام تطبيق الحبيب"}, + "errorConnectingHmgNetwork": {"en": "Sorry you are not connecting to network", "ar": "نعتذر لست متصل في شكبة مستشفى د.سليمان الحبيب"}, + "successConnectingHmgNetwork": {"en": "You connected to network successfully, you can access the app", "ar": "تم التصال بشبكة د.سليمان الحبيب بنجاح, تستطيع الان استخدام تطبيق الحبيب"}, "failedConnectingHmgNetwork": { - "en": "Sorry the connection to HMG network had been failed, make sure you are in range of HMG network", + "en": "Sorry the connection to network had been failed, make sure you are in range of network", "ar": "نعتذر لقد فشل الاتصال بشبكة د.سليمان الحبيب, تاكد من وجودك داخل نطاق الشبكة" }, - "alreadyConnectedHmgNetwork": {"en": " You already connected to HMG network to access Alhabib app", "ar": "انت متصل مسبقاً بالشبكة تستطيع استخدام تطبيق الحبيب"}, + "alreadyConnectedHmgNetwork": {"en": " You already connected to network to access Alhabib app", "ar": "انت متصل مسبقاً بالشبكة تستطيع استخدام تطبيق الحبيب"}, "somethingWentWrong": {"en": "Sorry something went wrong please try again later", "ar": "نعتذر لخدمتكم يرجى المحاولة لاحقا"}, "enablingWifi": {"en": "Enabling wifi...", "ar": "Enabling wifi..."}, - "connectedHmgNetworkWithInternet": {"en": "Successfully connected to the HMG network to access internet", "ar": "Successfully connected to the HMG network to access internet"}, + "connectedHmgNetworkWithInternet": {"en": "Successfully connected to the network to access internet", "ar": "Successfully connected to the HMG network to access internet"}, "connectedToHmgNetworkWithNoInternet": { - "en": "Successfully connected to the HMG network but it have no internet access", - "ar": "Successfully connected to the HMG network but it have no internet access" + "en": "Successfully connected to the network but it have no internet access", + "ar": "Successfully connected to the network but it have no internet access" }, "notConnectedToHmgNetworkSecurityIssue": { - "en": "We are not able to connect you to HMG network due to security reasons", - "ar": "We are not able to connect you to HMG network due to security reasons" + "en": "We are not able to connect you to network due to security reasons", + "ar": "We are not able to connect you to network due to security reasons" } }; @@ -123,9 +123,9 @@ const Map localizedValues = { "welcome": {"en": "Welcome", "ar": "مرحبا بكم"}, "welcome-to": {"en": "Welcome to", "ar": "مرحبا بك في"}, "patient-app": {"en": "Patient App", "ar": "تطبيق المراجعين"}, - "welcome_text": {"en": "Dr. Sulaiman Al Habib Mobile Application", "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف"}, - "dr-sulaiman-text": {"en": "Dr. Sulaiman Al Habib", "ar": "د. سليمان الحبيب"}, - 'welcome_text2': {'en': 'Have you previously visited the hospitals or medical centers of Dr. Sulaiman Al Habib?', 'ar': 'هل قمت مسبقا بزيارة مستشفيات او مراكز الدكتور سليمان الحبيب الطبية ؟'}, + "welcome_text": {"en": "Vida Mobile Application", "ar":"تطبيق فيدا للموبايل"}, + "dr-sulaiman-text": {"en": "Vida Mobile Application", "ar": "تطبيق فيدا للموبايل"}, + 'welcome_text2': {'en': 'Have you previously visited the hospitals or medical centers?', 'ar': "هل سبق لك زيارة المستشفيات أو المراكز الطبية؟"}, 'yes': {'en': 'Yes', 'ar': 'نعم'}, 'no': {'en': 'No', 'ar': 'لا'}, "logintyperadio": {"en": " Choose from the below options to login to your medical file.", "ar": " اختر احدى الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي "}, @@ -279,7 +279,7 @@ const Map localizedValues = { "OnlinePaymentService": {"en": "Online Payment Service", 'ar': 'خدمة الدفع الإلكتروني'}, "OffersAndPackages": {"en": "Online transfer request", 'ar': 'طلب التحويل الالكتروني'}, "ComprehensiveMedicalCheckup": {"en": "Comprehensive Medical Check-up", 'ar': 'فحص طبي شامل'}, - "HMGService": {"en": "HMG Service", 'ar': 'الخدمات الإلكترونية'}, + "HMGService": {"en": "Our Service", 'ar': 'الخدمات الإلكترونية'}, "ViewAllHabibMedicalService": {"en": "View All Habib Medical Service", 'ar': 'عرض خدمات الحبيب الطبية'}, "viewAll": {"en": "View All", 'ar': 'عرض الكل'}, "view": {"en": "View", 'ar': 'عرض'}, @@ -298,13 +298,13 @@ const Map localizedValues = { "logs": {"en": "Logs", "ar": "السجلات"}, "textToSpeech": {"en": "How May I Help You?", "ar": "كيف يمكنني مساعدتك؟"}, "locationDialogMessage": { - "en": "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.", + "en": "Allow the app to access your location will assist you in showing the hospitals according to the nearest to you.", "ar": "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك." }, "user-view-requester": {"en": "User Wants to View Your Medical File", "ar": "أشخاص يرغبون في الاطلاع على ملفك الطبي"}, "user-view": {"en": "User Can View Your Medical File", "ar": "أشخاص مصرح لهم الاطلاع على ملفك الطبي"}, "parking": {"en": "Parking", "ar": "مواقف"}, - "alhabiServices": {"en": "HMG Service", "ar": "خدمات الحبيب"}, + "alhabiServices": {"en": "Our Service", "ar": "خدمات الحبيب"}, "parkingTitle": { "en": "Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the car’s location in Google Maps. 3- Read another position by pressing the Clear Position Data button.", @@ -824,7 +824,7 @@ const Map localizedValues = { "Feedback": {"en": "Feedback", "ar": "رأيك يهمنا"}, "LiveChat": {"en": "Live Chat", "ar": "محادثة مباشرة"}, "Service": {"en": "Service", "ar": "خدمة"}, - "HMGServiceLabel": {"en": "HMG Service", 'ar': 'خدمات الحبيب'}, + "HMGServiceLabel": {"en": "Our Service", 'ar': 'خدمات الحبيب'}, "HealthWeatherIndicators": {"en": "Health Weather Indicators", 'ar': ' مؤشرات الطقس الصحية '}, "HealthTipsBasedOnCurrentWeather": {"en": "Health Tips Based On Current Weather", 'ar': ' نصائح صحية بناءاً على الطقس الحالي '}, "MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "}, @@ -889,12 +889,12 @@ const Map localizedValues = { "blood-instruction": {"en": "Enter the required information, in order to register for Blood Donation Service", "ar": "ادخل المعلومات المطلوبة للتسجيل بخدمة التبرع بالدم"}, "view-terms": {"en": "To view the terms and conditions", "ar": "عرض الشروط والأحكام"}, "wantConnectHmgNetwork": { - "en": "Dear customer there is no internet access, do you want to connect with HMG network to use our app, make sure you are in range of HMG network", + "en": "Dear customer there is no internet access, do you want to connect with network to use our app, make sure you are in range of network", "ar": "عزيز العميل لا يوجد اتصال بالإنترنت, هل تريد الاتصال بشبكة مستشفى د. سليمان الحبيب لاستخدام التطبيق. يجب عليك ان تكون في نطاق شبكة المستشفى" }, - "failedToAccessHmgServices": {"en": "Connected with HMG Network,\n\nBut failed to access HMG services", "ar": "Connected with HMG Network,\n\nBut failed to access HMG services"}, + "failedToAccessHmgServices": {"en": "Connected with Network,\n\nBut failed to access services", "ar": "Connected with Network,\n\nBut failed to access services"}, "offerAndPackages": {"en": "Offers and Packages", "ar": "العروض والباقات"}, - "offerAndPackagesDetails": {"en": "This service allows you to view all HMG Offers:", "ar": "This service allows you to view all HMG Offers:"}, + "offerAndPackagesDetails": {"en": "This service allows you to view all Offers:", "ar": "This service allows you to view all Offers:"}, "InvoiceNo": {"en": "Invoice No", "ar": "رقم الفاتورة"}, "InvoiceDate": {"en": "Invoice Date", "ar": "تاريخ الفاتورة"}, "SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"}, @@ -1008,7 +1008,7 @@ const Map localizedValues = { "waterTracker": {"en": "Water Tracker", "ar": "حساب كمية الماء"}, "h2o": {"en": "H2O", "ar": "استهلاك"}, "v-tour": {"en": "Virtual Tour", "ar": "جولة إفتراضية"}, - "hmg-news": {"en": "HMG News", "ar": "أخبار المجموعة"}, + "hmg-news": {"en": " News", "ar": "أخبار المجموعة"}, "blood-d": {"en": "Blood Donation", "ar": "تبرع بالدم"}, "symptomCheckerTitle": {"en": "Symptom Checker", "ar": "مدقق الأعراض"}, "latest-news": {"en": "Latest News", "ar": "أحدث الأخبار"}, @@ -1335,9 +1335,9 @@ const Map localizedValues = { "please_select_gender": {"en": "Please select gender", "ar": "يرجى تحديد الجنس"}, "covid-info": { "en": - "Dr. Sulaiman Al Habib hospitals are conducting a test for the emerging corona virus and issuing travel certificates 24/7 in a short time and with high accuracy. Those wishing to benefit from this service can visit one of Dr. Sulaiman Al Habib branches to conduct a corona test within few minutes, and obtain the result within several hours. Corona Virus Covid 19 testing service with PCR technology to detect the virus according to the highest international standards and with the latest high-precision RT-PCR devices (American GeneXpert and others), That is approved by the Food and Drug Authority as well as by the Saudi Center for Infectious Diseases Prevention.", + "Hospitals are conducting a test for the emerging corona virus and issuing travel certificates 24/7 in a short time and with high accuracy. Those wishing to benefit from this service can visit one of branches to conduct a corona test within few minutes, and obtain the result within several hours. Corona Virus Covid 19 testing service with PCR technology to detect the virus according to the highest international standards and with the latest high-precision RT-PCR devices (American GeneXpert and others), That is approved by the Food and Drug Authority as well as by the Saudi Center for Infectious Diseases Prevention.", "ar": - "تجري مستشفيات د. سليمان الحبيب فحص فيروس كورونا المستجد وتصدر شهادات السفر على مدار الساعة، طوال أيام الأسبوع، وبسرعة ودقة عالية. يمكن للراغبين في الاستفادة من هذه الخدمة زيارة أحد فروع مستشفيات د. سليمان الحبيب وإجراء فحص كورونا خلال بضع دقائق والحصول على النتائج خلال عدة ساعات خدمة فحص فيروس كورونا Covid 19 بتقنية PCR للكشف عن الفيروس وفقاً لأعلى المعايير العالمية وبأحدث أجهزة RT-PCR عالية الدقة (GeneXpert الأمريكي وغيره)، وهي طرق معتمدة من قبل هيئة الغذاء والدواء وكذلك من قبل المركز السعودي للوقاية من الأمراض المُعدية" + "تقوم المستشفيات بإجراء فحص فيروس كورونا المستجد وإصدار شهادات السفر على مدار الساعة وطوال أيام الأسبوع في وقت قصير وبدقة عالية، ويمكن للراغبين في الاستفادة من هذه الخدمة زيارة أحد الفروع لإجراء فحص كورونا خلال دقائق معدودة، والحصول على النتيجة خلال عدة ساعات. خدمة فحص فيروس كورونا كوفيد 19 بتقنية PCR للكشف عن الفيروس وفق أعلى المعايير العالمية وبأحدث أجهزة RT-PCR عالية الدقة (جينيكسبرت الأمريكية وغيرها)، المعتمدة من هيئة الغذاء والدواء وكذلك من المركز السعودي للوقاية من الأمراض المعدية." }, "select-appo": {"en": "Kindly select one of the available appointments from below:", "ar": " يرجى اختيار أحد المواعيد المتاحة مما يلي:"}, "covid-alert-header": {"en": "Pay With-in 15 mins to confirm the appointment", "ar": "الرجاء اتمام عملية الدفع خلال 15 دقيقه لتاكيد الموعد"}, @@ -1425,9 +1425,9 @@ const Map localizedValues = { "type": {"en": "Type", "ar": "اكتب"}, "info-ereferral": { "en": - "This service allows you to submit a Referral request from any health care providers either inside or outside the kingdom of Saudi Arabia to any of HMG Hospitals, by filling some of the patient's data and attaching the medical reports, moreover you can track the request status (Under process, Accepted or Rejected)", + "This service allows you to submit a Referral request from any health care providers either inside or outside the kingdom of Saudi Arabia to any of Hospitals, by filling some of the patient's data and attaching the medical reports, moreover you can track the request status (Under process, Accepted or Rejected)", "ar": - "تتيح لك هذه الخدمة إرسال طلب إحالة من أي من مقدمي الرعاية الصحية سواء داخل المملكة العربية السعودية أو خارجها إلى أي من مستشفيات HMG ، عن طريق ملء بعض بيانات المراجع وإرفاق التقارير الطبية ، علاوة على ذلك يمكنك تتبع حالة الطلب (قيد المعالجة ، مقبول أو مرفوض)" + "تتيح لك هذه الخدمة إرسال طلب إحالة من أي من مقدمي الرعاية الصحية سواء داخل المملكة العربية السعودية أو خارجها إلى أي من مستشفيات ، عن طريق ملء بعض بيانات المراجع وإرفاق التقارير الطبية ، علاوة على ذلك يمكنك تتبع حالة الطلب (قيد المعالجة ، مقبول أو مرفوض)" }, "er-consultation": { "en": "This service allows you to make an online virtual consultation via video call directly with the doctor from anywhere at any time.", @@ -1805,7 +1805,7 @@ const Map localizedValues = { "connectSubtitle": {"en": "With us", "ar": "معنا"}, "covidConsent": { "en": - "Covid-19 Test feature allows you to book an appointment for the Covid-19 Lab test within HMG branches, where a swab sample will be collected & processed. Once the result has been processed, we shall notify you via SMS on your registered mobile number & the test result will also be available in the Lab Results section of this app. Please note that this result is only available to you & not publicly available to anyone else.", + "Covid-19 Test feature allows you to book an appointment for the Covid-19 Lab test within branches, where a swab sample will be collected & processed. Once the result has been processed, we shall notify you via SMS on your registered mobile number & the test result will also be available in the Lab Results section of this app. Please note that this result is only available to you & not publicly available to anyone else.", "ar": "تتيح لك ميزة اختبار كوفيد19 حجز موعد في احد فروع مجموعة الحبيب الطبية ، حيث سيتم اخذ عينة المسحة ومعالجتها. بمجرد معالجة النتيجة ، سنخطرك عبر رسالة نصية قصيرة على رقم هاتفك المحمول المسجل وستكون نتيجة الاختبار متاحة أيضًا على التطبيق في قسم نتائج المختبر. يرجى ملاحظة أن هذه النتيجة متاحة لك فقط وليست متاحة للجمهور او اي شخص آخر. الرجاء الموافقة للتأكيد والمتابعة." }, @@ -1824,7 +1824,7 @@ const Map localizedValues = { }, "locationPermissionDialog": { "en": - "Dr. Al Habib app collects location data to show the nearest HMG hospitals and ER Locations and provides health care services to your location and Health weather indicators service and the medication delivery.", + "Dr. Al Habib app collects location data to show the nearest hospitals and ER Locations and provides health care services to your location and Health weather indicators service and the medication delivery.", "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول الى الموقع لإظهار أقرب مستشفيات المجموعة، مواقع الطوارئ، تقديم خدمات الرعاية الصحية إلى موقعك، خدمة مؤشرات الطقس الصحية وكذلك خدمة توصيل الأدوية." }, "calendarPermission": { @@ -1836,7 +1836,7 @@ const Map localizedValues = { "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول الى الصوت لتفعيل خدمة الأوامر الصوتية." }, "wifiPermission": { - "en": "Dr. Al Habib app needs to access WiFi state permission to connect to the HMG WiFi network from within the app when you visit the hospital.", + "en": "Dr. Al Habib app needs to access WiFi state permission to connect to the WiFi network from within the app when you visit the hospital.", "ar": "يحتاج تطبيق دكتور الحبيب إلى الوصول إلى الواي فاي للاتصال بشبكة الواي فاي في المجموعة عند زيارة المستشفى." }, "physicalActivityPermission": { @@ -1891,11 +1891,11 @@ const Map localizedValues = { "pharmaLiveCare": {"en": "Pharma LiveCare", "ar": "لايف كير الصيدلية"}, "pharmaLiveCare1": {"en": "What is Pharma LiveCare?", "ar": "ما هولايف كير الصيدلية؟"}, "pharmaLiveCareDesc1": { - "en": "Pharma LiveCare allows you to get consultation from your doctor virtually being in HMG Pharmacy booth.", + "en": "Pharma LiveCare allows you to get consultation from your doctor virtually being in Pharmacy booth.", "ar": "تتيح لك خدمة لايف كير الصيدلية الحصول على استشارة من طبيبك المتواجد فعليًا في كشك صيدلية د.سليمان الحبيب." }, "wherePharmaLiveCare": {"en": "Where can i find Pharma LiveCare?", "ar": "أين يمكنني أن أجد لايف كير الصيدلية؟"}, - "pharmaLiveCareDesc2": {"en": "You can find the booth in HMG Pharmacies.", "ar": "يمكنك العثور على الكشك في صيدليات مستشفى د.سليمان الحبيب."}, + "pharmaLiveCareDesc2": {"en": "You can find the booth in Pharmacies.", "ar": "يمكنك العثور على الكشك في صيدليات مستشفى د.سليمان الحبيب."}, "howPharmaLiveCare": {"en": "How can i use Pharma LiveCare?", "ar": "كيف يمكنني استخدام لايف كير الصيدلية؟"}, "pharmaLiveCareDesc3": { "en": "Following the below steps you can easily benefit from the virtual consultation service:", @@ -2049,7 +2049,7 @@ const Map localizedValues = { "communicationConsent": {"en": "COMMUNICATION VIA EMAIL, TEXT MESSAGES AND PHONE CALLS: ", "ar": "الاتصال عبر البريد الإلكتروني والرسائل النصية والمكالمات الهاتفية: "}, "generalConsent3": { "en": - "I understand that the contact number or Email that I have provided on registration will be used for communication by the Hospital. I hereby agree to be notified by the Hospital through SMS, Email, phone calls or any other method, for appointments notifications, special promotions, new features or products, current HMG's medical services, and of any services introduced by the Hospital or any third party in the future or any modifications made to the services offered by the Hospital. And these messages may be submitted as evidence where the Hospital has the right to use at any time whatsoever and as it sees fit. I understand the risks of communicating by email and text messages, in particular the privacy risks. I understand that the Hospital cannot guarantee the security and confidentiality of email or text communication. The Hospital will not be responsible for messages that are not received or delivered due to technical failure, or for disclosure of confidential information unless caused by intentional misconduct.", + "I understand that the contact number or Email that I have provided on registration will be used for communication by the Hospital. I hereby agree to be notified by the Hospital through SMS, Email, phone calls or any other method, for appointments notifications, special promotions, new features or products, current medical services, and of any services introduced by the Hospital or any third party in the future or any modifications made to the services offered by the Hospital. And these messages may be submitted as evidence where the Hospital has the right to use at any time whatsoever and as it sees fit. I understand the risks of communicating by email and text messages, in particular the privacy risks. I understand that the Hospital cannot guarantee the security and confidentiality of email or text communication. The Hospital will not be responsible for messages that are not received or delivered due to technical failure, or for disclosure of confidential information unless caused by intentional misconduct.", "ar": "المستشفى أدرك بأن رقم الجوال الهاتف أو البريد الإلكتروني الذي قدمته في نموذج التسجيل سيستخدم كوسيلة اتصال بيني وبين | وأقر بموافقتي على قيام المستشفى بإخطاري عن طريق رسائل البريد أو الرسائل القصيرة أو البريد الإلكتروني أو المكالمات الهاتفية أو أي طريقة أخرى بالمواعيد والعروض الترويجية أو المميزات والمنتجات الخاصة بالمستشفى أو) خاصة بأي طرف خارجي) وبأي خدمات طبية تقدمها المجموعة أو قد يطرحها المستشفى في المستقبل أو أي تعديلات قد تطرأ على الخدمات المقدمة من قبل المستشفى. وتعتبر هذه الرسائل دليل إثبات يحق للمستشفى استخدامه في اي وقت يشاء. أفهم مخاطر التواصل عبر البريد الإلكتروني والرسائل النصية خاصة مخاطر الخصوصية وأدرك أن المستشفى لا يمكنه ضمان أمن وسرية البريد الإلكتروني أو الرسائل النصية ولن يكون المستشفى مسؤول عن الرسائل التي لم يتم استلامها أو تسليمها بسبب الفشل التقني أو الكشف عن المعلومات السرية ما لم يكن سببها سوء سلوك متعمد." }, diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page2.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page2.dart index 420f08f1..d5eb13fb 100644 --- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page2.dart +++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page2.dart @@ -68,10 +68,10 @@ class _AllHabibMedicalSevicePage2State extends State hmgServices.add(new HmgServices(0, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin)); hmgServices.add(new HmgServices(1, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); - hmgServices.add(new HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); - hmgServices.add(new HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); + // hmgServices.add(new HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); + // hmgServices.add(new HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); hmgServices.add(new HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); - hmgServices.add(new HmgServices(5, TranslationBase.of(context).pharmacyTitle, TranslationBase.of(context).pharmacySubtitle, "assets/images/new/Pharmacy.svg", isLogin)); + // hmgServices.add(new HmgServices(5, TranslationBase.of(context).pharmacyTitle, TranslationBase.of(context).pharmacySubtitle, "assets/images/new/Pharmacy.svg", isLogin)); hmgServices.add(new HmgServices(6, TranslationBase.of(context).medicalFileTitle2, TranslationBase.of(context).medicalFileSubtitle, "assets/images/new/medical file.svg", isLogin)); hmgServices.add(new HmgServices(7, TranslationBase.of(context).familyTitle, TranslationBase.of(context).familySubtitle, "assets/images/new/my family.svg", isLogin)); diff --git a/lib/pages/appUpdatePage/app_update_page.dart b/lib/pages/appUpdatePage/app_update_page.dart index d9ecb3df..5dbb3053 100644 --- a/lib/pages/appUpdatePage/app_update_page.dart +++ b/lib/pages/appUpdatePage/app_update_page.dart @@ -43,7 +43,7 @@ class _AppUpdatePageState extends State { ), Container( margin: EdgeInsets.only(top: 5.0, bottom: 5.0), - child: SvgPicture.asset("assets/images/new-design/HMG_logo.svg", fit: BoxFit.fill), + child: SvgPicture.asset("assets/images/new/cloud_logo.svg", fit: BoxFit.fill), ), Container( margin: EdgeInsets.only(top: 10.0, left: 10.0, right: 10.0), diff --git a/lib/pages/landing/fragments/home_page_fragment2.dart b/lib/pages/landing/fragments/home_page_fragment2.dart index d01554ea..d0edbc95 100644 --- a/lib/pages/landing/fragments/home_page_fragment2.dart +++ b/lib/pages/landing/fragments/home_page_fragment2.dart @@ -61,9 +61,9 @@ class _HomePageFragment2State extends State { isLocked: !projectViewModel.havePrivilege(107))) : hmgServices.add(HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); - hmgServices.add( - HmgServices(9, TranslationBase.of(context).emergency, TranslationBase.of(context).checkinOptions, "assets/images/new/emergency.svg", isLogin, isLocked: !projectViewModel.havePrivilege(108))); - hmgServices.add(HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); + // hmgServices.add( + // HmgServices(9, TranslationBase.of(context).emergency, TranslationBase.of(context).checkinOptions, "assets/images/new/emergency.svg", isLogin, isLocked: !projectViewModel.havePrivilege(108))); + // hmgServices.add(HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); hmgServices.add(HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); hmgServices.add(HmgServices(5, TranslationBase.of(context).online, TranslationBase.of(context).payment, "assets/images/new/paymentMethods.png", isLogin)); hmgServices.add(HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin)); @@ -231,19 +231,19 @@ class _HomePageFragment2State extends State { height: 1, color: Color(0xFFC7C7C7), ), - Container( - width: double.infinity, - height: MediaQuery.of(context).size.width * 0.3, - padding: EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), - color: Colors.white, - child: Row( - children: [ - offersButton(), - mWidth(10), - hmgButton(), - ], - ), - ), + // Container( + // width: double.infinity, + // height: MediaQuery.of(context).size.width * 0.3, + // padding: EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), + // color: Colors.white, + // child: Row( + // children: [ + // // offersButton(), + // mWidth(10), + // // hmgButton(), + // ], + // ), + // ), Divider( height: 1, color: Color(0xFFC7C7C7), @@ -376,263 +376,263 @@ class _HomePageFragment2State extends State { ); } - Widget offersButton() { - final bypassPrivilageCheck = false; - return Expanded( - flex: 1, - child: InkWell( - onTap: () { - // Navigator.of(context).push(MaterialPageRoute(builder: (context) => ErOptions(isAppbar: true))); - Navigator.push(context, FadePage(page: ErOptions(isAppbar: true))); - }, - child: Stack( - children: [ - Container( - width: double.infinity, - height: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), - child: Stack( - children: [ - Container( - width: double.infinity, - height: double.infinity, - // color: Color(0xFF2B353E), - decoration: containerRadius(CustomColors.accentColor, 20), - ), - Container( - width: double.infinity, - height: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: projectViewModel.isArabic - ? containerBottomRightRadiusWithGradientForAr(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor) - : containerBottomRightRadiusWithGradient(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), - child: Stack( - children: [ - SvgPicture.asset( - "assets/images/new/strips.svg", - width: double.infinity, - height: double.infinity, - fit: BoxFit.cover, - ), - ], - ), - ), - projectViewModel.isArabic - ? Positioned( - left: 20, - top: 12, - child: Opacity( - opacity: 0.5, - child: SvgPicture.asset( - "assets/images/new/emergency_services_back.svg", - height: MediaQuery.of(context).size.width * 0.14, - ), - ), - ) - : Positioned( - right: 20, - top: 12, - child: Opacity( - opacity: 0.5, - child: SvgPicture.asset( - "assets/images/new/emergency_services_back.svg", - height: MediaQuery.of(context).size.width * 0.14, - ), - ), - ), - Container( - width: double.infinity, - height: double.infinity, - padding: EdgeInsets.all(SizeConfig.widthMultiplier! * 3.4), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - child: SvgPicture.asset( - "assets/images/new/emergency_services.svg", - height: MediaQuery.of(context).size.width * 0.08, - ), - ), - mFlex(1), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - TranslationBase.of(context).emergencyServices, - style: TextStyle( - color: Colors.black, - fontSize: 14, - fontWeight: FontWeight.bold, - letterSpacing: -0.45, - height: 1, - ), - ), - projectViewModel.isArabic ? mHeight(5) : Container(), - Text( - TranslationBase.of(context).emergencyServicesSubtitle, - style: TextStyle( - color: Colors.black, - fontSize: 9, - fontWeight: FontWeight.w600, - letterSpacing: -0.27, - height: projectViewModel.isArabic ? 0.2 : 1, - ), - ), - ], - ), - ], - ), - ), - ], - ), - ), - // projectViewModel.havePrivilege(82) || bypassPrivilageCheck - // ? Container() - // : Container( - // width: double.infinity, - // height: double.infinity, - // clipBehavior: Clip.antiAlias, - // decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor.withOpacity(0.7), darkColor: CustomColors.lightGreyColor.withOpacity(0.7)), - // child: Icon( - // Icons.lock_outline, - // size: 40, - // ), - // ) - ], - ), - ), - ); - } - - Widget hmgButton() { - return Expanded( - flex: 1, - child: InkWell( - onTap: () { - if (projectViewModel.havePrivilege(100)) widget.onPharmacyClick!(); - }, - child: Stack(children: [ - Container( - width: double.infinity, - height: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), - child: Stack( - children: [ - Container( - width: double.infinity, - height: double.infinity, - // color: Color(0xFF2B353E), - decoration: containerRadius(Color(0xFF359846), 20), - ), - Container( - width: double.infinity, - height: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: projectViewModel.isArabic - ? containerBottomRightRadiusWithGradientForAr(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor) - : containerBottomRightRadiusWithGradient(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), - child: Stack( - children: [ - SvgPicture.asset( - "assets/images/new/strips.svg", - width: double.infinity, - height: double.infinity, - fit: BoxFit.cover, - ), - ], - ), - ), - projectViewModel.isArabic - ? Positioned( - left: 20, - top: 12, - child: Opacity( - opacity: 0.25, - child: SvgPicture.asset( - "assets/images/new/Pharmacy.svg", - height: MediaQuery.of(context).size.width * 0.15, - ), - ), - ) - : Positioned( - right: 20, - top: 12, - child: Opacity( - opacity: 0.25, - child: SvgPicture.asset( - "assets/images/new/Pharmacy.svg", - height: MediaQuery.of(context).size.width * 0.15, - ), - ), - ), - Container( - width: double.infinity, - height: double.infinity, - padding: EdgeInsets.all(SizeConfig.widthMultiplier! * 3.4), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - child: SvgPicture.asset( - "assets/images/new/Pharmacy.svg", - height: MediaQuery.of(context).size.width * 0.08, - ), - ), - mFlex(1), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - TranslationBase.of(context).onlinePharmacy, - style: TextStyle( - color: Colors.black, - fontSize: 14, - fontWeight: FontWeight.bold, - letterSpacing: -0.45, - height: 1, - ), - ), - projectViewModel.isArabic ? mHeight(5) : Container(), - Text( - TranslationBase.of(context).ecommerceSolution, - style: TextStyle( - color: Colors.black, - fontSize: 9, - fontWeight: FontWeight.w600, - letterSpacing: -0.27, - height: projectViewModel.isArabic ? 0.2 : 1, - ), - ), - ], - ), - ], - ), - ), - ], - ), - ), - projectViewModel.havePrivilege(100) - ? Container() - : Container( - width: double.infinity, - height: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor.withOpacity(0.7), darkColor: CustomColors.lightGreyColor.withOpacity(0.7)), - child: Icon( - Icons.lock_outline, - size: 40, - ), - ) - ]), - ), - ); - } + // Widget offersButton() { + // final bypassPrivilageCheck = false; + // return Expanded( + // flex: 1, + // child: InkWell( + // onTap: () { + // // Navigator.of(context).push(MaterialPageRoute(builder: (context) => ErOptions(isAppbar: true))); + // Navigator.push(context, FadePage(page: ErOptions(isAppbar: true))); + // }, + // child: Stack( + // children: [ + // Container( + // width: double.infinity, + // height: double.infinity, + // clipBehavior: Clip.antiAlias, + // decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), + // child: Stack( + // children: [ + // Container( + // width: double.infinity, + // height: double.infinity, + // // color: Color(0xFF2B353E), + // decoration: containerRadius(CustomColors.accentColor, 20), + // ), + // Container( + // width: double.infinity, + // height: double.infinity, + // clipBehavior: Clip.antiAlias, + // decoration: projectViewModel.isArabic + // ? containerBottomRightRadiusWithGradientForAr(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor) + // : containerBottomRightRadiusWithGradient(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), + // child: Stack( + // children: [ + // SvgPicture.asset( + // "assets/images/new/strips.svg", + // width: double.infinity, + // height: double.infinity, + // fit: BoxFit.cover, + // ), + // ], + // ), + // ), + // projectViewModel.isArabic + // ? Positioned( + // left: 20, + // top: 12, + // child: Opacity( + // opacity: 0.5, + // child: SvgPicture.asset( + // "assets/images/new/emergency_services_back.svg", + // height: MediaQuery.of(context).size.width * 0.14, + // ), + // ), + // ) + // : Positioned( + // right: 20, + // top: 12, + // child: Opacity( + // opacity: 0.5, + // child: SvgPicture.asset( + // "assets/images/new/emergency_services_back.svg", + // height: MediaQuery.of(context).size.width * 0.14, + // ), + // ), + // ), + // Container( + // width: double.infinity, + // height: double.infinity, + // padding: EdgeInsets.all(SizeConfig.widthMultiplier! * 3.4), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Container( + // child: SvgPicture.asset( + // "assets/images/new/emergency_services.svg", + // height: MediaQuery.of(context).size.width * 0.08, + // ), + // ), + // mFlex(1), + // Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Text( + // TranslationBase.of(context).emergencyServices, + // style: TextStyle( + // color: Colors.black, + // fontSize: 14, + // fontWeight: FontWeight.bold, + // letterSpacing: -0.45, + // height: 1, + // ), + // ), + // projectViewModel.isArabic ? mHeight(5) : Container(), + // Text( + // TranslationBase.of(context).emergencyServicesSubtitle, + // style: TextStyle( + // color: Colors.black, + // fontSize: 9, + // fontWeight: FontWeight.w600, + // letterSpacing: -0.27, + // height: projectViewModel.isArabic ? 0.2 : 1, + // ), + // ), + // ], + // ), + // ], + // ), + // ), + // ], + // ), + // ), + // // projectViewModel.havePrivilege(82) || bypassPrivilageCheck + // // ? Container() + // // : Container( + // // width: double.infinity, + // // height: double.infinity, + // // clipBehavior: Clip.antiAlias, + // // decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor.withOpacity(0.7), darkColor: CustomColors.lightGreyColor.withOpacity(0.7)), + // // child: Icon( + // // Icons.lock_outline, + // // size: 40, + // // ), + // // ) + // ], + // ), + // ), + // ); + // } + // + // Widget hmgButton() { + // return Expanded( + // flex: 1, + // child: InkWell( + // onTap: () { + // if (projectViewModel.havePrivilege(100)) widget.onPharmacyClick!(); + // }, + // child: Stack(children: [ + // Container( + // width: double.infinity, + // height: double.infinity, + // clipBehavior: Clip.antiAlias, + // decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), + // child: Stack( + // children: [ + // Container( + // width: double.infinity, + // height: double.infinity, + // // color: Color(0xFF2B353E), + // decoration: containerRadius(Color(0xFF359846), 20), + // ), + // Container( + // width: double.infinity, + // height: double.infinity, + // clipBehavior: Clip.antiAlias, + // decoration: projectViewModel.isArabic + // ? containerBottomRightRadiusWithGradientForAr(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor) + // : containerBottomRightRadiusWithGradient(60, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.lightGreyColor), + // child: Stack( + // children: [ + // SvgPicture.asset( + // "assets/images/new/strips.svg", + // width: double.infinity, + // height: double.infinity, + // fit: BoxFit.cover, + // ), + // ], + // ), + // ), + // projectViewModel.isArabic + // ? Positioned( + // left: 20, + // top: 12, + // child: Opacity( + // opacity: 0.25, + // child: SvgPicture.asset( + // "assets/images/new/Pharmacy.svg", + // height: MediaQuery.of(context).size.width * 0.15, + // ), + // ), + // ) + // : Positioned( + // right: 20, + // top: 12, + // child: Opacity( + // opacity: 0.25, + // child: SvgPicture.asset( + // "assets/images/new/Pharmacy.svg", + // height: MediaQuery.of(context).size.width * 0.15, + // ), + // ), + // ), + // Container( + // width: double.infinity, + // height: double.infinity, + // padding: EdgeInsets.all(SizeConfig.widthMultiplier! * 3.4), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Container( + // child: SvgPicture.asset( + // "assets/images/new/Pharmacy.svg", + // height: MediaQuery.of(context).size.width * 0.08, + // ), + // ), + // mFlex(1), + // Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Text( + // TranslationBase.of(context).onlinePharmacy, + // style: TextStyle( + // color: Colors.black, + // fontSize: 14, + // fontWeight: FontWeight.bold, + // letterSpacing: -0.45, + // height: 1, + // ), + // ), + // projectViewModel.isArabic ? mHeight(5) : Container(), + // Text( + // TranslationBase.of(context).ecommerceSolution, + // style: TextStyle( + // color: Colors.black, + // fontSize: 9, + // fontWeight: FontWeight.w600, + // letterSpacing: -0.27, + // height: projectViewModel.isArabic ? 0.2 : 1, + // ), + // ), + // ], + // ), + // ], + // ), + // ), + // ], + // ), + // ), + // projectViewModel.havePrivilege(100) + // ? Container() + // : Container( + // width: double.infinity, + // height: double.infinity, + // clipBehavior: Clip.antiAlias, + // decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor.withOpacity(0.7), darkColor: CustomColors.lightGreyColor.withOpacity(0.7)), + // child: Icon( + // Icons.lock_outline, + // size: 40, + // ), + // ) + // ]), + // ), + // ); + // } Widget getInpatientButton() { return Container( diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index cf31f6f4..12aecc23 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -526,13 +526,13 @@ class _HomePageState extends State { SizedBox( height: 20, ), - Texts( - TranslationBase.of(context).onlinePharmacy, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: SizeConfig.textMultiplier! * 1.55, - ) + // Texts( + // TranslationBase.of(context).onlinePharmacy, + // textAlign: TextAlign.center, + // color: Colors.white, + // fontWeight: FontWeight.w700, + // fontSize: SizeConfig.textMultiplier! * 1.55, + // ) ], ), ), diff --git a/lib/pages/login/welcome.dart b/lib/pages/login/welcome.dart index 8b9e282f..e122af63 100644 --- a/lib/pages/login/welcome.dart +++ b/lib/pages/login/welcome.dart @@ -45,7 +45,7 @@ class _WelcomeLogin extends State { Row( children: [ SvgPicture.asset( - "assets/images/new/hmg_icon.svg", + "assets/images/new/cloud_logo.svg", height: 62, width: 62, ), diff --git a/lib/services/payfort_services/payfort_service.dart b/lib/services/payfort_services/payfort_service.dart index 5dedd006..79d2c364 100644 --- a/lib/services/payfort_services/payfort_service.dart +++ b/lib/services/payfort_services/payfort_service.dart @@ -172,7 +172,7 @@ class PayfortService extends BaseService { customerName: customerName!, customerEmail: customerEmail!, // orderDescription: orderDescription!, - orderDescription: "Dr. Sulaiman Al Habib Hospital", + orderDescription: "Vida Mobile App", sdkToken: sdkTokenResponse?.sdkToken ?? '', merchantReference: merchantReference!, currency: currency, diff --git a/lib/splashPage.dart b/lib/splashPage.dart index c0ff2eb2..c5637e24 100644 --- a/lib/splashPage.dart +++ b/lib/splashPage.dart @@ -99,10 +99,10 @@ class _SplashScreenState extends State { children: [ Padding( padding: EdgeInsets.symmetric(horizontal: 53), - child: Image.asset( - 'assets/images/new/hmg_logo.png', + child: SvgPicture.asset( + 'assets/images/new/cloud_logo.svg', fit: BoxFit.fitWidth, - width: MediaQuery.of(context).size.width, + width:120, ), ), Align( @@ -110,18 +110,18 @@ class _SplashScreenState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Text( - TranslationBase.of(context).poweredBy, - style: TextStyle(fontSize: 14, fontWeight: FontWeight.w400, color: Color(0xff333C45), letterSpacing: -0.56, height: 16 / 14), - ), + // Text( + // TranslationBase.of(context).poweredBy, + // style: TextStyle(fontSize: 14, fontWeight: FontWeight.w400, color: Color(0xff333C45), letterSpacing: -0.56, height: 16 / 14), + // ), SizedBox( height: 5, ), - SvgPicture.asset( - 'assets/images/new/cloud_logo.svg', - width: 40, - height: 40, - ), + // SvgPicture.asset( + // 'assets/images/new/cloud_logo.svg', + // width: 40, + // height: 40, + // ), SizedBox( height: 7, ), diff --git a/lib/uitl/app_toast.dart b/lib/uitl/app_toast.dart index bbeebe5d..e7e716f2 100644 --- a/lib/uitl/app_toast.dart +++ b/lib/uitl/app_toast.dart @@ -70,9 +70,10 @@ class AppToast { child: toast, gravity: ToastGravity.TOP, toastDuration: Duration(seconds: timeInSeconds), - positionedToastBuilder: (context, child) { - return Positioned(top: 50, left: 10, right: 10, child: child); - }); + // positionedToastBuilder: (context, child) { + // return Positioned(top: 50, left: 10, right: 10, child: child); + // } + ); // Fluttertoast.showToast(msg: message, toastLength: toastLength, gravity: toastGravity, timeInSecForIosWeb: timeInSeconds, backgroundColor: Colors.red, textColor: textColor, fontSize: fontSize); } diff --git a/lib/vital_signs/vital_sign.dart b/lib/vital_signs/vital_sign.dart index a108889b..1f57a250 100644 --- a/lib/vital_signs/vital_sign.dart +++ b/lib/vital_signs/vital_sign.dart @@ -1,70 +1,70 @@ -import 'package:flutter/material.dart'; -import 'package:vital_sign_camera/vital_sign_camera.dart'; - -class VitalSigns extends StatefulWidget { - const VitalSigns({super.key}); - - @override - State createState() => _VitalSignState(); -} - -class _VitalSignState extends State { - late final VitalSignCameraController _vitalSignCameraController; - late Future cameraDevice; - - @override - void initState() { - super.initState(); - cameraDevice = getFrontCamera(); - } - - double? _heartRate; - - Future getFrontCamera() async { - if (CameraPermissionStatus.authorized != await requestCameraPermission()) { - return null; - } - return queryCameraDevice(CameraPosition.front); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Stack(children: [ - VitalSignCamera( - onCreated: _onVitalSignCameraCreated, - isActive: true, - userInfo: UserInfo( - age: 30, gender: Gender.male, userId: '__YOUR_USER_ID__'), - config: VitalSignCameraConfig(apiKey: '__YOUR_API_KEY__'), - device: cameraDevice, - onVideoFrameProcessed: _onVideoFrameProcessed), - Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ElevatedButton( - onPressed: () { - setState(() { - _vitalSignCameraController.startScanning(); - }); - }, - child: const Text('start')), - Text('Heart rate: $_heartRate'), - ], - ), - ), - ]), - ); - } - - void _onVideoFrameProcessed(VideoFrameProcessedEvent event) { - // setState(() { - // _heartRate = event.healthResult?.health?.vitalSigns.heartRate; - // }); - } - - void _onVitalSignCameraCreated(VitalSignCameraController controller) { - _vitalSignCameraController = controller; - } -} \ No newline at end of file +// import 'package:flutter/material.dart'; +// // import 'package:vital_sign_camera/vital_sign_camera.dart'; +// +// class VitalSigns extends StatefulWidget { +// const VitalSigns({super.key}); +// +// @override +// State createState() => _VitalSignState(); +// } +// +// class _VitalSignState extends State { +// // late final VitalSignCameraController _vitalSignCameraController; +// // late Future cameraDevice; +// +// @override +// void initState() { +// super.initState(); +// // cameraDevice = getFrontCamera(); +// } +// +// double? _heartRate; +// +// // Future getFrontCamera() async { +// // if (CameraPermissionStatus.authorized != await requestCameraPermission()) { +// // return null; +// // } +// // return queryCameraDevice(CameraPosition.front); +// // } +// +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// body: Stack(children: [ +// VitalSignCamera( +// onCreated: _onVitalSignCameraCreated, +// isActive: true, +// userInfo: UserInfo( +// age: 30, gender: Gender.male, userId: '__YOUR_USER_ID__'), +// config: VitalSignCameraConfig(apiKey: '__YOUR_API_KEY__'), +// device: cameraDevice, +// onVideoFrameProcessed: _onVideoFrameProcessed), +// Center( +// child: Column( +// mainAxisAlignment: MainAxisAlignment.center, +// children: [ +// ElevatedButton( +// onPressed: () { +// setState(() { +// _vitalSignCameraController.startScanning(); +// }); +// }, +// child: const Text('start')), +// Text('Heart rate: $_heartRate'), +// ], +// ), +// ), +// ]), +// ); +// } +// +// void _onVideoFrameProcessed(VideoFrameProcessedEvent event) { +// // setState(() { +// // _heartRate = event.healthResult?.health?.vitalSigns.heartRate; +// // }); +// } +// +// void _onVitalSignCameraCreated(VitalSignCameraController controller) { +// _vitalSignCameraController = controller; +// } +// } \ No newline at end of file diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index f82047a5..094fe4e9 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -120,7 +120,7 @@ class _AppDrawerState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SvgPicture.asset( - "assets/images/new/logo.svg", + "assets/images/new/cloud_logo.svg", height: 60, width: 60, ), @@ -508,27 +508,27 @@ class _AppDrawerState extends State { crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - Text( - TranslationBase.of(context).poweredBy, - style: TextStyle( - color: Color(0xFF989898), - fontSize: 13, - letterSpacing: -0.54, - fontWeight: FontWeight.w600, - ), - ), + // Text( + // TranslationBase.of(context).poweredBy, + // style: TextStyle( + // color: Color(0xFF989898), + // fontSize: 13, + // letterSpacing: -0.54, + // fontWeight: FontWeight.w600, + // ), + // ), mWidth(2), - Text( - "Cloud Solutions", - style: TextStyle( - color: Color(0xff2E303A), - fontSize: 13, - letterSpacing: -0.54, - fontWeight: FontWeight.w600, - ), - ), + // Text( + // "Cloud Solutions", + // style: TextStyle( + // color: Color(0xff2E303A), + // fontSize: 13, + // letterSpacing: -0.54, + // fontWeight: FontWeight.w600, + // ), + // ), mWidth(16), - SvgPicture.asset("assets/images/new/cloud_logo.svg"), + // SvgPicture.asset("assets/images/new/cloud_logo.svg"), ], ), ), diff --git a/lib/widgets/habib_logo_widget.dart b/lib/widgets/habib_logo_widget.dart index 84aaa076..f79a56eb 100644 --- a/lib/widgets/habib_logo_widget.dart +++ b/lib/widgets/habib_logo_widget.dart @@ -9,7 +9,7 @@ class HabibLogoWidget extends StatelessWidget { return Row( children: [ SvgPicture.asset( - "assets/images/new/hmg_icon.svg", + "assets/images/new/cloud_logo.svg", height: 62, width: 62, ), From b287b557dc7b2400aa528e41f34a609bf2a01c65 Mon Sep 17 00:00:00 2001 From: sultan khan Date: Tue, 21 Jan 2025 18:03:24 +0300 Subject: [PATCH 8/8] app icon change --- .../res/mipmap-hdpi/ic_launcher_local.png | Bin 2350 -> 7495 bytes .../res/mipmap-mdpi/ic_launcher_local.png | Bin 1742 -> 3992 bytes .../res/mipmap-xhdpi/ic_launcher_local.png | Bin 3028 -> 11799 bytes .../res/mipmap-xxhdpi/ic_launcher_local.png | Bin 4339 -> 22749 bytes .../res/mipmap-xxxhdpi/ic_launcher_local.png | Bin 5703 -> 36738 bytes assets/images/new/facial-recognition.svg | 16 ++++++++++++++++ assets/images/new/vida_logo.png | Bin 0 -> 16048 bytes lib/config/config.dart | 4 ++-- lib/config/localized_values.dart | 1 + lib/pages/appUpdatePage/app_update_page.dart | 2 +- .../fragments/home_page_fragment2.dart | 1 + lib/pages/login/confirm-login.dart | 2 +- lib/pages/login/welcome.dart | 4 ++-- lib/splashPage.dart | 4 ++-- lib/uitl/translations_delegate_base.dart | 1 + lib/widgets/drawer/app_drawer_widget.dart | 8 ++++---- lib/widgets/habib_logo_widget.dart | 4 ++-- 17 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 assets/images/new/facial-recognition.svg create mode 100644 assets/images/new/vida_logo.png diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_local.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_local.png index 348b511670c0e98f244aa2c8337fa3cf0b0ce167..3effaa49ffa77b3253aa05d7bae301ebf46e6e5b 100644 GIT binary patch literal 7495 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 Ru#o@&002ovPDHLkV1mAtdKmx! delta 2339 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 JPDHLkV1oN#M+^V} diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_local.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_local.png index 410b1b1e59ec6f502163a727e67ceea9a9b48d5a..a14702e4950dea8d4d1faa2f42b59032a72943c0 100644 GIT binary patch literal 3992 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 FV1g|ixo`jg delta 3022 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 literal 4339 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 KG-}lBqyGn)&?Wo; diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_local.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_local.png index aaa9808d6995beb1a391a35dd8ba72fc5a922ef9..d15b9a41c2849494e5fcfa5647b208a2fc5964b0 100644 GIT binary patch literal 36738 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 literal 5703 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 UZ+=VB!XXY&SJqOhQm_vFKNIGqH~;_u diff --git a/assets/images/new/facial-recognition.svg b/assets/images/new/facial-recognition.svg new file mode 100644 index 00000000..ff2069ab --- /dev/null +++ b/assets/images/new/facial-recognition.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/new/vida_logo.png b/assets/images/new/vida_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac19787d98ba8d6ee628b27df578b0be271c6c6 GIT binary patch literal 16048 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 Ngovzgji7$O{{eF7-&_Cy literal 0 HcmV?d00001 diff --git a/lib/config/config.dart b/lib/config/config.dart index 15ce7aff..2f151578 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -21,8 +21,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:2018/'; - var BASE_URL = 'https://uat.hmgwebservices.com/'; -// var BASE_URL = 'https://hmgwebservices.com/'; + // var BASE_URL = 'https://uat.hmgwebservices.com/'; +var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'https://orash.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidamergeuat.cloudsolutions.com.sa/'; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 1812db22..c6f191b0 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -2140,4 +2140,5 @@ const Map localizedValues = { "download": {"en": "Download", "ar": "تحميل"}, "share": {"en": "Share", "ar": "يشارك"}, + "byFace":{"en": "By Face", "ar": "حسب الوجه"} }; diff --git a/lib/pages/appUpdatePage/app_update_page.dart b/lib/pages/appUpdatePage/app_update_page.dart index 5dbb3053..538eeb2b 100644 --- a/lib/pages/appUpdatePage/app_update_page.dart +++ b/lib/pages/appUpdatePage/app_update_page.dart @@ -43,7 +43,7 @@ class _AppUpdatePageState extends State { ), Container( margin: EdgeInsets.only(top: 5.0, bottom: 5.0), - child: SvgPicture.asset("assets/images/new/cloud_logo.svg", fit: BoxFit.fill), + child: Image.asset("assets/images/new/vida_logo.png", fit: BoxFit.fill), ), Container( margin: EdgeInsets.only(top: 10.0, left: 10.0, right: 10.0), diff --git a/lib/pages/landing/fragments/home_page_fragment2.dart b/lib/pages/landing/fragments/home_page_fragment2.dart index d0edbc95..aed34535 100644 --- a/lib/pages/landing/fragments/home_page_fragment2.dart +++ b/lib/pages/landing/fragments/home_page_fragment2.dart @@ -55,6 +55,7 @@ class _HomePageFragment2State extends State { hmgServices.add(HmgServices(0, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin)); hmgServices.add(HmgServices(1, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); + hmgServices.add(HmgServices(1, TranslationBase.of(context).vitalSign, TranslationBase.of(context).byFace, "assets/images/new/facial-recognition.svg", isLogin)); projectViewModel.isIndoorNavigationEnabled ? hmgServices.add(HmgServices(2, TranslationBase.of(context).hospitalNavigationTitle, TranslationBase.of(context).hospitalNavigationSubtitle, "assets/images/new/indoor_nav_home.svg", isLogin, diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 1c17088b..28bbf41f 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -242,7 +242,7 @@ class _ConfirmLogin extends State { else Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.asset( - 'assets/images/habib-logo.png', + 'assets/images/new/vida_logo.png', height: 90, width: 90, ), diff --git a/lib/pages/login/welcome.dart b/lib/pages/login/welcome.dart index e122af63..d56eb4d9 100644 --- a/lib/pages/login/welcome.dart +++ b/lib/pages/login/welcome.dart @@ -44,8 +44,8 @@ class _WelcomeLogin extends State { SizedBox(height: 12), Row( children: [ - SvgPicture.asset( - "assets/images/new/cloud_logo.svg", + Image.asset( + "assets/images/new/vida_logo.png", height: 62, width: 62, ), diff --git a/lib/splashPage.dart b/lib/splashPage.dart index c5637e24..9e66f793 100644 --- a/lib/splashPage.dart +++ b/lib/splashPage.dart @@ -99,8 +99,8 @@ class _SplashScreenState extends State { children: [ Padding( padding: EdgeInsets.symmetric(horizontal: 53), - child: SvgPicture.asset( - 'assets/images/new/cloud_logo.svg', + child: Image.asset( + 'assets/images/new/vida_logo.png', fit: BoxFit.fitWidth, width:120, ), diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 3ce068fb..64447bdc 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -3045,6 +3045,7 @@ class TranslationBase { String get download => localizedValues["download"][locale.languageCode]; String get share => localizedValues["share"][locale.languageCode]; + String get byFace => localizedValues["byFace"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 094fe4e9..59515e75 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -119,10 +119,10 @@ class _AppDrawerState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - SvgPicture.asset( - "assets/images/new/cloud_logo.svg", - height: 60, - width: 60, + Image.asset( + "assets/images/new/vida_logo.png", + height: 65, + width: 100, ), IconButton( icon: Icon(Icons.clear), diff --git a/lib/widgets/habib_logo_widget.dart b/lib/widgets/habib_logo_widget.dart index f79a56eb..0958901e 100644 --- a/lib/widgets/habib_logo_widget.dart +++ b/lib/widgets/habib_logo_widget.dart @@ -8,8 +8,8 @@ class HabibLogoWidget extends StatelessWidget { Widget build(BuildContext context) { return Row( children: [ - SvgPicture.asset( - "assets/images/new/cloud_logo.svg", + Image.asset( + "assets/images/new/vida_logo.png", height: 62, width: 62, ),