diff --git a/agconnect-services.json b/agconnect-services.json new file mode 100644 index 00000000..91aad2c7 --- /dev/null +++ b/agconnect-services.json @@ -0,0 +1,74 @@ +{ + "agcgw":{ + "backurl":"connect-drcn.hispace.hicloud.com", + "url":"connect-drcn.dbankcloud.cn", + "websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com", + "websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn" + }, + "agcgw_all":{ + "CN":"connect-drcn.dbankcloud.cn", + "CN_back":"connect-drcn.hispace.hicloud.com", + "DE":"connect-dre.dbankcloud.cn", + "DE_back":"connect-dre.hispace.hicloud.com", + "RU":"connect-drru.dbankcloud.cn", + "RU_back":"connect-drru.hispace.hicloud.com", + "SG":"connect-dra.dbankcloud.cn", + "SG_back":"connect-dra.hispace.hicloud.com" + }, + "client":{ + "cp_id":"2640966000002322881", + "product_id":"736430079244816567", + "client_id":"563735388191982656", + "client_secret":"650C7C799812AFFD53A10C7756CF05FB9F215A7E49032ABA8EBF3E14B77535CF", + "project_id":"736430079244816567", + "app_id":"102857389", + "api_key":"CgB6e3x9DJzMgRCmnT6dyUEkp6UsIfddb6l3w0ZEXzeiRMHEFi3400Z5fJ5qaHneU0OrAI/JRpk+DMGVs3QpUxlI", + "package_name":"com.ejada.hmg" + }, + "oauth_client":{ + "client_id":"102857389", + "client_type":1 + }, + "app_info":{ + "app_id":"102857389", + "package_name":"com.ejada.hmg" + }, + "service":{ + "analytics":{ + "collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn", + "collector_url_ru":"datacollector-drru.dt.hicloud.com,datacollector-drru.dt.dbankcloud.cn", + "collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn", + "collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn", + "collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn", + "resource_id":"p1", + "channel_id":"" + }, + "search":{ + "url":"https://search-drcn.cloud.huawei.com" + }, + "cloudstorage":{ + "storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn" + }, + "ml":{ + "mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn" + } + }, + "region":"CN", + "configuration_version":"3.0", + "appInfos":[ + { + "package_name":"com.ejada.hmg", + "client":{ + "app_id":"102857389" + }, + "app_info":{ + "package_name":"com.ejada.hmg", + "app_id":"102857389" + }, + "oauth_client":{ + "client_type":1, + "client_id":"102857389" + } + } + ] +} diff --git a/android/app/build.gradle b/android/app/build.gradle index 607bb1b4..fb83079a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,7 +4,7 @@ plugins { id "com.google.gms.google-services" id "dev.flutter.flutter-gradle-plugin" id "com.google.firebase.crashlytics" - + id "com.huawei.agconnect" } @@ -18,12 +18,15 @@ if (keystorePropertiesFile.exists()) { android { namespace 'com.ejada.hmg' compileSdk 36 + ndkVersion '28.2.13676358' defaultConfig { applicationId "com.ejada.hmg" // minSdk 24 minSdkVersion 26 - targetSdk = flutter.targetSdkVersion + targetSdkVersion 35 + compileSdkVersion 35 +// targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName multiDexEnabled true diff --git a/android/build.gradle b/android/build.gradle index ba03ecf0..a255ad0a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,3 +1,15 @@ +buildscript { + repositories { + mavenCentral() + google() + maven { url "https://developer.huawei.com/repo/" } + } + dependencies { + classpath 'com.android.tools.build:gradle:8.1.0' + classpath 'com.huawei.agconnect:agcp:1.9.1.304' + } +} + allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 9bfc6a53..d1f38508 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -123,13 +123,13 @@ pluginManagement { includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") // Get vital-sign-engine path - def vitalSignEngine = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def vitalSignEnginePath = properties.getProperty("vital.sign.engine.path") - assert vitalSignEnginePath != null, "vital.sign.engine.path not set in local.properties" - return vitalSignEnginePath - }() +// def vitalSignEngine = { +// def properties = new Properties() +// file("local.properties").withInputStream { properties.load(it) } +// def vitalSignEnginePath = properties.getProperty("vital.sign.engine.path") +// assert vitalSignEnginePath != null, "vital.sign.engine.path not set in local.properties" +// return vitalSignEnginePath +// }() @@ -138,9 +138,18 @@ pluginManagement { repositories { google() mavenCentral() + maven { url 'https://developer.huawei.com/repo/' } gradlePluginPortal() } + resolutionStrategy { + eachPlugin { + if (requested.id.id == "com.huawei.agconnect") { + useModule("com.huawei.agconnect:agcp:1.9.1.304") + } + } + } + dependencyResolutionManagement { repositories { google() @@ -180,6 +189,7 @@ plugins { id("com.google.gms.google-services") version "4.4.3" apply false id("com.google.firebase.crashlytics") version "3.0.4" apply false id('org.gradle.toolchains.foojay-resolver-convention') version '0.9.0' apply false + id "com.huawei.agconnect" version "1.9.1.304" apply false } diff --git a/lib/pages/livecare/incoming_call.dart b/lib/pages/livecare/incoming_call.dart index 2c0a1ef7..7e705780 100644 --- a/lib/pages/livecare/incoming_call.dart +++ b/lib/pages/livecare/incoming_call.dart @@ -1,6 +1,6 @@ import 'dart:ui'; -import 'package:camera/camera.dart'; +// import 'package:camera/camera.dart'; import 'package:hmg_patient_app/models/LiveCare/IncomingCallData.dart'; import 'package:hmg_patient_app/pages/conference/widgets/platform_exception_alert_dialog.dart'; import 'package:hmg_patient_app/pages/conference/zoom/call_screen.dart'; @@ -31,7 +31,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt bool openCallInWeb = true; final player = AudioPlayer(); - late CameraController _controller; + // late CameraController _controller; late Future _initializeControllerFuture; bool isCameraReady = false; @@ -224,6 +224,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt context, "zoom_call_page", arguments: CallArguments(widget.incomingCallData!.sessionId!, "123", "Patient", "40", "0", false, int.parse(widget.incomingCallData!.appointmentNo!)), + // arguments: CallArguments("SmallDailyStandup9875", "123", "Patient", "40", "0", false, int.parse(widget.incomingCallData!.appointmentNo!)), ); } else { // OpenTok Call Page diff --git a/lib/pages/login/user-login-agreement-page.dart b/lib/pages/login/user-login-agreement-page.dart index 7c8bc6a4..35331569 100644 --- a/lib/pages/login/user-login-agreement-page.dart +++ b/lib/pages/login/user-login-agreement-page.dart @@ -44,7 +44,7 @@ class _UserLoginAgreementPageState extends State { final authService = AuthProvider(); late final WebViewController _controller; - bool isPageLoaded = false; + bool isPageLoaded = true; bool isTermsAndConditionsPage = true; bool acceptTerms = false; diff --git a/lib/uitl/CalendarUtils.dart b/lib/uitl/CalendarUtils.dart index f7fdda41..c54b5443 100644 --- a/lib/uitl/CalendarUtils.dart +++ b/lib/uitl/CalendarUtils.dart @@ -77,9 +77,10 @@ class CalendarUtils { scheduleDateTime!.forEach((element) { RecurrenceRule recurrenceRule = RecurrenceRule( - RecurrenceFrequency.Daily, - daysOfWeek: daysOfWeek, - endDate: element, + // RecurrenceFrequency.Daily, + // daysOfWeek: daysOfWeek, + // endDate: element, + until: element, frequency: Frequency.daily, ); //added byAamir Tz Time Event event = Event(writableCalendars!.id, @@ -98,9 +99,10 @@ class CalendarUtils { Future createOrUpdateEvent({required String title, required String description, DateTime? scheduleDateTime, String? eventId}) async { RecurrenceRule recurrenceRule = RecurrenceRule( - RecurrenceFrequency.Daily, + // RecurrenceFrequency.Daily, // daysOfWeek: daysOfWeek, - endDate: scheduleDateTime, + // endDate: scheduleDateTime, + until: scheduleDateTime, frequency: Frequency.daily, ); Location _currentLocation; @@ -126,7 +128,7 @@ class CalendarUtils { ios.CalendarEvent iosCalEvent = ios.CalendarEvent(eventId: eventId, startDate: scheduleDateTimeUTZ, endDate: scheduleDateTimeUTZ.add(Duration(minutes: 30)), title: title, description: description, isAllDay: false); - if(Platform.isAndroid) { + if (Platform.isAndroid) { Result result = await deviceCalendarPlugin.hasPermissions(); print(result); await deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) { @@ -143,10 +145,6 @@ class CalendarUtils { print("whenComplete Calender ID iOS " + eventId!); }); } - - - - } deleteEvent(Calendar _calendar, Event _event) async { diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index e4697472..c2afb8d2 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -38,9 +38,9 @@ class MyInAppBrowser extends InAppBrowser { static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL LIVE // static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL UAT - // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT + static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE // static String SERVICE_URL = 'https://uat.hmgwebservices.com/payfortforvidaplus/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL UAT VIDA PLUS diff --git a/pubspec.yaml b/pubspec.yaml index 41e0d4cc..71e52673 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,8 @@ description: A new Flutter application. version: 4.6.009+1 environment: - sdk: ">=3.0.0 <3.13.0" + # sdk: ">=3.0.0 <3.13.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -18,7 +19,7 @@ dependencies: webview_flutter: ^4.8.0 app_links: ^6.4.0 http: ^1.4.0 - connectivity_plus: ^6.1.4 + connectivity_plus: 6.1.0 async: ^2.8.1 audio_wave: ^0.1.4 provider: ^6.0.5 @@ -27,10 +28,10 @@ dependencies: get_it: ^8.0.3 health: ^13.1.1 fl_chart: ^1.0.0 - camera: ^0.11.1 + # camera: ^0.11.2 permission_handler: ^12.0.0+1 flutter_html: ^3.0.0-beta.2 - flutter_widget_from_html: ^0.16.0 + flutter_widget_from_html: ^0.17.0 # Pagnation pull_to_refresh: ^2.0.0 local_auth: ^2.1.7 @@ -38,8 +39,9 @@ dependencies: maps_launcher: ^3.0.0+1 url_launcher: ^6.3.1 url_launcher_ios: ^6.3.2 - shared_preferences: ^2.0.0 - fluttertoast: ^8.0.8 + shared_preferences: ^2.5.3 +# fluttertoast: ^8.0.8 + fluttertoast: ^8.2.12 flutter_progress_hud: ^2.0.2 percent_indicator: ^4.2.3 @@ -47,13 +49,13 @@ dependencies: # Icons font_awesome_flutter: any cupertino_icons: ^1.0.0 - image_picker: ^1.0.4 + image_picker: ^1.1.2 photo_view: any gif_view: ^1.0.3 expandable: ^5.0.1 flutter_charts: ^0.5.2 google_maps_flutter: ^2.12.3 -# huawei_map: ^6.11.2+304 + # huawei_map: ^6.11.2+304 huawei_map: git: url: https://github.com/fleoparra/hms-flutter-plugin.git @@ -62,27 +64,32 @@ dependencies: git: url: https://github.com/crasowas/hms-flutter-plugin.git path: flutter-hms-push -# huawei_push: ^6.12.0+303 + # huawei_push: ^6.12.0+303 + # hijri_gregorian_calendar: + # path: /Users/aamir/StudioProjects/hijri_gregorian_calendar + hijri_gregorian_calendar: ^0.0.3 # Qr code Scanner location: ^8.0.1 barcode_scan2: ^4.5.1 flutter_rating_bar: ^4.0.1 - syncfusion_flutter_calendar: ^28.1.37 + syncfusion_flutter_calendar: ^29.2.11+1 # SVG Images flutter_svg: ^2.0.8 manage_calendar_events: 2.0.3 -# icalendar_plus: ^0.0.6 + # icalendar_plus: ^0.0.6 flutter_inappwebview: ^6.1.5 circular_countdown_timer: ^0.2.0 - just_audio: ^0.9.30 + just_audio: ^0.10.4 hijri: ^3.0.0 flutter_datetime_picker_plus: ^2.1.0 carousel_pro_nullsafety: ^2.0.0 flutter_local_notifications: any - device_calendar: ^4.3.3 + device_calendar: + git: https://github.com/bardram/device_calendar geolocator: ^14.0.2 + geolocator_android: ^5.0.2 geocoding: ^4.0.0 jiffy: ^6.2.1 @@ -94,14 +101,14 @@ dependencies: #Dependencies for video call implementation native_device_orientation: ^2.0.3 # wakelock: ^0.6.2 - wakelock_plus: ^1.1.4 + wakelock_plus: ^1.3.2 after_layout: ^1.1.0 - cached_network_image: ^3.3.0 + cached_network_image: ^3.4.1 flutter_tts: ^4.2.3 flutter_nfc_kit: ^3.6.0 #geofencing: any - speech_to_text: ^7.1.0 + speech_to_text: ^7.2.0 in_app_update: ^4.2.2 in_app_review: ^2.0.10 badges: ^3.1.2 @@ -114,9 +121,9 @@ dependencies: auto_size_text: ^3.0.0 equatable: ^2.0.3 wave: ^0.2.0 - sms_otp_auto_verify: ^2.1.0 + sms_otp_auto_verify: ^2.2.0 google_api_availability: ^5.0.1 - open_filex: ^4.3.2 + open_filex: ^4.7.0 path_provider: ^2.0.8 amazon_payfort: ^1.1.4 logger: ^2.0.2+1 @@ -130,6 +137,8 @@ dependencies: firebase_analytics: ^11.5.1 cloudflare_turnstile: ^3.2.0 device_info_plus: ^11.5.0 + lottie: ^3.3.1 + google_fonts: ^6.2.1 google_maps_place_picker_mb_v2: ^1.0.1 # vital_sign_camera: @@ -137,7 +146,9 @@ dependencies: dependency_overrides: intl: ^0.20.2 - + flutter_plugin_android_lifecycle: 2.0.27 + image_picker_android: 0.8.12+22 + video_player_android: 2.8.10 dev_dependencies: flutter_test: