application is made compatible to the newer android version

master
taha 2 weeks ago
parent b7f5827d33
commit e1f084765d

@ -25,9 +25,9 @@ android {
defaultConfig { defaultConfig {
applicationId "com.redseaglobal.redseahealth" applicationId "com.redseaglobal.redseahealth"
// minSdk 24 // minSdk 24
minSdkVersion 26 minSdkVersion 28
targetSdkVersion 36 targetSdkVersion 37
compileSdkVersion 36 compileSdkVersion 37
// targetSdk = flutter.targetSdkVersion // targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode versionCode = flutter.versionCode
versionName = flutter.versionName versionName = flutter.versionName
@ -147,15 +147,15 @@ dependencies {
implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version"
implementation 'net.zetetic:android-database-sqlcipher:4.5.4' implementation 'net.zetetic:sqlcipher-android:4.19.0'
implementation 'com.intuit.ssp:ssp-android:1.1.0' implementation 'com.intuit.ssp:ssp-android:1.1.0'
implementation 'com.intuit.sdp:sdp-android:1.1.0' implementation 'com.intuit.sdp:sdp-android:1.1.0'
implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'com.github.bumptech.glide:glide:4.16.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
implementation 'com.mapbox.maps:android:11.5.0' implementation 'com.mapbox.maps:android-ndk27:11.31.0'
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:7.3.1' implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:7.10.1'
// implementation 'com.mapbox.maps:android:11.4.0' // implementation 'com.mapbox.maps:android:11.4.0'
// AARs // AARs
@ -166,7 +166,7 @@ dependencies {
implementation 'com.github.kittinunf.fuel:fuel:2.3.1' implementation 'com.github.kittinunf.fuel:fuel:2.3.1'
implementation 'com.github.kittinunf.fuel:fuel-android:2.3.1' implementation 'com.github.kittinunf.fuel:fuel-android:2.3.1'
implementation "com.opentok.android:opentok-android-sdk:2.25.2" implementation "com.opentok.android:opentok-android-sdk:2.34.1"
implementation 'com.facebook.stetho:stetho:1.6.0' implementation 'com.facebook.stetho:stetho:1.6.0'
implementation 'com.facebook.stetho:stetho-urlconnection:1.6.0' implementation 'com.facebook.stetho:stetho-urlconnection:1.6.0'
@ -175,7 +175,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'androidx.appcompat:appcompat:1.7.1'
implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.android.material:material:1.12.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.25' implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.32'
androidTestImplementation "androidx.test:core:1.6.1" androidTestImplementation "androidx.test:core:1.6.1"
implementation 'com.whatsapp.otp:whatsapp-otp-android-sdk:0.1.0' implementation 'com.whatsapp.otp:whatsapp-otp-android-sdk:0.1.0'

@ -66,7 +66,7 @@ class GAnalytics {
if (await PermissionService.isLocationEnabled()) { if (await PermissionService.isLocationEnabled()) {
final location = await Geolocator.getCurrentPosition(); final location = await Geolocator.getCurrentPosition();
if (location != null && !location.isMocked) { if (location != null && !location.isMocked) {
final places = await placemarkFromCoordinates(location.latitude, location.longitude,); final places = await Geocoding().placemarkFromCoordinates(location.latitude, location.longitude,);
final countryCode = places.first.isoCountryCode; final countryCode = places.first.isoCountryCode;
_analytics.setUserProperty(name: 'user_country', value: countryCode); _analytics.setUserProperty(name: 'user_country', value: countryCode);
} }
@ -95,14 +95,14 @@ class NavObserver extends RouteObserver<PageRoute<dynamic>> {
log(String className) { log(String className) {
var event = AnalyticEvents.get(className); var event = AnalyticEvents.get(className);
if (event.active != null) { if (event.active != null) {
_analytics.setCurrentScreen(screenName: event.flutterName(), screenClassOverride: className).catchError( // // _analytics.c(screenName: event.flutterName(), screenClassOverride: className).catchError(
(Object error) { // (Object error) {
print('$FirebaseAnalyticsObserver: $error'); // print('$FirebaseAnalyticsObserver: $error');
}, // },
test: (Object error) { // test: (Object error) {
return error is PlatformException; // return error is PlatformException;
}, // },
); // );
} }
} }

@ -78,7 +78,7 @@ class _CMCLocationPageState extends State<CMCLocationPage> {
setState(() {}); setState(() {});
}, },
onCameraIdle: () async { onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(latitude, longitude); List<Placemark> placemarks = await Geocoding().placemarkFromCoordinates(latitude, longitude);
selectedPlace = placemarks[0]; selectedPlace = placemarks[0];
print(selectedPlace); print(selectedPlace);
}, },

@ -89,7 +89,7 @@ class _LocationPageState extends State<LocationPage> {
setState(() {}); setState(() {});
}, },
onCameraIdle: () async { onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(latitude, longitude); List<Placemark> placemarks = await Geocoding().placemarkFromCoordinates(latitude, longitude);
selectedPlace = placemarks[0]; selectedPlace = placemarks[0];
print(selectedPlace); print(selectedPlace);
}, },

@ -20,12 +20,12 @@ class _NotificationsDetailsPageState extends State<NotificationsDetailsPage> {
@override @override
void initState() { void initState() {
_controller = YoutubePlayerController( _controller = YoutubePlayerController.fromVideoId(
initialVideoId: getVideoURL(), videoId: getVideoURL(),
flags: YoutubePlayerFlags( params: YoutubePlayerParams(
autoPlay: true,
mute: false, mute: false,
), ),
autoPlay: true
); );
super.initState(); super.initState();
} }
@ -50,7 +50,7 @@ class _NotificationsDetailsPageState extends State<NotificationsDetailsPage> {
String getVideoURL() { String getVideoURL() {
if (widget.notification.videoURL != null && widget.notification.notificationType == "2") { if (widget.notification.videoURL != null && widget.notification.notificationType == "2") {
String videoId; String videoId;
videoId = YoutubePlayer.convertUrlToId(widget.notification.videoURL)!; videoId = YoutubePlayerController.convertUrlToId(widget.notification.videoURL)!;
print(videoId); // BBAyRBTfsOU print(videoId); // BBAyRBTfsOU
return videoId; return videoId;
}else{ }else{
@ -96,7 +96,6 @@ class _NotificationsDetailsPageState extends State<NotificationsDetailsPage> {
padding: const EdgeInsets.only(top: 18), padding: const EdgeInsets.only(top: 18),
child: YoutubePlayer( child: YoutubePlayer(
controller: _controller, controller: _controller,
showVideoProgressIndicator: true,
), ),
), ),
if (widget.notification.messageTypeData != null) if (widget.notification.messageTypeData != null)

@ -44,7 +44,7 @@ import 'package:gms_check/gms_check.dart';
// import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; // import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:huawei_map/huawei_map.dart' as hmsMap; import 'package:huawei_map/huawei_map.dart' as hmsMap;
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:map_launcher/map_launcher.dart'; import 'package:map_launcher/map_launcher.dart' as mapLauncher;
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -495,16 +495,10 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
static Future<void> openMap(double latitude, double longitude) async { static Future<void> openMap(double latitude, double longitude) async {
await MapLauncher.showMarker( await mapLauncher.MapLauncher.marker(
mapType: Platform.isAndroid mapLauncher.LocationCoords(latitude, longitude)
? isHuawei == true
? MapType.petal
: MapType.google
: MapType.apple,
coords: Coords(latitude, longitude),
title: "Sulaiman Al Habib",
description: "Appointment Location",
); );
} }
checkIsHuawei() async { checkIsHuawei() async {

@ -3,7 +3,6 @@ import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:diplomaticquarterapp/pages/conference/zoom/jwt.dart'; import 'package:diplomaticquarterapp/pages/conference/zoom/jwt.dart';
import 'package:diplomaticquarterapp/pages/conference/zoom/video_view.dart'; import 'package:diplomaticquarterapp/pages/conference/zoom/video_view.dart';
import 'package:events_emitter/events_emitter.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -143,10 +142,10 @@ class _CallScreenState extends State<CallScreen> {
}); });
useEffect(() { useEffect(() {
eventListener.addEventListener(); // eventListener.addEventListener();
EventEmitter emitter = eventListener.eventEmitter; EventEmitter emitter = eventListener.eventEmitter;
final sessionJoinListener = emitter.on(EventType.onSessionJoin, (sessionUser) async { final sessionJoinListener = emitter.addListener(EventType.onSessionJoin, (sessionUser) async {
isInSession.value = true; isInSession.value = true;
zoom.session.getSessionName().then((value) => sessionName.value = value!); zoom.session.getSessionName().then((value) => sessionName.value = value!);
sessionPassword.value = await zoom.session.getSessionPassword(); sessionPassword.value = await zoom.session.getSessionPassword();
@ -166,7 +165,7 @@ class _CallScreenState extends State<CallScreen> {
isReceiveSpokenLanguageContentEnabled.value = await zoom.liveTranscriptionHelper.isReceiveSpokenLanguageContentEnabled(); isReceiveSpokenLanguageContentEnabled.value = await zoom.liveTranscriptionHelper.isReceiveSpokenLanguageContentEnabled();
}); });
final sessionLeaveListener = emitter.on(EventType.onSessionLeave, (data) async { final sessionLeaveListener = emitter.addListener(EventType.onSessionLeave, (data) async {
isInSession.value = false; isInSession.value = false;
users.value = <ZoomVideoSdkUser>[]; users.value = <ZoomVideoSdkUser>[];
fullScreenUser.value = null; fullScreenUser.value = null;
@ -175,7 +174,7 @@ class _CallScreenState extends State<CallScreen> {
WakelockPlus.disable(); WakelockPlus.disable();
}); });
final sessionNeedPasswordListener = emitter.on(EventType.onSessionNeedPassword, (data) async { final sessionNeedPasswordListener = emitter.addListener(EventType.onSessionNeedPassword, (data) async {
showDialog<String>( showDialog<String>(
context: context, context: context,
builder: (BuildContext context) => AlertDialog( builder: (BuildContext context) => AlertDialog(
@ -195,7 +194,7 @@ class _CallScreenState extends State<CallScreen> {
); );
}); });
final sessionPasswordWrongListener = emitter.on(EventType.onSessionPasswordWrong, (data) async { final sessionPasswordWrongListener = emitter.addListener(EventType.onSessionPasswordWrong, (data) async {
showDialog<String>( showDialog<String>(
context: context, context: context,
builder: (BuildContext context) => AlertDialog( builder: (BuildContext context) => AlertDialog(
@ -215,7 +214,7 @@ class _CallScreenState extends State<CallScreen> {
); );
}); });
final userVideoStatusChangedListener = emitter.on(EventType.onUserVideoStatusChanged, (data) async { final userVideoStatusChangedListener = emitter.addListener(EventType.onUserVideoStatusChanged, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
var userListJson = jsonDecode(data['changedUsers']) as List; var userListJson = jsonDecode(data['changedUsers']) as List;
@ -230,7 +229,7 @@ class _CallScreenState extends State<CallScreen> {
videoStatusFlag.value = !videoStatusFlag.value; videoStatusFlag.value = !videoStatusFlag.value;
}); });
final userAudioStatusChangedListener = emitter.on(EventType.onUserAudioStatusChanged, (data) async { final userAudioStatusChangedListener = emitter.addListener(EventType.onUserAudioStatusChanged, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
var userListJson = jsonDecode(data['changedUsers']) as List; var userListJson = jsonDecode(data['changedUsers']) as List;
@ -245,7 +244,7 @@ class _CallScreenState extends State<CallScreen> {
audioStatusFlag.value = !audioStatusFlag.value; audioStatusFlag.value = !audioStatusFlag.value;
}); });
final userShareStatusChangeListener = emitter.on(EventType.onUserShareStatusChanged, (data) async { final userShareStatusChangeListener = emitter.addListener(EventType.onUserShareStatusChanged, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
ZoomVideoSdkUser shareUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'].toString())); ZoomVideoSdkUser shareUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'].toString()));
@ -262,7 +261,7 @@ class _CallScreenState extends State<CallScreen> {
userShareStatusFlag.value = !userShareStatusFlag.value; userShareStatusFlag.value = !userShareStatusFlag.value;
}); });
final userJoinListener = emitter.on(EventType.onUserJoin, (data) async { final userJoinListener = emitter.addListener(EventType.onUserJoin, (data) async {
if (!isMounted()) return; if (!isMounted()) return;
data = data as Map; data = data as Map;
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
@ -273,7 +272,7 @@ class _CallScreenState extends State<CallScreen> {
fullScreenUser.value = remoteUserList[1]; fullScreenUser.value = remoteUserList[1];
}); });
final userLeaveListener = emitter.on(EventType.onUserLeave, (data) async { final userLeaveListener = emitter.addListener(EventType.onUserLeave, (data) async {
if (!isMounted()) return; if (!isMounted()) return;
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
data = data as Map; data = data as Map;
@ -296,7 +295,7 @@ class _CallScreenState extends State<CallScreen> {
users.value = remoteUserList; users.value = remoteUserList;
}); });
final userNameChangedListener = emitter.on(EventType.onUserNameChanged, (data) async { final userNameChangedListener = emitter.addListener(EventType.onUserNameChanged, (data) async {
if (!isMounted()) return; if (!isMounted()) return;
data = data as Map; data = data as Map;
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser'])); ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
@ -310,27 +309,27 @@ class _CallScreenState extends State<CallScreen> {
userNameFlag.value = !userNameFlag.value; userNameFlag.value = !userNameFlag.value;
}); });
final commandReceived = emitter.on(EventType.onCommandReceived, (data) async { final commandReceived = emitter.addListener(EventType.onCommandReceived, (data) async {
data = data as Map; data = data as Map;
debugPrint("sender: ${ZoomVideoSdkUser.fromJson(jsonDecode(data['sender']))}, command: ${data['command']}"); debugPrint("sender: ${ZoomVideoSdkUser.fromJson(jsonDecode(data['sender']))}, command: ${data['command']}");
}); });
final chatDeleteMessageNotify = emitter.on(EventType.onChatDeleteMessageNotify, (data) async { final chatDeleteMessageNotify = emitter.addListener(EventType.onChatDeleteMessageNotify, (data) async {
data = data as Map; data = data as Map;
debugPrint("onChatDeleteMessageNotify: messageID: ${data['msgID']}, deleteBy: ${data['type']}"); debugPrint("onChatDeleteMessageNotify: messageID: ${data['msgID']}, deleteBy: ${data['type']}");
}); });
final liveStreamStatusChangeListener = emitter.on(EventType.onLiveStreamStatusChanged, (data) async { final liveStreamStatusChangeListener = emitter.addListener(EventType.onLiveStreamStatusChanged, (data) async {
data = data as Map; data = data as Map;
debugPrint("onLiveStreamStatusChanged: status: ${data['status']}"); debugPrint("onLiveStreamStatusChanged: status: ${data['status']}");
}); });
final liveTranscriptionStatusChangeListener = emitter.on(EventType.onLiveTranscriptionStatus, (data) async { final liveTranscriptionStatusChangeListener = emitter.addListener(EventType.onLiveTranscriptionStatus, (data) async {
data = data as Map; data = data as Map;
debugPrint("onLiveTranscriptionStatus: status: ${data['status']}"); debugPrint("onLiveTranscriptionStatus: status: ${data['status']}");
}); });
final cloudRecordingStatusListener = emitter.on(EventType.onCloudRecordingStatus, (data) async { final cloudRecordingStatusListener = emitter.addListener(EventType.onCloudRecordingStatus, (data) async {
data = data as Map; data = data as Map;
debugPrint("onCloudRecordingStatus: status: ${data['status']}"); debugPrint("onCloudRecordingStatus: status: ${data['status']}");
ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf();
@ -382,18 +381,18 @@ class _CallScreenState extends State<CallScreen> {
} }
}); });
final liveTranscriptionMsgInfoReceivedListener = emitter.on(EventType.onLiveTranscriptionMsgInfoReceived, (data) async { final liveTranscriptionMsgInfoReceivedListener = emitter.addListener(EventType.onLiveTranscriptionMsgInfoReceived, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo'])); ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
debugPrint("onLiveTranscriptionMsgInfoReceived: content: ${messageInfo.messageContent}"); debugPrint("onLiveTranscriptionMsgInfoReceived: content: ${messageInfo.messageContent}");
}); });
final inviteByPhoneStatusListener = emitter.on(EventType.onInviteByPhoneStatus, (data) async { final inviteByPhoneStatusListener = emitter.addListener(EventType.onInviteByPhoneStatus, (data) async {
data = data as Map; data = data as Map;
debugPrint("onInviteByPhoneStatus: status: ${data['status']}, reason: ${data['reason']}"); debugPrint("onInviteByPhoneStatus: status: ${data['status']}, reason: ${data['reason']}");
}); });
final multiCameraStreamStatusChangedListener = emitter.on(EventType.onMultiCameraStreamStatusChanged, (data) async { final multiCameraStreamStatusChangedListener = emitter.addListener(EventType.onMultiCameraStreamStatusChanged, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser'])); ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
var status = data['status']; var status = data['status'];
@ -410,7 +409,7 @@ class _CallScreenState extends State<CallScreen> {
} }
}); });
final requireSystemPermission = emitter.on(EventType.onRequireSystemPermission, (data) async { final requireSystemPermission = emitter.addListener(EventType.onRequireSystemPermission, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser'])); ZoomVideoSdkUser? changedUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['changedUser']));
var permissionType = data['permissionType']; var permissionType = data['permissionType'];
@ -448,7 +447,7 @@ class _CallScreenState extends State<CallScreen> {
} }
}); });
final networkStatusChangeListener = emitter.on(EventType.onUserVideoNetworkStatusChanged, (data) async { final networkStatusChangeListener = emitter.addListener(EventType.onUserVideoNetworkStatusChanged, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? networkUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'])); ZoomVideoSdkUser? networkUser = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
@ -457,7 +456,7 @@ class _CallScreenState extends State<CallScreen> {
} }
}); });
final eventErrorListener = emitter.on( final eventErrorListener = emitter.addListener(
EventType.onError, EventType.onError,
(data) async { (data) async {
data = data as Map; data = data as Map;
@ -489,24 +488,24 @@ class _CallScreenState extends State<CallScreen> {
}, },
); );
final userRecordingConsentListener = emitter.on(EventType.onUserRecordingConsent, (data) async { final userRecordingConsentListener = emitter.addListener(EventType.onUserRecordingConsent, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkUser? user = ZoomVideoSdkUser.fromJson(jsonDecode(data['user'])); ZoomVideoSdkUser? user = ZoomVideoSdkUser.fromJson(jsonDecode(data['user']));
debugPrint('userRecordingConsentListener: user= ${user.userName}'); debugPrint('userRecordingConsentListener: user= ${user.userName}');
}); });
final callCRCDeviceStatusListener = emitter.on(EventType.onCallCRCDeviceStatusChanged, (data) async { final callCRCDeviceStatusListener = emitter.addListener(EventType.onCallCRCDeviceStatusChanged, (data) async {
data = data as Map; data = data as Map;
debugPrint('onCallCRCDeviceStatusChanged: status = ${data['status']}'); debugPrint('onCallCRCDeviceStatusChanged: status = ${data['status']}');
}); });
final originalLanguageMsgReceivedListener = emitter.on(EventType.onOriginalLanguageMsgReceived, (data) async { final originalLanguageMsgReceivedListener = emitter.addListener(EventType.onOriginalLanguageMsgReceived, (data) async {
data = data as Map; data = data as Map;
ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo'])); ZoomVideoSdkLiveTranscriptionMessageInfo? messageInfo = ZoomVideoSdkLiveTranscriptionMessageInfo.fromJson(jsonDecode(data['messageInfo']));
debugPrint("onOriginalLanguageMsgReceived: content: ${messageInfo.messageContent}"); debugPrint("onOriginalLanguageMsgReceived: content: ${messageInfo.messageContent}");
}); });
final chatPrivilegeChangedListener = emitter.on(EventType.onChatPrivilegeChanged, (data) async { final chatPrivilegeChangedListener = emitter.addListener(EventType.onChatPrivilegeChanged, (data) async {
data = data as Map; data = data as Map;
String type = data['privilege']; String type = data['privilege'];
debugPrint('chatPrivilegeChangedListener: type= $type'); debugPrint('chatPrivilegeChangedListener: type= $type');

@ -460,10 +460,6 @@ class _ConfirmLogin extends State<ConfirmLogin> {
try { try {
authenticated = await auth.authenticate( authenticated = await auth.authenticate(
localizedReason: 'Scan your fingerprint to authenticate', localizedReason: 'Scan your fingerprint to authenticate',
options: AuthenticationOptions(
useErrorDialogs: true,
stickyAuth: true,
),
authMessages: [ authMessages: [
// IOSAuthMessages( // IOSAuthMessages(
// cancelButton: 'cancel', // cancelButton: 'cancel',

@ -2,7 +2,7 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_deta
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:map_launcher/map_launcher.dart'; import 'package:map_launcher/map_launcher.dart' as mapLauncher;
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
class AvailabilityInfo extends StatelessWidget { class AvailabilityInfo extends StatelessWidget {
@ -57,11 +57,10 @@ class AvailabilityInfo extends StatelessWidget {
icon: Icon(Icons.location_on), icon: Icon(Icons.location_on),
color: Colors.red, color: Colors.red,
onPressed: () async { onPressed: () async {
await MapLauncher.showMarker( await mapLauncher.MapLauncher.marker(
mapType: MapType.google, mapLauncher.LocationCoords(double.parse(previousModel!.productLocationService[index].latitude!), double.parse(previousModel!.productLocationService[index]!.longitude!))
coords: Coords(double.parse(previousModel!.productLocationService[index].latitude!), double.parse(previousModel!.productLocationService[index]!.longitude!)),
title: previousModel!.productLocationService![index].locationDescription!,
); );
}, },
), ),
), ),

@ -13,7 +13,7 @@ import 'package:diplomaticquarterapp/widgets/app_map/google_huawei_map.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart' hide Location;
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -68,7 +68,7 @@ class _AddAddressPageState extends State<AddAddressPage> {
setState(() {}); setState(() {});
}, },
onCameraIdle: () async { onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(_latitude!, _longitude!); List<Placemark> placemarks = await Geocoding().placemarkFromCoordinates(_latitude!, _longitude!);
selectedPlace = placemarks[0]; selectedPlace = placemarks[0];
print(selectedPlace); print(selectedPlace);
}, },

@ -8,7 +8,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:maps_launcher/maps_launcher.dart'; import 'package:maps_launcher/maps_launcher.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import 'package:map_launcher/map_launcher.dart'; import 'package:map_launcher/map_launcher.dart' as mapLauncher;
import 'dart:io' show Platform; import 'dart:io' show Platform;
class pharmacyContactsPage extends StatefulWidget { class pharmacyContactsPage extends StatefulWidget {
@ -217,19 +217,23 @@ class _pharmacyContactsPageState extends State<pharmacyContactsPage> {
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
onTap: () { onTap: () async {
if (Platform.isIOS) { MapLauncher.showMarker( await mapLauncher.MapLauncher.marker(
mapType: MapType.apple, mapLauncher.LocationCoords(double.parse(latitude),
coords: Coords(double.parse(latitude), double.parse(longitude))
double.parse(longitude)), );
title: locationDescription,); // if (Platform.isIOS) { MapLauncher.showMarker(
} else { MapLauncher.showMarker( // mapType: MapType.apple,
mapType: MapType.google, // coords: Coords(double.parse(latitude),
coords: Coords(double.parse(latitude), // double.parse(longitude)),
double.parse(longitude)), // title: locationDescription,);
title: locationDescription, // } else { MapLauncher.showMarker(
// description: location.locationName, // mapType: MapType.google,
); } // coords: Coords(double.parse(latitude),
// double.parse(longitude)),
// title: locationDescription,
// // description: location.locationName,
// ); }
// MapsLauncher.launchCoordinates(double.parse(previousModel.productLocationService[index].latitude), double.parse(previousModel.productLocationService[index].longitude), previousModel.productLocationService[index].locationDescription); // MapsLauncher.launchCoordinates(double.parse(previousModel.productLocationService[index].latitude), double.parse(previousModel.productLocationService[index].longitude), previousModel.productLocationService[index].locationDescription);
}, },
// MapsLauncher.launchCoordinates( // MapsLauncher.launchCoordinates(

@ -4,7 +4,7 @@ import 'package:diplomaticquarterapp/core/model/contactus/get_hmg_locations.dart
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:map_launcher/map_launcher.dart'; import 'package:map_launcher/map_launcher.dart' as mapLauncher;
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -79,17 +79,9 @@ class HospitalLocation extends StatelessWidget {
Icons.location_on, Icons.location_on,
TranslationBase.of(context).locationa, TranslationBase.of(context).locationa,
() async { () async {
await MapLauncher.showMarker( await mapLauncher.MapLauncher.marker(
mapType: MapType.google, mapLauncher.LocationCoords(double.parse(location!.latitude!), double.parse(location!.longitude!))
coords: Coords(double.parse(location!.latitude!), double.parse(location!.longitude!)),
title: location!.locationName!,
).catchError((err) {
MapLauncher.showMarker(
mapType: Platform.isIOS ? MapType.apple : MapType.google,
coords: Coords(double.parse(location!.latitude!), double.parse(location!.longitude!)),
title: location!.locationName!,
); );
});
}, },
), ),
SizedBox(height: 10), SizedBox(height: 10),

@ -67,7 +67,7 @@ class _PickupLocationFromMapState extends State<PickupLocationFromMap> {
setState(() {}); setState(() {});
}, },
onCameraIdle: () async { onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(latitude, longitude); List<Placemark> placemarks = await Geocoding().placemarkFromCoordinates(latitude, longitude);
selectedPlace = placemarks[0]; selectedPlace = placemarks[0];
print(selectedPlace); print(selectedPlace);
}, },

@ -18,31 +18,31 @@ dependencies:
sdk: flutter sdk: flutter
webview_flutter: ^4.8.0 webview_flutter: ^4.8.0
app_links: ^6.4.0 app_links: ^7.2.1
http: ^1.4.0 http: ^1.4.0
connectivity_plus: 6.1.0 connectivity_plus: ^7.3.1
async: ^2.8.1 async: ^2.8.1
audio_wave: ^0.1.4 audio_wave: ^0.1.4
provider: ^6.0.5 provider: ^6.0.5
#Dependency Injection #Dependency Injection
get_it: ^8.0.3 get_it: ^9.3.0
# health: ^13.1.1 # health: ^13.1.1
fl_chart: ^1.0.0 fl_chart: ^1.0.0
camera: ^0.11.2 camera: ^0.12.1
permission_handler: ^12.0.0+1 permission_handler: ^13.0.2
# flutter_html: ^3.0.0-beta.2 # flutter_html: ^3.0.0-beta.2
flutter_widget_from_html: ^0.17.0 flutter_widget_from_html: ^0.17.0
# Pagnation # Pagnation
pull_to_refresh: ^2.0.0 pull_to_refresh: ^2.0.0
local_auth: ^2.1.7 local_auth: ^3.0.2
localstorage: ^6.0.0 localstorage: ^6.0.0
maps_launcher: ^3.0.0+1 maps_launcher: ^3.0.0+1
url_launcher: ^6.3.1 url_launcher: ^6.3.1
url_launcher_ios: ^6.3.2 url_launcher_ios: ^6.3.2
shared_preferences: ^2.5.3 shared_preferences: ^2.5.3
# fluttertoast: ^8.0.8 # fluttertoast: ^8.0.8
fluttertoast: ^8.2.12 fluttertoast: ^10.0.0
flutter_progress_hud: ^2.0.2 flutter_progress_hud: ^2.0.2
percent_indicator: ^4.2.3 percent_indicator: ^4.2.3
@ -68,18 +68,18 @@ dependencies:
huawei_push: ^6.14.0+300 huawei_push: ^6.14.0+300
# hijri_gregorian_calendar: # hijri_gregorian_calendar:
# path: /Users/aamir/StudioProjects/hijri_gregorian_calendar # path: /Users/aamir/StudioProjects/hijri_gregorian_calendar
hijri_gregorian_calendar: ^0.0.3 hijri_gregorian_calendar: ^0.2.0
# Qr code Scanner # Qr code Scanner
location: ^8.0.1 location: ^10.0.2
barcode_scan2: ^4.5.1 barcode_scan2: ^4.5.1
flutter_rating_bar: ^4.0.1 flutter_rating_bar: ^4.0.1
syncfusion_flutter_calendar: ^29.2.11+1 syncfusion_flutter_calendar: ^34.2.9
# timezone: 0.10.1 # timezone: 0.10.1
# SVG Images # SVG Images
flutter_svg: ^2.0.8 flutter_svg: ^2.0.8
manage_calendar_events: 2.0.3 manage_calendar_events: ^2.2.0
# icalendar_plus: ^0.0.6 # icalendar_plus: ^0.0.6
flutter_inappwebview: ^6.1.5 flutter_inappwebview: ^6.1.5
circular_countdown_timer: ^0.2.0 circular_countdown_timer: ^0.2.0
@ -91,12 +91,12 @@ dependencies:
device_calendar: ^4.3.3 device_calendar: ^4.3.3
geolocator: ^14.0.2 geolocator: ^14.0.2
geolocator_android: ^5.0.2 geolocator_android: ^5.0.2
geocoding: ^4.0.0 geocoding: ^5.0.0
jiffy: ^6.2.1 jiffy: ^6.2.1
#Flutter WebRTC #Flutter WebRTC
# screen_brightness: ^2.1.5 # screen_brightness: ^2.1.5
map_launcher: ^3.0.1 map_launcher: ^6.0.0
flutter_countdown_timer: ^4.1.0 flutter_countdown_timer: ^4.1.0
carousel_slider: ^5.0.0 carousel_slider: ^5.0.0
#Dependencies for video call implementation #Dependencies for video call implementation
@ -104,22 +104,22 @@ dependencies:
# wakelock: ^0.6.2 # wakelock: ^0.6.2
wakelock_plus: ^1.3.2 wakelock_plus: ^1.3.2
after_layout: ^1.1.0 after_layout: ^1.1.0
cached_network_image: ^3.4.1 cached_network_image: ^4.0.0
flutter_tts: ^4.2.3 flutter_tts: ^4.2.3
flutter_nfc_kit: ^3.6.0 flutter_nfc_kit: ^3.6.0
#geofencing: any #geofencing: any
speech_to_text: ^7.2.0 speech_to_text: ^7.2.0
in_app_update: ^4.2.2 in_app_update: ^5.0.0
in_app_review: ^2.0.10 in_app_review: ^2.0.10
badges: ^3.1.2 badges: ^3.1.2
youtube_player_flutter: ^9.1.0 youtube_player_flutter: ^10.0.1
# shimmer: ^3.0.0 # shimmer: ^3.0.0
# huawei_hmsavailability: ^6.11.0+301 # huawei_hmsavailability: ^6.11.0+301
gms_check: ^1.0.4 gms_check: ^1.0.4
huawei_location: ^6.11.0+301 huawei_location: ^6.11.0+301
share_plus: ^11.0.0 share_plus: ^12.0.2
auto_size_text: ^3.0.0 auto_size_text: ^3.0.0
equatable: ^2.0.3 equatable: ^2.0.3
wave: ^0.2.0 wave: ^0.2.0
@ -131,16 +131,16 @@ dependencies:
logger: ^2.0.2+1 logger: ^2.0.2+1
network_info_plus: any network_info_plus: any
flutter_zoom_videosdk: 1.12.10 flutter_zoom_videosdk: ^2.5.10
dart_jsonwebtoken: ^3.2.0 dart_jsonwebtoken: ^3.2.0
win32: ^5.5.4 win32: ^5.5.4
firebase_crashlytics: ^4.3.8 firebase_crashlytics: ^5.4.0
firebase_messaging: ^15.2.8 firebase_messaging: ^16.7.0
firebase_analytics: ^11.5.1 firebase_analytics: ^12.6.0
cloudflare_turnstile: ^3.2.0 cloudflare_turnstile: ^3.2.0
device_info_plus: ^11.5.0 device_info_plus: ^12.4.0
lottie: ^3.3.1 lottie: ^3.3.1
google_fonts: ^6.2.1 google_fonts: ^8.2.1
google_maps_place_picker_mb_v2: ^1.0.1 google_maps_place_picker_mb_v2: ^1.0.1
# vital_sign_camera: # vital_sign_camera:
@ -158,7 +158,7 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.1.5 build_runner: ^2.1.5
flutter_spm_doctor: ^0.2.0
flutter: flutter:
uses-material-design: true uses-material-design: true

Loading…
Cancel
Save