PatientApp_VIDA_Plus_3.3
haroon amjad 3 years ago
parent e50a67ea12
commit 98abc5a069

@ -5,7 +5,7 @@ import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer
import 'package:diplomaticquarterapp/services/pharmacy_services/pharmacyAddress_service.dart'; import 'package:diplomaticquarterapp/services/pharmacy_services/pharmacyAddress_service.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import '../../../locator.dart'; import '../../../locator.dart';
import '../base_view_model.dart'; import '../base_view_model.dart';

@ -25,7 +25,7 @@ import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';

@ -20,7 +20,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'cmc_location_page.dart'; import 'cmc_location_page.dart';

@ -23,7 +23,7 @@ import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';

@ -12,7 +12,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class NewHomeHealthCareStepOnePage extends StatefulWidget { class NewHomeHealthCareStepOnePage extends StatefulWidget {

@ -21,7 +21,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'location_page.dart'; import 'location_page.dart';

@ -318,7 +318,7 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
setMap(); setMap();
} else { } else {
if (await Permission.location.request().isGranted) { if (await Permission.location.request().isGranted) {
var position = await GeolocatorPlatform.instance.getCurrentPosition(desiredAccuracy: LocationAccuracy.low); var position = await GeolocatorPlatform.instance.getCurrentPosition();
currentPostion = LatLng(position.latitude, position.longitude); currentPostion = LatLng(position.latitude, position.longitude);
latitude = position.latitude; latitude = position.latitude;
longitude = position.longitude; longitude = position.longitude;
@ -327,7 +327,7 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
requestPermissions().then( requestPermissions().then(
(value) async { (value) async {
if (value[Permission.location].isGranted) { if (value[Permission.location].isGranted) {
var position = await GeolocatorPlatform.instance.getCurrentPosition(desiredAccuracy: LocationAccuracy.low); var position = await GeolocatorPlatform.instance.getCurrentPosition();
currentPostion = LatLng(position.latitude, position.longitude); currentPostion = LatLng(position.latitude, position.longitude);
latitude = position.latitude; latitude = position.latitude;
longitude = position.longitude; longitude = position.longitude;

@ -25,8 +25,8 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
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:speech_to_text/speech_recognition_error.dart'; // import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt; // import 'package:speech_to_text/speech_to_text.dart' as stt;
class SendFeedbackPage extends StatefulWidget { class SendFeedbackPage extends StatefulWidget {
final AppoitmentAllHistoryResultList appointment; final AppoitmentAllHistoryResultList appointment;
@ -49,7 +49,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
MessageType messageType = MessageType.NON; MessageType messageType = MessageType.NON;
var _currentLocaleId; var _currentLocaleId;
stt.SpeechToText speech = stt.SpeechToText(); // stt.SpeechToText speech = stt.SpeechToText();
var reconizedWord; var reconizedWord;
int selectedStatusIndex = 5; int selectedStatusIndex = 5;
var event = RobotProvider(); var event = RobotProvider();
@ -520,23 +520,23 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
openSpeechReco() async { openSpeechReco() async {
new RoboSearch(context: context).showAlertDialog(context); new RoboSearch(context: context).showAlertDialog(context);
_currentLocaleId = TranslationBase.of(AppGlobal.context).locale.languageCode; _currentLocaleId = TranslationBase.of(AppGlobal.context).locale.languageCode;
bool available = await speech.initialize(onStatus: statusListener, onError: errorListener); // bool available = await speech.initialize(onStatus: statusListener, onError: errorListener);
if (available) { // if (available) {
speech.listen( // speech.listen(
onResult: resultListener, // onResult: resultListener,
listenMode: stt.ListenMode.confirmation, // listenMode: stt.ListenMode.confirmation,
localeId: _currentLocaleId == 'en' ? 'en-US' : 'ar-SA', // localeId: _currentLocaleId == 'en' ? 'en-US' : 'ar-SA',
); // );
} else { // } else {
print("The user has denied the use of speech recognition."); // print("The user has denied the use of speech recognition.");
} // }
} }
void errorListener(SpeechRecognitionError error) { // void errorListener(SpeechRecognitionError error) {
event.setValue({"searchText": 'null'}); // event.setValue({"searchText": 'null'});
//SpeechToText.closeAlertDialog(context); // SpeechToText.closeAlertDialog(context);
print(error); // print(error);
} // }
void statusListener(String status) { void statusListener(String status) {
reconizedWord = status == 'listening' ? 'Lisening...' : 'Sorry....'; reconizedWord = status == 'listening' ? 'Lisening...' : 'Sorry....';
@ -556,14 +556,14 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
setState(() { setState(() {
messageController.text += reconizedWord + '\n'; messageController.text += reconizedWord + '\n';
RoboSearch.closeAlertDialog(context); RoboSearch.closeAlertDialog(context);
speech.stop(); // speech.stop();
}); });
} }
} }
Future<void> initSpeechState() async { Future<void> initSpeechState() async {
bool hasSpeech = await speech.initialize(onError: errorListener, onStatus: statusListener); // bool hasSpeech = await speech.initialize(onError: errorListener, onStatus: statusListener);
print(hasSpeech); // print(hasSpeech);
if (!mounted) return; // if (!mounted) return;
} }
} }

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class AddAddressPage extends StatefulWidget { class AddAddressPage extends StatefulWidget {

@ -30,9 +30,9 @@ class LocalNotification {
_initialize() { _initialize() {
var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon'); var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(onDidReceiveLocalNotification: null); // var initializationSettingsIOS = IOSInitializationSettings(onDidReceiveLocalNotification: null);
var initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS); // var initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: _onNotificationClick); // flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: _onNotificationClick);
} }
var _random = new Random(); var _random = new Random();
@ -55,11 +55,11 @@ class LocalNotification {
Future.delayed(Duration(seconds: 1)).then((result) async { Future.delayed(Duration(seconds: 1)).then((result) async {
var androidPlatformChannelSpecifics = AndroidNotificationDetails('com.hmg.local_notification', 'HMG', var androidPlatformChannelSpecifics = AndroidNotificationDetails('com.hmg.local_notification', 'HMG',
channelDescription: 'HMG', importance: Importance.max, priority: Priority.high, ticker: 'ticker', vibrationPattern: _vibrationPattern()); channelDescription: 'HMG', importance: Importance.max, priority: Priority.high, ticker: 'ticker', vibrationPattern: _vibrationPattern());
var iOSPlatformChannelSpecifics = IOSNotificationDetails(); // var iOSPlatformChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); // var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err) { // await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err) {
print(err); // print(err);
}); // });
}); });
} }
@ -84,18 +84,18 @@ class LocalNotification {
ledColor: const Color.fromARGB(255, 255, 0, 0), ledColor: const Color.fromARGB(255, 255, 0, 0),
ledOnMs: 1000, ledOnMs: 1000,
ledOffMs: 500); ledOffMs: 500);
var iOSPlatformChannelSpecifics = IOSNotificationDetails(sound: 'slow_spring_board.aiff'); // var iOSPlatformChannelSpecifics = IOSNotificationDetails(sound: 'slow_spring_board.aiff');
// /change it to be as ionic // /change it to be as ionic
var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); // var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.schedule(0, title, description, scheduledNotificationDateTime, platformChannelSpecifics); // await flutterLocalNotificationsPlugin.schedule(0, title, description, scheduledNotificationDateTime, platformChannelSpecifics);
} }
///Repeat notification every day at approximately 10:00:00 am ///Repeat notification every day at approximately 10:00:00 am
Future showDailyAtTime() async { Future showDailyAtTime() async {
var time = Time(10, 0, 0); var time = Time(10, 0, 0);
var androidPlatformChannelSpecifics = AndroidNotificationDetails('repeatDailyAtTime channel id', 'repeatDailyAtTime channel name', channelDescription: 'repeatDailyAtTime description'); var androidPlatformChannelSpecifics = AndroidNotificationDetails('repeatDailyAtTime channel id', 'repeatDailyAtTime channel name', channelDescription: 'repeatDailyAtTime description');
var iOSPlatformChannelSpecifics = IOSNotificationDetails(); // var iOSPlatformChannelSpecifics = IOSNotificationDetails();
// var platformChannelSpecifics = NotificationDetails( // var platformChannelSpecifics = NotificationDetails(
// androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); // androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
// await flutterLocalNotificationsPlugin.showDailyAtTime( // await flutterLocalNotificationsPlugin.showDailyAtTime(
@ -110,7 +110,7 @@ class LocalNotification {
Future showWeeklyAtDayAndTime() async { Future showWeeklyAtDayAndTime() async {
var time = Time(10, 0, 0); var time = Time(10, 0, 0);
var androidPlatformChannelSpecifics = AndroidNotificationDetails('show weekly channel id', 'show weekly channel name', channelDescription: 'show weekly description'); var androidPlatformChannelSpecifics = AndroidNotificationDetails('show weekly channel id', 'show weekly channel name', channelDescription: 'show weekly description');
var iOSPlatformChannelSpecifics = IOSNotificationDetails(); // var iOSPlatformChannelSpecifics = IOSNotificationDetails();
// var platformChannelSpecifics = NotificationDetails( // var platformChannelSpecifics = NotificationDetails(
// androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); // androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
// await flutterLocalNotificationsPlugin.showWeeklyAtDayAndTime( // await flutterLocalNotificationsPlugin.showWeeklyAtDayAndTime(

@ -33,9 +33,9 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart'; import 'package:flutter_tts/flutter_tts.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:speech_to_text/speech_recognition_error.dart'; // import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_recognition_result.dart'; // import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart'; // import 'package:speech_to_text/speech_to_text.dart';
class BottomBarSearch extends StatefulWidget { class BottomBarSearch extends StatefulWidget {
@override @override
@ -47,7 +47,7 @@ class _SearchBot extends State<BottomBarSearch> {
RobotProvider Provider = RobotProvider(); RobotProvider Provider = RobotProvider();
bool isLoading = false; bool isLoading = false;
bool isError = false; bool isError = false;
final SpeechToText speech = SpeechToText(); // final SpeechToText speech = SpeechToText();
String error = ''; String error = '';
String _currentLocaleId = ""; String _currentLocaleId = "";
String lastError; String lastError;
@ -112,33 +112,33 @@ class _SearchBot extends State<BottomBarSearch> {
} }
startVoiceSearch() async { startVoiceSearch() async {
speech.listen( // speech.listen(
onResult: resultListener, // onResult: resultListener,
listenFor: Duration(seconds: 10), // listenFor: Duration(seconds: 10),
localeId: _currentLocaleId, // localeId: _currentLocaleId,
onSoundLevelChange: soundLevelListener, // onSoundLevelChange: soundLevelListener,
cancelOnError: true, // cancelOnError: true,
partialResults: true, // partialResults: true,
onDevice: true, // onDevice: true,
listenMode: ListenMode.confirmation); // listenMode: ListenMode.confirmation);
} }
void resultListener(SpeechRecognitionResult result) { // void resultListener(SpeechRecognitionResult result) {
// lastWords = "${result.recognizedWords} - ${result.finalResult}"; // // lastWords = "${result.recognizedWords} - ${result.finalResult}";
//
if (result.finalResult == true) { // if (result.finalResult == true) {
// setState(() { // // setState(() {
reconizedWord = result.recognizedWords; // reconizedWord = result.recognizedWords;
//}); // //});
setState(() { // setState(() {
searchController.text = reconizedWord; // searchController.text = reconizedWord;
}); // });
Future.delayed(const Duration(seconds: 1), () { // Future.delayed(const Duration(seconds: 1), () {
_speak(reconizedWord); // _speak(reconizedWord);
}); // });
} // }
//}); // //});
} // }
Future _speak(reconizedWord) async { Future _speak(reconizedWord) async {
//await flutterTts.speak(reconizedWord); //await flutterTts.speak(reconizedWord);
@ -162,7 +162,7 @@ class _SearchBot extends State<BottomBarSearch> {
} }
Future<void> initSpeechState() async { Future<void> initSpeechState() async {
await speech.initialize(onError: errorListener, onStatus: statusListener); // await speech.initialize(onError: errorListener, onStatus: statusListener);
_currentLocaleId = _currentLocaleId =
TranslationBase.of(AppGlobal.context).locale.languageCode == 'en' TranslationBase.of(AppGlobal.context).locale.languageCode == 'en'
@ -173,11 +173,11 @@ class _SearchBot extends State<BottomBarSearch> {
// if (!mounted) return; // if (!mounted) return;
} }
void errorListener(SpeechRecognitionError error) { // void errorListener(SpeechRecognitionError error) {
//setState(() { // //setState(() {
// reconizedWord = "${error.errorMsg} - ${error.permanent}"; // // reconizedWord = "${error.errorMsg} - ${error.permanent}";
//}); // //});
} // }
void statusListener(String status) { void statusListener(String status) {
//setState(() { //setState(() {

@ -66,8 +66,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart'; import 'package:flutter_tts/flutter_tts.dart';
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:speech_to_text/speech_recognition_error.dart'; // import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt; // import 'package:speech_to_text/speech_to_text.dart' as stt;
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
class FloatingSearchButton extends StatefulWidget { class FloatingSearchButton extends StatefulWidget {
@ -83,7 +83,7 @@ class _FloatingSearchButton extends State<FloatingSearchButton> with TickerProvi
RobotProvider eventProvider = RobotProvider(); RobotProvider eventProvider = RobotProvider();
bool isLoading = false; bool isLoading = false;
bool isError = false; bool isError = false;
stt.SpeechToText speech = stt.SpeechToText(); // stt.SpeechToText speech = stt.SpeechToText();
String error = ''; String error = '';
String _currentLocaleId = ""; String _currentLocaleId = "";
String lastError; String lastError;
@ -235,18 +235,18 @@ class _FloatingSearchButton extends State<FloatingSearchButton> with TickerProvi
} }
startVoiceSearch() async { startVoiceSearch() async {
bool available = await speech.initialize(onStatus: statusListener, onError: errorListener); // bool available = await speech.initialize(onStatus: statusListener, onError: errorListener);
_currentLocaleId = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); // _currentLocaleId = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
if (available) { // if (available) {
speech.listen( // speech.listen(
onResult: resultListener, // onResult: resultListener,
//listenMode: ListenMode.confirmation, // //listenMode: ListenMode.confirmation,
localeId: _currentLocaleId == 'en' ? 'en_US' : 'ar_SA', // localeId: _currentLocaleId == 'en' ? 'en_US' : 'ar_SA',
); // );
} else { // } else {
print("The user has denied the use of speech recognition."); // print("The user has denied the use of speech recognition.");
} // }
// some time later... // some time later...
//speech.stop(); //speech.stop();
// speech.listen( // speech.listen(
@ -305,7 +305,7 @@ class _FloatingSearchButton extends State<FloatingSearchButton> with TickerProvi
isArabic = Provider.of<ProjectViewModel>(context, listen: false).isArabic; isArabic = Provider.of<ProjectViewModel>(context, listen: false).isArabic;
await requestPermissions(); await requestPermissions();
getUserData(); getUserData();
await speech.initialize(onError: errorListener, onStatus: statusListener); // await speech.initialize(onError: errorListener, onStatus: statusListener);
//initialSpeak(); //initialSpeak();
if (!mounted) return; if (!mounted) return;
@ -315,10 +315,10 @@ class _FloatingSearchButton extends State<FloatingSearchButton> with TickerProvi
// }); // });
} }
void errorListener(SpeechRecognitionError error) { // void errorListener(SpeechRecognitionError error) {
event.setValue({"searchText": 'null'}); // event.setValue({"searchText": 'null'});
RoboSearch.closeAlertDialog(context); // RoboSearch.closeAlertDialog(context);
} // }
void statusListener(String status) { void statusListener(String status) {
//setState(() { //setState(() {
@ -951,7 +951,7 @@ class _MyStatefulBuilderState extends State<MyStatefulBuilder> {
var searchText; var searchText;
static StreamSubscription<dynamic> streamSubscription; static StreamSubscription<dynamic> streamSubscription;
static var isClosed = false; static var isClosed = false;
stt.SpeechToText speech = stt.SpeechToText(); // stt.SpeechToText speech = stt.SpeechToText();
@override @override
void initState() { void initState() {
@ -1019,7 +1019,7 @@ class _MyStatefulBuilderState extends State<MyStatefulBuilder> {
TranslationBase.of(context).ok, TranslationBase.of(context).ok,
() { () {
RoboSearch.closeAlertDialog(context); RoboSearch.closeAlertDialog(context);
speech.stop(); // speech.stop();
// event.setValue({"searchText": { // event.setValue({"searchText": {
// 'isIOSFeedback':true, // 'isIOSFeedback':true,
// //

@ -13,7 +13,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker_mb/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';

Loading…
Cancel
Save