From 62bc29d450246c28e210ae07b08b77f6dc98c96f Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 19 Jan 2025 16:21:44 +0300 Subject: [PATCH] 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.'); + } +}