From da7884ff613dafff7077b5fdcc38438a60f8b883 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Sun, 12 Jun 2022 11:45:00 +0300 Subject: [PATCH 1/7] no message --- ios/Podfile.lock | 22 ++++++++++++++++++++ lib/analytics/flows/login_registration.dart | 23 +++++++++++++++++++++ lib/pages/login/confirm-login.dart | 1 + 3 files changed, 46 insertions(+) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2d3d257b..473ce746 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -111,6 +111,8 @@ PODS: - GoogleUtilities/UserDefaults (~> 7.6) - nanopb (~> 2.30908.0) - Flutter (1.0.0) + - flutter_app_icon_badge (0.0.1): + - Flutter - flutter_hms_gms_availability (0.0.1): - Flutter - flutter_inappwebview (0.0.1): @@ -120,6 +122,8 @@ PODS: - flutter_inappwebview/Core (0.0.1): - Flutter - OrderedSet (~> 5.0) + - flutter_ios_voip_kit (0.0.1): + - Flutter - flutter_local_notifications (0.0.1): - Flutter - flutter_native_timezone (0.0.1): @@ -229,6 +233,10 @@ PODS: - Flutter - pay_ios (0.0.1): - Flutter + - payfort_plugin (0.3.0): + - Flutter + - PayFortSDK + - PayFortSDK (3.1.0) - "permission_handler (5.1.0+2)": - Flutter - PromisesObjC (2.0.0) @@ -279,8 +287,10 @@ DEPENDENCIES: - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) + - flutter_app_icon_badge (from `.symlinks/plugins/flutter_app_icon_badge/ios`) - flutter_hms_gms_availability (from `.symlinks/plugins/flutter_hms_gms_availability/ios`) - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) + - flutter_ios_voip_kit (from `.symlinks/plugins/flutter_ios_voip_kit/ios`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_native_timezone (from `.symlinks/plugins/flutter_native_timezone/ios`) - flutter_nfc_kit (from `.symlinks/plugins/flutter_nfc_kit/ios`) @@ -304,6 +314,7 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - pay_ios (from `.symlinks/plugins/pay_ios/ios`) + - payfort_plugin (from `.symlinks/plugins/payfort_plugin/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - searchable_dropdown (from `.symlinks/plugins/searchable_dropdown/ios`) @@ -337,6 +348,7 @@ SPEC REPOS: - nanopb - OpenTok - OrderedSet + - PayFortSDK - PromisesObjC - Reachability - SDWebImage @@ -370,10 +382,14 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_messaging/ios" Flutter: :path: Flutter + flutter_app_icon_badge: + :path: ".symlinks/plugins/flutter_app_icon_badge/ios" flutter_hms_gms_availability: :path: ".symlinks/plugins/flutter_hms_gms_availability/ios" flutter_inappwebview: :path: ".symlinks/plugins/flutter_inappwebview/ios" + flutter_ios_voip_kit: + :path: ".symlinks/plugins/flutter_ios_voip_kit/ios" flutter_local_notifications: :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_native_timezone: @@ -418,6 +434,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_ios/ios" pay_ios: :path: ".symlinks/plugins/pay_ios/ios" + payfort_plugin: + :path: ".symlinks/plugins/payfort_plugin/ios" permission_handler: :path: ".symlinks/plugins/permission_handler/ios" screen_brightness_ios: @@ -463,8 +481,10 @@ SPEC CHECKSUMS: FirebaseInstallations: 830327b45345ffc859eaa9c17bcd5ae893fd5425 FirebaseMessaging: 82c4a48638f53f7b184f3cc9f6cd2cbe533ab316 Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a + flutter_app_icon_badge: 844847adbd7a1c6f325d6b41b942428981b839cc flutter_hms_gms_availability: babc50b18670e99780270bc18d9b17d0a07cd77e flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721 + flutter_ios_voip_kit: a3b4c5bd0cfda5069b5605a6d1dc60ecf99c6299 flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_native_timezone: 5f05b2de06c9776b4cc70e1839f03de178394d22 flutter_nfc_kit: 965c98c3fa68f5609f1cc89abb968fe1b8ffdbaa @@ -497,6 +517,8 @@ SPEC CHECKSUMS: package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5 pay_ios: 8c7beb9c61d885f3f51b61f75f8793023fc8843a + payfort_plugin: 6216a51564e4987204cd36947a6adccf49db3536 + PayFortSDK: a33a8488859d7666b3709f347ebb990697e1d110 permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 diff --git a/lib/analytics/flows/login_registration.dart b/lib/analytics/flows/login_registration.dart index 3a2894a4..8187d2d8 100644 --- a/lib/analytics/flows/login_registration.dart +++ b/lib/analytics/flows/login_registration.dart @@ -83,6 +83,29 @@ class LoginRegistration{ }); } + // R011:login_verify_otp | R009:registration_verification_option + login_verfication({@required String login_method, @required int verify_method, bool forRegistration = false}){ + var verification_method = ''; + if(verify_method == 1) verification_method = 'sms'; + if(verify_method == 2) verification_method = 'fingerprint'; + if(verify_method == 3) verification_method = 'face id'; + if(verify_method == 4) verification_method = 'whatsapp'; + + // login_method + // verification_method + + if(forRegistration == false) + logger("login_verfication", parameters: { + 'login_method' : login_method, + 'verification_method' : verification_method, + }); + else + logger("login_varification_register", parameters: { + 'login_method' : login_method, + 'verification_method' : verification_method, + }); + } + // R011.2 forget_file_number(){ logger('forget_file_number'); diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index bde675ad..92ae4311 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -310,6 +310,7 @@ class _ConfirmLogin extends State { login_method = type; switch (type) { case 1: + projectViewModel.analytics.loginRegistration. this.loginWithSMS(type); break; case 2: From f42e2fb652c349ea4e6f8251cf4415452fd5031d Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Mon, 13 Jun 2022 12:57:09 +0300 Subject: [PATCH 2/7] Revert "no message" This reverts commit da7884ff613dafff7077b5fdcc38438a60f8b883. --- ios/Podfile.lock | 22 -------------------- lib/analytics/flows/login_registration.dart | 23 --------------------- lib/pages/login/confirm-login.dart | 1 - 3 files changed, 46 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 473ce746..2d3d257b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -111,8 +111,6 @@ PODS: - GoogleUtilities/UserDefaults (~> 7.6) - nanopb (~> 2.30908.0) - Flutter (1.0.0) - - flutter_app_icon_badge (0.0.1): - - Flutter - flutter_hms_gms_availability (0.0.1): - Flutter - flutter_inappwebview (0.0.1): @@ -122,8 +120,6 @@ PODS: - flutter_inappwebview/Core (0.0.1): - Flutter - OrderedSet (~> 5.0) - - flutter_ios_voip_kit (0.0.1): - - Flutter - flutter_local_notifications (0.0.1): - Flutter - flutter_native_timezone (0.0.1): @@ -233,10 +229,6 @@ PODS: - Flutter - pay_ios (0.0.1): - Flutter - - payfort_plugin (0.3.0): - - Flutter - - PayFortSDK - - PayFortSDK (3.1.0) - "permission_handler (5.1.0+2)": - Flutter - PromisesObjC (2.0.0) @@ -287,10 +279,8 @@ DEPENDENCIES: - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) - - flutter_app_icon_badge (from `.symlinks/plugins/flutter_app_icon_badge/ios`) - flutter_hms_gms_availability (from `.symlinks/plugins/flutter_hms_gms_availability/ios`) - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) - - flutter_ios_voip_kit (from `.symlinks/plugins/flutter_ios_voip_kit/ios`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_native_timezone (from `.symlinks/plugins/flutter_native_timezone/ios`) - flutter_nfc_kit (from `.symlinks/plugins/flutter_nfc_kit/ios`) @@ -314,7 +304,6 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - pay_ios (from `.symlinks/plugins/pay_ios/ios`) - - payfort_plugin (from `.symlinks/plugins/payfort_plugin/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - searchable_dropdown (from `.symlinks/plugins/searchable_dropdown/ios`) @@ -348,7 +337,6 @@ SPEC REPOS: - nanopb - OpenTok - OrderedSet - - PayFortSDK - PromisesObjC - Reachability - SDWebImage @@ -382,14 +370,10 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_messaging/ios" Flutter: :path: Flutter - flutter_app_icon_badge: - :path: ".symlinks/plugins/flutter_app_icon_badge/ios" flutter_hms_gms_availability: :path: ".symlinks/plugins/flutter_hms_gms_availability/ios" flutter_inappwebview: :path: ".symlinks/plugins/flutter_inappwebview/ios" - flutter_ios_voip_kit: - :path: ".symlinks/plugins/flutter_ios_voip_kit/ios" flutter_local_notifications: :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_native_timezone: @@ -434,8 +418,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_ios/ios" pay_ios: :path: ".symlinks/plugins/pay_ios/ios" - payfort_plugin: - :path: ".symlinks/plugins/payfort_plugin/ios" permission_handler: :path: ".symlinks/plugins/permission_handler/ios" screen_brightness_ios: @@ -481,10 +463,8 @@ SPEC CHECKSUMS: FirebaseInstallations: 830327b45345ffc859eaa9c17bcd5ae893fd5425 FirebaseMessaging: 82c4a48638f53f7b184f3cc9f6cd2cbe533ab316 Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a - flutter_app_icon_badge: 844847adbd7a1c6f325d6b41b942428981b839cc flutter_hms_gms_availability: babc50b18670e99780270bc18d9b17d0a07cd77e flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721 - flutter_ios_voip_kit: a3b4c5bd0cfda5069b5605a6d1dc60ecf99c6299 flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_native_timezone: 5f05b2de06c9776b4cc70e1839f03de178394d22 flutter_nfc_kit: 965c98c3fa68f5609f1cc89abb968fe1b8ffdbaa @@ -517,8 +497,6 @@ SPEC CHECKSUMS: package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5 pay_ios: 8c7beb9c61d885f3f51b61f75f8793023fc8843a - payfort_plugin: 6216a51564e4987204cd36947a6adccf49db3536 - PayFortSDK: a33a8488859d7666b3709f347ebb990697e1d110 permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0 PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 diff --git a/lib/analytics/flows/login_registration.dart b/lib/analytics/flows/login_registration.dart index 8187d2d8..3a2894a4 100644 --- a/lib/analytics/flows/login_registration.dart +++ b/lib/analytics/flows/login_registration.dart @@ -83,29 +83,6 @@ class LoginRegistration{ }); } - // R011:login_verify_otp | R009:registration_verification_option - login_verfication({@required String login_method, @required int verify_method, bool forRegistration = false}){ - var verification_method = ''; - if(verify_method == 1) verification_method = 'sms'; - if(verify_method == 2) verification_method = 'fingerprint'; - if(verify_method == 3) verification_method = 'face id'; - if(verify_method == 4) verification_method = 'whatsapp'; - - // login_method - // verification_method - - if(forRegistration == false) - logger("login_verfication", parameters: { - 'login_method' : login_method, - 'verification_method' : verification_method, - }); - else - logger("login_varification_register", parameters: { - 'login_method' : login_method, - 'verification_method' : verification_method, - }); - } - // R011.2 forget_file_number(){ logger('forget_file_number'); diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 92ae4311..bde675ad 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -310,7 +310,6 @@ class _ConfirmLogin extends State { login_method = type; switch (type) { case 1: - projectViewModel.analytics.loginRegistration. this.loginWithSMS(type); break; case 2: From 6cd660184a01dab6fa2582d3b2c754df3dabab1d Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Thu, 16 Jun 2022 14:33:00 +0300 Subject: [PATCH 3/7] no message --- lib/pages/landing/landing_page.dart | 6 +++--- lib/pages/livecare/incoming_call.dart | 2 +- lib/pages/login/confirm-login.dart | 2 -- lib/pages/videocall-webrtc-rnd/utils/turn.dart | 4 ++-- lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart | 5 ++--- lib/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart | 1 + 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 2389e92c..00315e79 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -420,8 +420,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { } login() async { - // dummyCall(); - // return; + dummyCall(); + return; var data = await sharedPref.getObject(IMEI_USER_DATA); sharedPref.remove(REGISTER_DATA_FOR_LOGIIN); @@ -478,7 +478,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { "videoUrl": "video", "picture": "video", "is_call": "true", - "server": "192.168.8.104", + "server": "https://livecareturn.hmg.com", }; IncomingCallData incomingCallData = IncomingCallData.fromJson(json); diff --git a/lib/pages/livecare/incoming_call.dart b/lib/pages/livecare/incoming_call.dart index 1e5947e5..28caf546 100644 --- a/lib/pages/livecare/incoming_call.dart +++ b/lib/pages/livecare/incoming_call.dart @@ -238,7 +238,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt final caller = widget.incomingCallData.callerID; final receiver = widget.incomingCallData.receiverID; final host = widget.incomingCallData.server; - // return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host,); + return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host,); // return VideoCallWebPage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // Web WebRTC VideoCall diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index bde675ad..887efb5c 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -609,7 +609,6 @@ class _ConfirmLogin extends State { } else { - projectViewModel.analytics.loginRegistration.login_successful(method: login_method), sharedPref.remove(FAMILY_FILE), result.list.isFamily = false, userData = result.list, @@ -728,7 +727,6 @@ class _ConfirmLogin extends State { isMoreOption = true; }); } else { - projectViewModel.analytics.loginRegistration.verify_otp_method(method: _flag, forRegistration: widget.fromRegistration); authenticateUser(_flag, isActive: _loginIndex); } }, diff --git a/lib/pages/videocall-webrtc-rnd/utils/turn.dart b/lib/pages/videocall-webrtc-rnd/utils/turn.dart index 0d4a00f9..f91fef80 100644 --- a/lib/pages/videocall-webrtc-rnd/utils/turn.dart +++ b/lib/pages/videocall-webrtc-rnd/utils/turn.dart @@ -2,14 +2,14 @@ import 'dart:convert'; import 'dart:async'; import 'dart:io'; -Future getTurnCredential(String host, int port) async { +Future getTurnCredential(String host) async { HttpClient client = HttpClient(context: SecurityContext()); client.badCertificateCallback = (X509Certificate cert, String host, int port) { print('getTurnCredential: Allow self-signed certificate => $host:$port. '); return true; }; - var url = 'https://$host:$port/api/turn?service=turn&username=flutter-webrtc'; + var url = '$host/api/turn?service=turn&username=flutter-webrtc'; var request = await client.getUrl(Uri.parse(url)); var response = await request.close(); var responseBody = await response.transform(Utf8Decoder()).join(); diff --git a/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart b/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart index d6e0a071..438b42de 100644 --- a/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart +++ b/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart @@ -51,7 +51,6 @@ class SocketUser{ class Signaling { var _host; - var _port = 8086; var _turnCredential; SimpleWebSocket _socket; @@ -248,11 +247,11 @@ class Signaling { } Future connect() async { - _socket = SimpleWebSocket('https://$_host:$_port/ws'); + _socket = SimpleWebSocket('$_host/ws'); if (_turnCredential == null) { try { - _turnCredential = await getTurnCredential(_host, _port); + _turnCredential = await getTurnCredential(_host); /* { "username": "1584195784:mbzrxpgjys", diff --git a/lib/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart b/lib/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart index ea3bbcb0..b1d89f66 100644 --- a/lib/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart +++ b/lib/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:diplomaticquarterapp/pages/conference/conference_button_bar.dart'; import 'package:diplomaticquarterapp/pages/conference/web_rtc/widgets/cam_view_widget.dart'; import 'package:diplomaticquarterapp/pages/videocall-webrtc-rnd/utils/device_info.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:core'; From a01b8b82daf96e2a3ad403beacd018794049a261 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Sun, 19 Jun 2022 11:26:56 +0300 Subject: [PATCH 4/7] no message --- lib/analytics/flows/appointments.dart | 28 ++++++++++++------- .../MyAppointments/AppointmentDetails.dart | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/lib/analytics/flows/appointments.dart b/lib/analytics/flows/appointments.dart index 50a02c76..6de4f48f 100644 --- a/lib/analytics/flows/appointments.dart +++ b/lib/analytics/flows/appointments.dart @@ -182,7 +182,7 @@ class Appointment{ // R049.1 // should be for appointment flow appointment_actions(AppoitmentAllHistoryResultList appointment, String action){ - logger('to_do_list_pay_now', parameters: { + logger('appointment_actions', parameters: { 'action_type' : action, 'flow_type' : GAnalytics.APPOINTMENT_DETAIL_FLOW_TYPE, 'appointment_type' : appointment.appointmentType, @@ -232,14 +232,16 @@ class Appointment{ // R036 payment_success({@required String appointment_type, clinic, hospital, payment_method, payment_type, txn_number, txn_amount, txn_currency}){ - // appointment_type - // clinic_type_online - // payment_method - // payment_type: 'appointment' - // hospital_name - // transaction_number - // transaction_amount - // transaction_currency + logger('payment_success', parameters: { + 'appointment_type' : appointment_type, + 'payment_method' : payment_method, + 'payment_type' : payment_type, + 'hospital_name' : hospital, + 'clinic_type_online' : clinic, + 'transaction_number' : txn_number, + 'transaction_amount' : txn_amount, + 'transaction_currency' : txn_currency, + }); } @@ -260,7 +262,13 @@ class Appointment{ // R053 // Note : - Payment flow beyond this step are same as listed under ‘Advance Payment’ section of this document appointment_details_cancel({@required AppoitmentAllHistoryResultList appointment}){ - logger('appointment_details_cancel', parameters: { + logger('cancel_appointment', parameters: { + 'flow_type' : GAnalytics.APPOINTMENT_DETAIL_FLOW_TYPE, + 'appointment_type' : appointment.appointmentType, + 'clinic_type_online' : appointment.clinicName, + 'hospital_name' : appointment.projectName, + 'doctor_name' : (appointment.doctorName == null || appointment.doctorName == '') ? appointment.doctorNameObj : appointment.doctorName, + 'payment_type' : 'appointment', }); } diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index d4a1d367..01cbfacc 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -605,13 +605,13 @@ class _AppointmentDetailsState extends State with SingleTick GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); service.cancelAppointment(widget.appo, context).then((res) { - projectViewModel.analytics.appointment.appointment_details_cancel(appointment: widget.appo); GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { checkIfHasReminder(); getToDoCount(); AppToast.showSuccessToast(message: res['ErrorEndUserMessage']); Navigator.of(context).pop(); + projectViewModel.analytics.appointment.appointment_details_cancel(appointment: widget.appo); } else { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } From e615ca1a16bb798bed259981983063eb7c1fe210 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Thu, 23 Jun 2022 15:47:51 +0300 Subject: [PATCH 5/7] no message --- lib/pages/landing/landing_page.dart | 10 ++++++- lib/widgets/dialogs/selection-dailog.dart | 36 ++++++++++++++++------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 00315e79..00f7ba6c 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -33,6 +33,7 @@ import 'package:diplomaticquarterapp/uitl/push-notification-handler.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart'; import 'package:diplomaticquarterapp/widgets/buttons/floatingActionButton.dart'; +import 'package:diplomaticquarterapp/widgets/dialogs/selection-dailog.dart'; import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/not_auh_page.dart'; @@ -451,6 +452,13 @@ class _LandingPageState extends State with WidgetsBindingObserver { dummyCall() async { + + final server = await SelectionDialog( + context, + title: "Select Server", + items: ["https://livecareturn.hmg.com", "https://104.197.179.1:8086"] + ).show(); + final json = { "callerID": "s1", "PatientID": "s2", @@ -478,7 +486,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { "videoUrl": "video", "picture": "video", "is_call": "true", - "server": "https://livecareturn.hmg.com", + "server": server, }; IncomingCallData incomingCallData = IncomingCallData.fromJson(json); diff --git a/lib/widgets/dialogs/selection-dailog.dart b/lib/widgets/dialogs/selection-dailog.dart index a1f4c66d..f3dfe083 100644 --- a/lib/widgets/dialogs/selection-dailog.dart +++ b/lib/widgets/dialogs/selection-dailog.dart @@ -1,14 +1,22 @@ +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class SelectionDialog extends StatefulWidget{ + final String title; + final List items; + BuildContext context; + + SelectionDialog(this.context,{@required this.title, @required this.items}); + @override State createState() => SelectionDialogState(); - String title; - List items; - show({@required String title, @required List items}){ - this.title = title; + + Future show() async{ + return showDialog(context: context, builder: (ctx){ + return this; + }); } } @@ -16,11 +24,14 @@ class SelectionDialogState extends State{ @override Widget build(BuildContext context) { - return Column( + return Scaffold( + backgroundColor: Colors.transparent, + body: Column( crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( + margin: EdgeInsets.all(20), decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(15)), child: Column( children: [ @@ -32,6 +43,7 @@ class SelectionDialogState extends State{ Container(height: 0.5, color: Colors.grey,), ListView.separated( + shrinkWrap: true, padding: EdgeInsets.all(10), itemCount: widget.items.length, itemBuilder: (ctx,idx) => item(idx), @@ -40,16 +52,20 @@ class SelectionDialogState extends State{ ), ) ], + ) ); } Widget item(int idx){ var model = widget.items[idx]; - return Container( - padding: EdgeInsets.all(10), - height: 20, - color: Colors.blue, - child: Text(model.toString()), + return InkWell( + onTap: (){ + Navigator.pop(context, model); + }, + child: Container( + padding: EdgeInsets.all(20), + child: Text(model.toString(), style: TextStyle(color: Colors.black)), + ), ); } From 1aabf08417c060f87d8a37996dd0938b6535b088 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Wed, 10 Aug 2022 12:59:41 +0300 Subject: [PATCH 6/7] no message --- lib/config/config.dart | 2 +- lib/pages/landing/landing_page.dart | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index ac610ee9..4efd0690 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -399,7 +399,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnar var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 8.3; +var VERSION_ID = 8.6; var SETUP_ID = '91877'; var LANGUAGE = 2; var PATIENT_OUT_SA = 0; diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 00f7ba6c..cfd097be 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -456,7 +456,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { final server = await SelectionDialog( context, title: "Select Server", - items: ["https://livecareturn.hmg.com", "https://104.197.179.1:8086"] + items: ["https://livecareturn.hmg.com:8086", "https://104.197.179.1:8086"] ).show(); final json = { @@ -466,7 +466,6 @@ class _LandingPageState extends State with WidgetsBindingObserver { "notfID": "123", "notification_foreground": "true", "count": "1", - "message": "Doctor is calling ", "AppointmentNo": "123", "title": "Rayyan Hospital", From 8c29b5f8e6b7a13135df0c65fa5f236d5f8cc051 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Wed, 10 Aug 2022 13:58:43 +0300 Subject: [PATCH 7/7] WebRTC or Opentok --- lib/models/LiveCare/IncomingCallData.dart | 3 +++ lib/pages/livecare/incoming_call.dart | 15 +++++++++------ lib/pages/videocall-webrtc-rnd/utils/turn.dart | 2 +- .../videocall-webrtc-rnd/webrtc/signaling.dart | 2 +- lib/uitl/push-notification-handler.dart | 16 +++++++++++++--- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/models/LiveCare/IncomingCallData.dart b/lib/models/LiveCare/IncomingCallData.dart index 507bcc85..1ee149a3 100644 --- a/lib/models/LiveCare/IncomingCallData.dart +++ b/lib/models/LiveCare/IncomingCallData.dart @@ -26,6 +26,7 @@ class IncomingCallData { String isCall; String sound; String server; + String isWebRTC; IncomingCallData( {this.msgID, @@ -80,6 +81,7 @@ class IncomingCallData { isCall = json['is_call']; sound = json['sound']; server = json['server']; + isWebRTC = json['isWebRTC'] ?? "false"; } Map toJson() { @@ -109,6 +111,7 @@ class IncomingCallData { data['is_call'] = this.isCall; data['sound'] = this.sound; data['server'] = this.server; + data['isWebRTC'] = this.isWebRTC; return data; } } diff --git a/lib/pages/livecare/incoming_call.dart b/lib/pages/livecare/incoming_call.dart index 28caf546..907d6b23 100644 --- a/lib/pages/livecare/incoming_call.dart +++ b/lib/pages/livecare/incoming_call.dart @@ -238,17 +238,20 @@ class _IncomingCallState extends State with SingleTickerProviderSt final caller = widget.incomingCallData.callerID; final receiver = widget.incomingCallData.receiverID; final host = widget.incomingCallData.server; - return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host,); + if(widget.incomingCallData.isWebRTC == "true"){ + return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host); + }else{ + return OpenTokConnectCallPage( + apiKey: OPENTOK_API_KEY, + sessionId: widget.incomingCallData.sessionId, + token: widget.incomingCallData.token + ); + } // return VideoCallWebPage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // Web WebRTC VideoCall // return CallHomePage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // App WebRTC VideoCall - return OpenTokConnectCallPage( - apiKey: OPENTOK_API_KEY, - sessionId: widget.incomingCallData.sessionId, - token: widget.incomingCallData.token - ); }, ), ); diff --git a/lib/pages/videocall-webrtc-rnd/utils/turn.dart b/lib/pages/videocall-webrtc-rnd/utils/turn.dart index c9c9d7f3..f91fef80 100644 --- a/lib/pages/videocall-webrtc-rnd/utils/turn.dart +++ b/lib/pages/videocall-webrtc-rnd/utils/turn.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'dart:async'; import 'dart:io'; -Future getTurnCredential(String host, int port) async { +Future getTurnCredential(String host) async { HttpClient client = HttpClient(context: SecurityContext()); client.badCertificateCallback = (X509Certificate cert, String host, int port) { diff --git a/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart b/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart index aaf5b680..4458604a 100644 --- a/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart +++ b/lib/pages/videocall-webrtc-rnd/webrtc/signaling.dart @@ -251,7 +251,7 @@ class Signaling { if (_turnCredential == null) { try { - _turnCredential = await getTurnCredential(_host, 8086); + _turnCredential = await getTurnCredential(_host); /* { "username": "1584195784:mbzrxpgjys", diff --git a/lib/uitl/push-notification-handler.dart b/lib/uitl/push-notification-handler.dart index a8b06051..f46ba2a6 100644 --- a/lib/uitl/push-notification-handler.dart +++ b/lib/uitl/push-notification-handler.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:ffi'; import 'dart:io'; import 'package:diplomaticquarterapp/config/config.dart'; @@ -9,6 +10,7 @@ import 'package:diplomaticquarterapp/models/LiveCare/IncomingCallData.dart'; import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart'; +import 'package:diplomaticquarterapp/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart'; import 'package:diplomaticquarterapp/pages/webRTC/OpenTok/OpenTok.dart'; import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart'; import 'package:diplomaticquarterapp/uitl/app-permissions.dart'; @@ -86,8 +88,15 @@ RemoteMessage toFirebaseRemoteMessage(h_push.RemoteMessage message) { return fire_message; } -callPage(String sessionID, String token) async { - await NavigationService.navigateToPage(OpenTokConnectCallPage(apiKey: OPENTOK_API_KEY, sessionId: sessionID, token: token)); +callPage(String sessionID, String token, String isWebrtc, String callerIdString) async { + if (isWebrtc == "true"){ + String caller = callerIdString.split("*")[3]; + String receiver = callerIdString.split("*")[4]; + String host = callerIdString.split("*")[5]; + return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host); + }else{ + await NavigationService.navigateToPage(OpenTokConnectCallPage(apiKey: OPENTOK_API_KEY, sessionId: sessionID, token: token)); + } } _incomingCall(Map data) async { @@ -192,6 +201,7 @@ class PushNotificationHandler { String sessionID = callerId.split("*")[0]; String token = callerId.split("*")[1]; + String isWebRTC = callerId.split("*")[2]; print("🎈 SessionID: $sessionID"); print("🎈 Token: $token"); @@ -204,7 +214,7 @@ class PushNotificationHandler { Future.delayed(new Duration(milliseconds: 2000)).then((value) async { print("🎈 Incoming Call!!!"); - callPage(sessionID, token); + callPage(sessionID, token, isWebRTC, callerId); }); // print("🎈 Identity: $identity");