diff --git a/android/app/build.gradle b/android/app/build.gradle index 7aebdcaa..b8840f88 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,3 +1,10 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' + id "dev.flutter.flutter-gradle-plugin" + id "com.google.gms.google-services" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +13,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,12 +23,14 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +//apply plugin: 'com.android.application' +//apply plugin: 'kotlin-android' +//apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 34 + namespace "com.hmg.hmgDr" + compileSdkVersion 35 signingConfigs { release { @@ -49,7 +53,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.hmg.hmgDr" minSdkVersion 24 - targetSdkVersion 34 + targetSdkVersion 35 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -95,8 +99,8 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } } @@ -106,7 +110,7 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.appcompat:appcompat:1.1.0' @@ -125,7 +129,7 @@ dependencies { implementation 'com.opentok.android:opentok-android-sdk:2.20.1' //permissions // implementation 'pub.devrel:easypermissions:0.4.0' - implementation project(':easypermissions') +// implementation project(':easypermissions') //retrofit @@ -137,4 +141,4 @@ dependencies { implementation 'com.android.support:multidex:1.0.3' implementation 'com.google.firebase:firebase-analytics:17.4.1' } -apply plugin: 'com.google.gms.google-services' \ No newline at end of file +//apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/MainActivity.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/MainActivity.kt index bfeaa3bf..7f9d2a42 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/MainActivity.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/MainActivity.kt @@ -25,9 +25,9 @@ import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel import io.flutter.plugins.GeneratedPluginRegistrant -import pub.devrel.easypermissions.AfterPermissionGranted -import pub.devrel.easypermissions.AppSettingsDialog -import pub.devrel.easypermissions.EasyPermissions +//import pub.devrel.easypermissions.AfterPermissionGranted +//import pub.devrel.easypermissions.AppSettingsDialog +//import pub.devrel.easypermissions.EasyPermissions class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler, diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/model/ChangeCallStatusRequestModel.java b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/ChangeCallStatusRequestModel.java similarity index 100% rename from android/app/src/main/kotlin/com/hmg/hmgDr/model/ChangeCallStatusRequestModel.java rename to android/app/src/main/kotlin/com/hmg/hmgDr/Model/ChangeCallStatusRequestModel.java diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/model/GetSessionStatusModel.java b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java similarity index 100% rename from android/app/src/main/kotlin/com/hmg/hmgDr/model/GetSessionStatusModel.java rename to android/app/src/main/kotlin/com/hmg/hmgDr/Model/GetSessionStatusModel.java diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationDataModel.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationDataModel.kt similarity index 94% rename from android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationDataModel.kt rename to android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationDataModel.kt index bc025132..e1eb70e6 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationDataModel.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationDataModel.kt @@ -1,4 +1,4 @@ -package com.hmg.hmgDr.model +package com.hmg.hmgDr.Model /** Represents standard data needed for a Notification. */ open class NotificationDataModel( diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationVideoModel.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationVideoModel.kt similarity index 91% rename from android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationVideoModel.kt rename to android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationVideoModel.kt index 1d0925a3..5cabbce3 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/model/NotificationVideoModel.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/NotificationVideoModel.kt @@ -1,9 +1,7 @@ -package com.hmg.hmgDr.model +package com.hmg.hmgDr.Model import android.app.Notification import android.app.NotificationManager -import android.os.Build -import androidx.annotation.RequiresApi import androidx.core.app.NotificationCompat class NotificationVideoModel constructor( diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/model/SessionStatusModel.java b/android/app/src/main/kotlin/com/hmg/hmgDr/Model/SessionStatusModel.java similarity index 100% rename from android/app/src/main/kotlin/com/hmg/hmgDr/model/SessionStatusModel.java rename to android/app/src/main/kotlin/com/hmg/hmgDr/Model/SessionStatusModel.java diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/Service/VideoStreamFloatingWidgetService.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/Service/VideoStreamFloatingWidgetService.kt index 35e4974b..8ece1bd5 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/Service/VideoStreamFloatingWidgetService.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/Service/VideoStreamFloatingWidgetService.kt @@ -2,11 +2,8 @@ package com.hmg.hmgDr.Service import android.annotation.SuppressLint import android.app.* -import android.content.Context import android.content.Intent import android.graphics.BitmapFactory -import android.graphics.PixelFormat -import android.graphics.Point import android.opengl.GLSurfaceView import android.os.* import android.util.Log @@ -21,7 +18,7 @@ import com.hmg.hmgDr.Model.ChangeCallStatusRequestModel import com.hmg.hmgDr.Model.GetSessionStatusModel import com.hmg.hmgDr.Model.SessionStatusModel import com.hmg.hmgDr.R -import com.hmg.hmgDr.model.* +import com.hmg.hmgDr.Model.* import com.hmg.hmgDr.ui.VideoCallContract import com.hmg.hmgDr.ui.VideoCallPresenterImpl import com.hmg.hmgDr.ui.VideoCallResponseListener @@ -32,7 +29,6 @@ import com.hmg.hmgDr.util.ViewsUtil import com.hmg.hmgDr.util.audio.CustomAudioDevice import com.opentok.android.* import java.util.* -import kotlin.math.ceil class VideoStreamFloatingWidgetService : BaseMovingFloatingWidget(), Session.SessionListener, diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/ui/fragment/VideoCallFragment.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/ui/fragment/VideoCallFragment.kt index e11e6b20..2ed27dab 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/ui/fragment/VideoCallFragment.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/ui/fragment/VideoCallFragment.kt @@ -32,15 +32,15 @@ import com.hmg.hmgDr.util.opentok.DynamicVideoRenderer import com.hmg.hmgDr.util.ViewsUtil import com.opentok.android.* import com.opentok.android.PublisherKit.PublisherListener -import pub.devrel.easypermissions.AfterPermissionGranted -import pub.devrel.easypermissions.AppSettingsDialog -import pub.devrel.easypermissions.EasyPermissions -import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks +//import pub.devrel.easypermissions.AfterPermissionGranted +//import pub.devrel.easypermissions.AppSettingsDialog +//import pub.devrel.easypermissions.EasyPermissions +//import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks import kotlin.math.ceil // check this if it works to solve keyboard not work when dialog is opened // https://stackoverflow.com/questions/55066977/how-to-prevent-custom-dialogfragment-from-hiding-keyboard-when-being-shown -class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.SessionListener, +class VideoCallFragment : DialogFragment(), Session.SessionListener, PublisherListener, SubscriberKit.VideoListener, VideoCallView { @@ -385,66 +385,66 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session grantResults: IntArray ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) +// EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) } - override fun onPermissionsGranted(requestCode: Int, perms: List) { - Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size) - } - - override fun onPermissionsDenied(requestCode: Int, perms: List) { - Log.d(TAG, "onPermissionsDenied:" + requestCode + ":" + perms.size) - if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { - AppSettingsDialog.Builder(this) - .setTitle(getString(R.string.title_settings_dialog)) - .setRationale(getString(R.string.rationale_ask_again)) - .setPositiveButton(getString(R.string.setting)) - .setNegativeButton(getString(R.string.cancel)) - .setRequestCode(RC_SETTINGS_SCREEN_PERM) - .build() - .show() - } - } +// override fun onPermissionsGranted(requestCode: Int, perms: List) { +// Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size) +// } +// +// override fun onPermissionsDenied(requestCode: Int, perms: List) { +// Log.d(TAG, "onPermissionsDenied:" + requestCode + ":" + perms.size) +// if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { +// AppSettingsDialog.Builder(this) +// .setTitle(getString(R.string.title_settings_dialog)) +// .setRationale(getString(R.string.rationale_ask_again)) +// .setPositiveButton(getString(R.string.setting)) +// .setNegativeButton(getString(R.string.cancel)) +// .setRequestCode(RC_SETTINGS_SCREEN_PERM) +// .build() +// .show() +// } +// } - @AfterPermissionGranted(RC_VIDEO_APP_PERM) +// @AfterPermissionGranted(RC_VIDEO_APP_PERM) private fun requestPermissions() { - val perms = arrayOf( - Manifest.permission.INTERNET, - Manifest.permission.CAMERA, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.MODIFY_AUDIO_SETTINGS, - Manifest.permission.CALL_PHONE - ) - if (EasyPermissions.hasPermissions(requireContext(), *perms)) { - try { - mSession = Session.Builder(context, apiKey, sessionId).build() - mSession!!.setSessionListener(this) - mSession!!.connect(token) - - mSession!!.setReconnectionListener(object :Session.ReconnectionListener{ - override fun onReconnecting(p0: Session?) { - - } - - override fun onReconnected(session: Session?) { - session?.connect(token) - } - - - }) - - - } catch (e: Exception) { - e.printStackTrace() - } - } else { - EasyPermissions.requestPermissions( - this, - getString(R.string.remaining_ar), - RC_VIDEO_APP_PERM, - *perms - ) - } +// val perms = arrayOf( +// Manifest.permission.INTERNET, +// Manifest.permission.CAMERA, +// Manifest.permission.RECORD_AUDIO, +// Manifest.permission.MODIFY_AUDIO_SETTINGS, +// Manifest.permission.CALL_PHONE +// ) +// if (EasyPermissions.hasPermissions(requireContext(), *perms)) { +// try { +// mSession = Session.Builder(context, apiKey, sessionId).build() +// mSession!!.setSessionListener(this) +// mSession!!.connect(token) +// +// mSession!!.setReconnectionListener(object :Session.ReconnectionListener{ +// override fun onReconnecting(p0: Session?) { +// +// } +// +// override fun onReconnected(session: Session?) { +// session?.connect(token) +// } +// +// +// }) +// +// +// } catch (e: Exception) { +// e.printStackTrace() +// } +// } else { +// EasyPermissions.requestPermissions( +// this, +// getString(R.string.remaining_ar), +// RC_VIDEO_APP_PERM, +// *perms +// ) +// } } override fun onConnected(session: Session?) { diff --git a/android/app/src/main/kotlin/com/hmg/hmgDr/util/NotificationUtil.kt b/android/app/src/main/kotlin/com/hmg/hmgDr/util/NotificationUtil.kt index 29a2b564..fa08f52b 100644 --- a/android/app/src/main/kotlin/com/hmg/hmgDr/util/NotificationUtil.kt +++ b/android/app/src/main/kotlin/com/hmg/hmgDr/util/NotificationUtil.kt @@ -7,8 +7,8 @@ import android.content.Intent import android.graphics.Color import android.os.Build import androidx.core.app.NotificationCompat -import com.hmg.hmgDr.model.NotificationDataModel -import com.hmg.hmgDr.model.NotificationVideoModel +import com.hmg.hmgDr.Model.NotificationDataModel +import com.hmg.hmgDr.Model.NotificationVideoModel object NotificationUtil { diff --git a/android/build.gradle b/android/build.gradle index 6d2ee078..c62d79a6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,16 +1,16 @@ -buildscript { - ext.kotlin_version = '2.0.0' - repositories { - google() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.1.3' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.3.3' - } -} +//buildscript { +// ext.kotlin_version = '2.0.0' +// repositories { +// google() +// jcenter() +// } +// +// dependencies { +// classpath 'com.android.tools.build:gradle:8.1.0' +// classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" +// classpath 'com.google.gms:google-services:4.3.3' +// } +//} allprojects { repositories { @@ -33,8 +33,19 @@ subprojects { if (project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.library")) { project.android { - compileSdkVersion 34 - buildToolsVersion "34.0.0" + compileSdkVersion 35 + buildToolsVersion "35.0.0" + } + } + } +} +subprojects { + afterEvaluate { project -> + if (project.hasProperty('android')) { + project.android { + if (namespace == null) { + namespace project.group + } } } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 02e5f581..4cf0c849 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 90238d2f..ad89fbdc 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,15 +1,28 @@ -include ':app', ':easypermissions' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory +plugins { + id 'dev.flutter.flutter-plugin-loader' version "1.0.0" // apply true + id "org.jetbrains.kotlin.android" version "2.0.0" apply false + id 'com.android.application' version "8.3.2" apply false + id "com.google.gms.google-services" version "4.4.0" apply false + } + +include ":app" +//include ":easy_permissions" \ No newline at end of file diff --git a/lib/core/viewModel/project_view_model.dart b/lib/core/viewModel/project_view_model.dart index 608dca2e..9f19a629 100644 --- a/lib/core/viewModel/project_view_model.dart +++ b/lib/core/viewModel/project_view_model.dart @@ -1,6 +1,7 @@ import 'dart:async'; -import 'package:connectivity/connectivity.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; @@ -46,18 +47,8 @@ class ProjectViewModel with ChangeNotifier { ProjectViewModel() { loadSharedPrefLanguage(); - subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { - switch (result) { - case ConnectivityResult.wifi: - isInternetConnection = true; - break; - case ConnectivityResult.mobile: - isInternetConnection = true; - break; - case ConnectivityResult.none: - isInternetConnection = false; - break; - } + subscription = Connectivity().onConnectivityChanged.listen((List result) { + isInternetConnection = result.contains(ConnectivityResult.wifi)||result.contains(ConnectivityResult.mobile); notifyListeners(); }); } diff --git a/lib/utils/exception_report.dart b/lib/utils/exception_report.dart index a83013fe..cc349638 100644 --- a/lib/utils/exception_report.dart +++ b/lib/utils/exception_report.dart @@ -1,5 +1,5 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; +// import 'package:cloud_firestore/cloud_firestore.dart'; List monitoredEndpoints = [ "Services/Sentry.svc/REST/MemberLogIN_New", @@ -49,18 +49,18 @@ void postRequestAndResponse({ if(!monitoredEndpoints.contains(urlSuffix)) { return; } - print(" the url is being logged "); - Map data = { - "url" : completeUrl, - "request" : request, - "response" : response, - "statusCode" : statusCode, - }; - final firestore = FirebaseFirestore.instance; - // Sanitize urlSuffix to be Firestore-safe - final safeSuffix = urlSuffix.replaceAll(RegExp(r'[^a-zA-Z0-9_-]'), '_'); - final collectionRef = firestore.collection('doctors') - .doc(doctorId.toString()) - .collection(safeSuffix); - await collectionRef.doc(DateTime.now().toIso8601String()).set(data); + // print(" the url is being logged "); + // Map data = { + // "url" : completeUrl, + // "request" : request, + // "response" : response, + // "statusCode" : statusCode, + // }; + // final firestore = FirebaseFirestore.instance; + // // Sanitize urlSuffix to be Firestore-safe + // final safeSuffix = urlSuffix.replaceAll(RegExp(r'[^a-zA-Z0-9_-]'), '_'); + // final collectionRef = firestore.collection('doctors') + // .doc(doctorId.toString()) + // .collection(safeSuffix); + // await collectionRef.doc(DateTime.now().toIso8601String()).set(data); } \ No newline at end of file diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index d507055b..096722c9 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -1,4 +1,4 @@ -import 'package:connectivity/connectivity.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/core/model/doctor/list_doctor_working_hours_table_model.dart'; import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart'; @@ -141,12 +141,8 @@ class Utils { } static Future checkConnection() async { - ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); - if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { - return true; - } else { - return false; - } + List result = await (Connectivity().checkConnectivity()); + return result.contains(ConnectivityResult.wifi)||result.contains(ConnectivityResult.mobile); } static List getWorkingHours(String workingHours) { diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index d9cacc88..f28a37b3 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,7 +5,7 @@ import FlutterMacOS import Foundation -import connectivity_macos +import connectivity_plus import firebase_analytics import firebase_core import firebase_messaging @@ -13,12 +13,12 @@ import flutter_inappwebview_macos import maps_launcher import path_provider_foundation import shared_preferences_foundation -import speech_to_text_macos +import speech_to_text import sqflite_darwin import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin")) + ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin")) FLTFirebaseAnalyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAnalyticsPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) @@ -26,7 +26,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { MapsLauncherPlugin.register(with: registry.registrar(forPlugin: "MapsLauncherPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) - SpeechToTextMacosPlugin.register(with: registry.registrar(forPlugin: "SpeechToTextMacosPlugin")) + SpeechToTextPlugin.register(with: registry.registrar(forPlugin: "SpeechToTextPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index c485105b..365f7329 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -17,6 +17,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.25" + adaptive_number: + dependency: transitive + description: + name: adaptive_number + sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77" + url: "https://pub.dev" + source: hosted + version: "1.0.0" analyzer: dependency: transitive description: @@ -69,10 +77,10 @@ packages: dependency: "direct main" description: name: barcode_scan2 - sha256: a2ab566027cd57b2795ea42aa26835dbaa8fe70bcc1aff54942a14d3705dff97 + sha256: "0f3eb7c0a0c80a0f65d3fa88737544fdb6d27127a4fad566e980e626f3fb76e1" url: "https://pub.dev" source: hosted - version: "4.3.3" + version: "4.5.1" bazel_worker: dependency: transitive description: @@ -117,10 +125,10 @@ packages: dependency: transitive description: name: build_modules - sha256: "9987d67a29081872e730468295fc565e9a2b377ca3673337c1d4e41d57c6cd7c" + sha256: "0327cb2a9eefba197b63f71872c38bafe4c63b331797a43618d6c270516a6447" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.0.11" build_resolvers: dependency: transitive description: @@ -149,10 +157,10 @@ packages: dependency: "direct dev" description: name: build_web_compilers - sha256: "9071a94aa67787cebdd9e76837c9d2af61fb5242db541244f6a0b6249afafb46" + sha256: "01cfac85e835d9fe8e87928958586ddbd477d98cfac5af2442cb2df6bbb42dff" url: "https://pub.dev" source: hosted - version: "4.0.10" + version: "4.1.1" built_collection: dependency: transitive description: @@ -173,26 +181,26 @@ packages: dependency: "direct main" description: name: cached_network_image - sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f" + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f" + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.1" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7" + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.1" characters: dependency: transitive description: @@ -233,14 +241,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" - cloudflare_turnstile: - dependency: "direct main" - description: - name: cloudflare_turnstile - sha256: "3f11c0e7336b266e4eb4e594e7603972902832e10ace004a2c710e93abb81bfe" - url: "https://pub.dev" - source: hosted - version: "3.0.1" code_builder: dependency: transitive description: @@ -253,39 +253,23 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" - connectivity: + version: "1.19.0" + connectivity_plus: dependency: "direct main" description: - name: connectivity - sha256: a8e91263cf3e25fb5cc95e19dfde4999e32a648ac3b9e8a558a28165731678f8 - url: "https://pub.dev" - source: hosted - version: "3.0.6" - connectivity_for_web: - dependency: transitive - description: - name: connectivity_for_web - sha256: "01a390c1d5adc2ed1fa1f52d120c07fe9fd01166a93f965a832fd6cfc0ea6482" + name: connectivity_plus + sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99" url: "https://pub.dev" source: hosted - version: "0.4.0+1" - connectivity_macos: + version: "6.1.4" + connectivity_plus_platform_interface: dependency: transitive description: - name: connectivity_macos - sha256: "51ae08d5162eca9669b9d8951ed83ce19c5355a81149f94e4dee2740beb93628" - url: "https://pub.dev" - source: hosted - version: "0.2.1+2" - connectivity_platform_interface: - dependency: transitive - description: - name: connectivity_platform_interface - sha256: "2d82e942df9d49f29a24bb07fb5ce085d4a53e47818c62364d2b6deb9e0d7a8e" + name: connectivity_plus_platform_interface + sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204" url: "https://pub.dev" source: hosted version: "2.0.1" @@ -329,6 +313,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + dart_jsonwebtoken: + dependency: "direct main" + description: + name: dart_jsonwebtoken + sha256: "00a0812d2aeaeb0d30bcbc4dd3cee57971dbc0ab2216adf4f0247f37793f15ef" + url: "https://pub.dev" + source: hosted + version: "2.17.0" dart_style: dependency: transitive description: @@ -345,6 +337,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" + dbus: + dependency: transitive + description: + name: dbus + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" + url: "https://pub.dev" + source: hosted + version: "0.7.11" dropdown_search: dependency: "direct main" description: @@ -353,6 +353,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.6" + ed25519_edwards: + dependency: transitive + description: + name: ed25519_edwards + sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd" + url: "https://pub.dev" + source: hosted + version: "0.3.1" equatable: dependency: transitive description: @@ -369,6 +377,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0" + events_emitter: + dependency: transitive + description: + name: events_emitter + sha256: a075477bdf9c8c0c31bb7c7b7bdd357b4486c34f30163119f96de4e7f54abeff + url: "https://pub.dev" + source: hosted + version: "0.5.2" expandable: dependency: "direct main" description: @@ -522,10 +538,10 @@ packages: dependency: transitive description: name: flutter_cache_manager - sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba" + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.1" flutter_colorpicker: dependency: "direct main" description: @@ -550,6 +566,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.0" + flutter_hooks: + dependency: transitive + description: + name: flutter_hooks + sha256: cde36b12f7188c85286fba9b38cc5a902e7279f36dd676967106c041dc9dde70 + url: "https://pub.dev" + source: hosted + version: "0.20.5" flutter_html: dependency: "direct main" description: @@ -684,13 +708,13 @@ packages: source: hosted version: "0.7.2" flutter_plugin_android_lifecycle: - dependency: transitive + dependency: "direct overridden" description: name: flutter_plugin_android_lifecycle - sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.0.27" flutter_staggered_grid_view: dependency: "direct main" description: @@ -725,14 +749,22 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_zoom_videosdk: + dependency: "direct main" + description: + name: flutter_zoom_videosdk + sha256: bb800c733c3a0a31909b2834922e75e089108980154ba1e60ef881c0e21b8802 + url: "https://pub.dev" + source: hosted + version: "1.12.10" fluttertoast: dependency: "direct main" description: name: fluttertoast - sha256: "81b68579e23fcbcada2db3d50302813d2371664afe6165bc78148050ab94bf66" + sha256: "25e51620424d92d3db3832464774a6143b5053f15e382d8ffbfd40b6e795dcf1" url: "https://pub.dev" source: hosted - version: "8.2.5" + version: "8.2.12" font_awesome_flutter: dependency: "direct main" description: @@ -913,18 +945,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -958,21 +990,21 @@ packages: source: hosted version: "2.1.8" local_auth_android: - dependency: transitive + dependency: "direct main" description: name: local_auth_android - sha256: e0e5b1ea247c5a0951c13a7ee13dc1beae69750e6a2e1910d1ed6a3cd4d56943 + sha256: "63ad7ca6396290626dc0cb34725a939e4cfe965d80d36112f08d49cf13a8136e" url: "https://pub.dev" source: hosted - version: "1.0.38" + version: "1.0.49" local_auth_ios: dependency: transitive description: name: local_auth_ios - sha256: eb283b530029b334698918f1e282d4483737cbca972ff21b9193be3d6de8e2b8 + sha256: "6dde47dc852bc0c8343cb58e66a46efb16b62eddf389ce103d4dacb0c6c40c71" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.7" local_auth_platform_interface: dependency: transitive description: @@ -1009,10 +1041,10 @@ packages: dependency: "direct main" description: name: maps_launcher - sha256: "57ba3c31db96e30f58c23fcb22a1fac6accc5683535b2cf344c534bbb9f8f910" + sha256: dac4c609720211fa6336b5903d917fe45e545c6b5665978efc3db2a3f436b1ae url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "3.0.0+1" matcher: dependency: transitive description: @@ -1053,6 +1085,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" numberpicker: dependency: "direct main" description: @@ -1261,6 +1301,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.10.2+1" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + url: "https://pub.dev" + source: hosted + version: "3.9.1" pool: dependency: transitive description: @@ -1329,26 +1377,26 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.5.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.4.10" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1401,7 +1449,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_maps: dependency: transitive description: @@ -1422,26 +1470,18 @@ packages: dependency: "direct main" description: name: speech_to_text - sha256: "57fef1d41bdebe298e84842c89bb4ac91f31cdbec7830c8cb1fc6b91d03abd42" + sha256: "130fde359c23a4da6c2a4f032eab43e4c2b57c9818fe93694c091dfbdca6ae70" url: "https://pub.dev" source: hosted - version: "6.6.0" - speech_to_text_macos: - dependency: transitive - description: - name: speech_to_text_macos - sha256: e685750f7542fcaa087a5396ee471e727ec648bf681f4da83c84d086322173f6 - url: "https://pub.dev" - source: hosted - version: "1.1.0" + version: "7.1.0" speech_to_text_platform_interface: dependency: transitive description: name: speech_to_text_platform_interface - sha256: a0df1a907091ea09880077dc25aae02af9f79811264e6e97ddb08639b7f771c2 + sha256: a1935847704e41ee468aad83181ddd2423d0833abe55d769c59afca07adb5114 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" sprintf: dependency: transitive description: @@ -1454,26 +1494,50 @@ packages: dependency: transitive description: name: sqflite - sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6 + sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" + url: "https://pub.dev" + source: hosted + version: "2.4.0" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" + sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4+6" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" + url: "https://pub.dev" + source: hosted + version: "2.4.1+1" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" sticky_headers: dependency: "direct main" description: @@ -1502,10 +1566,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" synchronized: dependency: transitive description: @@ -1526,10 +1590,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" timing: dependency: transitive description: @@ -1566,10 +1630,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: @@ -1579,13 +1643,13 @@ packages: source: hosted version: "6.3.2" url_launcher_ios: - dependency: transitive + dependency: "direct main" description: name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.3.3" url_launcher_linux: dependency: transitive description: @@ -1678,10 +1742,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: @@ -1739,5 +1803,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.0 <3.6.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <3.8.0-z" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index fb9088fb..ab41d81c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,16 +30,18 @@ dependencies: flutter_device_type: ^0.4.0 http: ^1.1.2 provider: ^6.1.1 - shared_preferences: ^2.2.2 + shared_preferences: ^2.5.3 # imei_plugin: ^1.2.0 # flutter_flexible_toast: ^0.1.4 - fluttertoast: ^8.2.4 + fluttertoast: ^8.2.12 local_auth: 2.1.8 + local_auth_android: ^1.0.48 http_interceptor: any - connectivity: ^3.0.6 - maps_launcher: ^2.2.0 - url_launcher: ^6.2.1 +# connectivity: ^3.0.6 + connectivity_plus: ^6.1.4 + maps_launcher: ^3.0.0+1 + url_launcher: ^6.3.1 url_launcher_ios: ^6.3.2 charts_flutter: ^0.12.0 #flutter_charts: ^0.5.2 @@ -55,7 +57,7 @@ dependencies: expandable: ^5.0.1 # Qr code Scanner - barcode_scan2: ^4.3.0 + barcode_scan2: ^4.5.1 # permissions permission_handler: ^11.1.0 # device_info: ^2.0.2 @@ -102,7 +104,7 @@ dependencies: # speech_to_text: # path: speech_to_text - speech_to_text: ^6.4.1 + speech_to_text: ^7.1.0 quiver: ^3.2.1 flutter_colorpicker: ^1.0.3 @@ -114,7 +116,7 @@ dependencies: jhijri: ^1.0.0 #Network Image - cached_network_image: ^3.3.0 + cached_network_image: ^3.4.1 # Badges @@ -140,6 +142,7 @@ dependency_overrides: flutter_localizations: sdk: flutter intl: ^0.18.1 + flutter_plugin_android_lifecycle: 2.0.27 #hijri_picker: ^3.0.0 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index c0183aab..d552c6c7 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,7 @@ #include "generated_plugin_registrant.h" +#include #include #include #include @@ -14,6 +15,8 @@ #include void RegisterPlugins(flutter::PluginRegistry* registry) { + ConnectivityPlusWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); FirebaseCorePluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 14522e7e..6c950ebb 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + connectivity_plus firebase_core flutter_inappwebview_windows local_auth_windows