sent 8.7 version to live

appointment_merge
Faiz Hashmi 2 months ago
parent a459fb7cca
commit 17f79ed09d

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import 'package:hmg_qline/models/ticket_model.dart';
import 'package:hmg_qline/utilities/enums.dart';
bool useTestIP = false;
@ -106,7 +107,7 @@ class AppConstants {
static String testIP = '12.4.5.1'; // projectID.QlineType.ScreenType.AnyNumber (1 to 10)
static int thresholdForListUI = 3;
static double currentBuildVersion = 8.6;
static double currentBuildVersion = 8.7;
static double clearLogsHoursThreshold = 48;
}
@ -171,327 +172,55 @@ class CacheConstants {
// }
class MockJsonRepo {
static Map<String, Object> globalConfigurationMockResponse = {
"id": 1,
"configType": 2,
"description": "Main Kiosk Config",
"counterStart": 1,
"counterEnd": 10,
"concurrentCallDelaySec": 5,
"voiceType": 1,
"voiceTypeText": "Standard Voice",
"screenLanguage": 1,
"screenLanguageText": "English",
"textDirection": 1,
"voiceLanguage": 1,
"voiceLanguageText": "English",
"screenMaxDisplayPatients": 8,
"isNotiReq": true,
"prioritySMS": 1,
"priorityWhatsApp": 2,
"priorityEmail": 3,
"ticketNoText": "Ticket Number",
"pleaseVisitCounterText": "Please Visit Counter",
"counterText": "Counter",
"roomText": "Room",
"roomNo": 101,
"isRoomNoRequired": true,
"queueNoText": "Queue Number",
"callForText": "Call For",
"currentServeText": "Current Serve",
"maxText": "Max Temp",
"minText": "Min Temp",
"nextPrayerText": "Next Prayer",
"weatherText": "Weather",
"fajarText": "Fajar",
"dhuhrText": "Dhuhr",
"asarText": "Asar",
"maghribText": "Maghrib",
"ishaText": "Isha",
"isActive": true,
"createdBy": 101,
"createdOn": "2025-07-15T08:00:00Z",
"editedBy": 102,
"editedOn": "2025-07-15T10:00:00Z",
"isToneReq": false,
"isVoiceReq": false,
"orientationType": 1,
"isTurnOn": true,
"waitingAreaType": 1,
"gender": 1,
"isWeatherReq": true,
"isPrayerTimeReq": true,
"isRssFeedReq": true,
"qType": 1,
"screenType": 1,
"projectID": 123,
"projectLatitude": 24.722136,
"projectLongitude": 46.774303,
"cityKey": 999,
"kioskQueue": [
{"id": 1, "name": "General Queue", "code": "GQ", "isActive": true},
{"id": 2, "name": "VIP Queue", "code": "VIP", "isActive": true}
],
"kioskConfig": [
{"id": 1, "languageCode": "en", "languageName": "English", "isDefault": true},
{"id": 2, "languageCode": "ar", "languageName": "Arabic", "isDefault": false}
]
};
static List<Map<String, Object>> mockPatientTicketResponse = [
{
"qType": 1,
"screenType": 2,
"connectionID": "abc-123-connection",
"data": [
{
"id": 101,
"patientID": 202,
"laB_QGroupID": 303,
"queueNo": "A13",
"counterBatchNo": 1,
"calledBy": 404,
"calledOn": "2025-07-15T08:30:00Z",
"servedOn": "2025-07-15T08:45:00Z",
"patientName": "John Doe",
"mobileNo": "+966500000000",
"patientEmail": "john@example.com",
"preferredLang": 1,
"ticketNoText": "Ticket No",
"pleaseVisitCounterText": "Please Visit Counter",
"patientGender": 1,
"roomNo": "R2",
"isActive": true,
"createdBy": 999,
"editedBy": 1000,
"editedOn": "2025-07-15T08:10:00Z",
"createdOn": "2025-07-15T08:00:00Z",
"doctorNameN": "Dr. Smith",
"callType": 2,
"queueNoM": "B45",
"callNoStr": "Call #1001",
"isQueue": true,
"isToneReq": true,
"isVoiceReq": true,
"orientationType ": 1,
"isTurnOn": true,
"concurrentCallDelaySec": 3,
"crTypeAckIP": "192.168.1.100",
"voiceLanguage": 1,
"voiceLanguageText": "English",
"vitalSignText": "Vital Sign",
"doctorText": "Doctor",
"procedureText": "Procedure",
"vaccinationText": "Vaccination",
"nebulizationText": "Nebulization",
"callForVitalSignText": "Calling for Vital Sign",
"callForDoctorText": "Calling for Doctor",
"callForProcedureText": "Calling for Procedure",
"callForVaccinationText": "Calling for Vaccination",
"callForNebulizationText": "Calling for Nebulization",
"roomText": "Room",
"queueNoText": "Queue No",
"callForText": "Call For"
},
{
"id": 101,
"patientID": 202,
"laB_QGroupID": 303,
"queueNo": "B21",
"counterBatchNo": 1,
"calledBy": 404,
"calledOn": "2025-07-15T08:30:00Z",
"servedOn": "2025-07-15T08:45:00Z",
"patientName": "John Doe",
"mobileNo": "+966500000000",
"patientEmail": "john@example.com",
"preferredLang": 1,
"ticketNoText": "Ticket No",
"pleaseVisitCounterText": "Please Visit Counter",
"patientGender": 1,
"roomNo": "R3",
"isActive": true,
"createdBy": 999,
"editedBy": 1000,
"editedOn": "2025-07-15T08:10:00Z",
"createdOn": "2025-07-15T08:00:00Z",
"doctorNameN": "Dr. Smith",
"callType": 3,
"queueNoM": "B45",
"callNoStr": "Call #1001",
"isQueue": true,
"isToneReq": true,
"isVoiceReq": true,
"orientationType": 1,
"isTurnOn": true,
"concurrentCallDelaySec": 3,
"crTypeAckIP": "192.168.1.100",
"voiceLanguage": 1,
"voiceLanguageText": "English",
"vitalSignText": "Vital Sign",
"doctorText": "Doctor",
"procedureText": "Procedure",
"vaccinationText": "Vaccination",
"nebulizationText": "Nebulization",
"callForVitalSignText": "Calling for Vital Sign",
"callForDoctorText": "Calling for Doctor",
"callForProcedureText": "Calling for Procedure",
"callForVaccinationText": "Calling for Vaccination",
"callForNebulizationText": "Calling for Nebulization",
"roomText": "Room",
"queueNoText": "Queue No",
"callForText": "Call For"
},
{
"id": 101,
"patientID": 202,
"laB_QGroupID": 303,
"queueNo": "C07",
"counterBatchNo": 1,
"calledBy": 404,
"calledOn": "2025-07-15T08:30:00Z",
"servedOn": "2025-07-15T08:45:00Z",
"patientName": "John Doe",
"mobileNo": "+966500000000",
"patientEmail": "john@example.com",
"preferredLang": 1,
"ticketNoText": "Ticket No",
"pleaseVisitCounterText": "Please Visit Counter",
"patientGender": 1,
"roomNo": "R4",
"isActive": true,
"createdBy": 999,
"editedBy": 1000,
"editedOn": "2025-07-15T08:10:00Z",
"createdOn": "2025-07-15T08:00:00Z",
"doctorNameN": "Dr. Smith",
"callType": 4,
"queueNoM": "B45",
"callNoStr": "Call #1001",
"isQueue": true,
"isToneReq": true,
"isVoiceReq": true,
"orientationType": 1,
"isTurnOn": true,
"concurrentCallDelaySec": 3,
"crTypeAckIP": "192.168.1.100",
"voiceLanguage": 1,
"voiceLanguageText": "English",
"vitalSignText": "Vital Sign",
"doctorText": "Doctor",
"procedureText": "Procedure",
"vaccinationText": "Vaccination",
"nebulizationText": "Nebulization",
"callForVitalSignText": "Calling for Vital Sign",
"callForDoctorText": "Calling for Doctor",
"callForProcedureText": "Calling for Procedure",
"callForVaccinationText": "Calling for Vaccination",
"callForNebulizationText": "Calling for Nebulization",
"roomText": "Room",
"queueNoText": "Queue No",
"callForText": "Call For"
},
{
"id": 101,
"patientID": 202,
"laB_QGroupID": 303,
"queueNo": "D11",
"counterBatchNo": 1,
"calledBy": 404,
"calledOn": "2025-07-15T08:30:00Z",
"servedOn": "2025-07-15T08:45:00Z",
"patientName": "John Doe",
"mobileNo": "+966500000000",
"patientEmail": "john@example.com",
"preferredLang": 1,
"ticketNoText": "Ticket No",
"pleaseVisitCounterText": "Please Visit Counter",
"patientGender": 1,
"roomNo": "R5",
"isActive": true,
"createdBy": 999,
"editedBy": 1000,
"editedOn": "2025-07-15T08:10:00Z",
"createdOn": "2025-07-15T08:00:00Z",
"doctorNameN": "Dr. Smith",
"callType": 5,
"queueNoM": "B45",
"callNoStr": "Call #1001",
"isQueue": true,
"isToneReq": true,
"isVoiceReq": true,
"orientationType": 1,
"isTurnOn": true,
"concurrentCallDelaySec": 3,
"crTypeAckIP": "192.168.1.100",
"voiceLanguage": 1,
"voiceLanguageText": "English",
"vitalSignText": "Vital Sign",
"doctorText": "Doctor",
"procedureText": "Procedure",
"vaccinationText": "Vaccination",
"nebulizationText": "Nebulization",
"callForVitalSignText": "Calling for Vital Sign",
"callForDoctorText": "Calling for Doctor",
"callForProcedureText": "Calling for Procedure",
"callForVaccinationText": "Calling for Vaccination",
"callForNebulizationText": "Calling for Nebulization",
"roomText": "Room",
"queueNoText": "Queue No",
"callForText": "Call For"
},
{
"id": 101,
"patientID": 202,
"laB_QGroupID": 303,
"queueNo": "E20",
"counterBatchNo": 1,
"calledBy": 404,
"calledOn": "2025-07-15T08:30:00Z",
"servedOn": "2025-07-15T08:45:00Z",
"patientName": "John Doe",
"mobileNo": "+966500000000",
"patientEmail": "john@example.com",
"preferredLang": 1,
"ticketNoText": "Ticket No",
"pleaseVisitCounterText": "Please Visit Counter",
"patientGender": 1,
"roomNo": "R6",
"isActive": true,
"createdBy": 999,
"editedBy": 1000,
"editedOn": "2025-07-15T08:10:00Z",
"createdOn": "2025-07-15T08:00:00Z",
"doctorNameN": "Dr. Smith",
"callType": 6,
"queueNoM": "B45",
"callNoStr": "Call #1001",
"isQueue": true,
"isToneReq": true,
"isVoiceReq": true,
"orientationType": 1,
"isTurnOn": true,
"concurrentCallDelaySec": 3,
"crTypeAckIP": "192.168.1.100",
"voiceLanguage": 1,
"voiceLanguageText": "English",
"vitalSignText": "Vital Sign",
"doctorText": "Doctor",
"procedureText": "Procedure",
"vaccinationText": "Vaccination",
"nebulizationText": "Nebulization",
"callForVitalSignText": "Calling for Vital Sign",
"callForDoctorText": "Calling for Doctor",
"callForProcedureText": "Calling for Procedure",
"callForVaccinationText": "Calling for Vaccination",
"callForNebulizationText": "Calling for Nebulization",
"roomText": "Room",
"queueNoText": "Queue No",
"callForText": "Call For"
}
]
}
];
static TicketData ticket = TicketData(
id: 189805,
patientID: 4292695,
laBQGroupID: null,
queueNo: 'W-T-4',
counterBatchNo: null,
calledBy: null,
calledOn: null,
servedOn: null,
patientName: null,
mobileNo: '0598544522',
patientEmail: 'munira.ali@hotmail.com',
preferredLang: 2,
voiceLanguageEnum: LanguageEnum.arabic,
ticketNoText: 'رقم التذكرة',
postVoiceText: 'التوجه الى غرفة قياس العلامات الحيوية',
patientGender: 2,
roomNo: 'D 12',
isActive: null,
createdBy: null,
editedBy: null,
editedOn: DateTime.parse('2025-08-18 15:09:03.633'),
createdOn: DateTime.parse('2025-08-18 15:06:07.363'),
doctorNameN: null,
callTypeEnum: CallTypeEnum.doctor,
queueNoM: 'W-T-4',
callNoStr: 'W_T-4',
isQueue: false,
isToneReq: false,
isVoiceReq: false,
orientationType: 0,
isTurnOn: false,
concurrentCallDelaySec: 0,
crTypeAckIP: null,
voiceLanguageText: 'English',
vitalSignText: 'علامة حيوية',
doctorText: 'الطبيب',
procedureText: 'الاجراءات',
vaccinationText: 'المطاعيم',
nebulizationText: 'التنفس',
callForVitalSignText: 'التوجه الى غرفة قياس العلامات الحيوية',
callForDoctorText: 'التوجه الى الطبيب',
callForProcedureText: 'التوجه الى غرفة الإجراءات',
callForVaccinationText: 'التوجه الى غرفة المطاعيم',
callForNebulizationText: 'التوجه الى غرفة التنفس',
roomText: 'غرفة',
queueNoText: 'رقم الانتظار',
callForText: 'التوجه الى',
);
}
// RAW DATA:

@ -47,6 +47,6 @@ class CacheServiceImp implements CacheService {
@override
Future<void> setLastTimeLogsCleared({required int lastTimeCleared}) async {
await preferencesInstance.setInt(CacheConstants.lastTimeUpdated, lastTimeCleared);
await preferencesInstance.setString(CacheConstants.lastTimeUpdated, lastTimeCleared.toString());
}
}

@ -15,7 +15,7 @@ abstract class TextToSpeechService {
bool isMute = false,
});
Future<void> speechTextTest(String test);
Future<void> speechTextTest(TicketData ticket);
void listenToTextToSpeechEvents({required Function() onVoiceCompleted});
}
@ -28,23 +28,118 @@ class TextToSpeechServiceImp implements TextToSpeechService {
double volume = 1.0;
double pitch = 0.6;
double rate = 0.2;
double speech = 0.4;
@override
Future<void> speechTextTest(String test) async {
log("lang: ${await textToSpeechInstance.areLanguagesInstalled(["en", "ar"])}");
log("getDefaultEngine: ${await textToSpeechInstance.getDefaultEngine}");
log("getEngines: ${await textToSpeechInstance.getEngines}");
try {
await textToSpeechInstance.setLanguage(LanguageEnum.english.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
Future<void> speechTextTest(TicketData ticket) async {
const ttsGoogleEngine = 'com.google.android.tts';
LanguageEnum langEnum = ticket.voiceLanguageEnum;
List engines = await textToSpeechInstance.getEngines;
if (engines.contains(ttsGoogleEngine)) {
await textToSpeechInstance.setEngine(ttsGoogleEngine);
}
textToSpeechInstance.setVolume(1.0);
textToSpeechInstance.setSpeechRate(speech);
if (langEnum == LanguageEnum.arabic) {
try {
await textToSpeechInstance.setLanguage(LanguageEnum.arabic.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
}
} else if (langEnum == LanguageEnum.english) {
try {
await textToSpeechInstance.setLanguage(LanguageEnum.english.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
}
}
textToSpeechInstance.setSpeechRate(0.37);
textToSpeechInstance.setPitch(0.85);
String preVoice = ticket.ticketNoText;
String postVoice = ticket.postVoiceText;
if (preVoice.isNotEmpty) {
preVoice = '$preVoice..';
}
String ticketNo = ticket.queueNo!.trim().toString();
await textToSpeechInstance.speak(test);
log("areLanguagesInstalled: ${await textToSpeechInstance.areLanguagesInstalled(["en-US", "ar-SA"])}");
log("lang: $langEnum");
log("preVoice: $preVoice");
log("postVoice: $postVoice");
log("ticketNo: $ticketNo");
String patientAlpha = "";
String patientNumeric = "";
String clinicName = "";
bool isClinicNameAdded = (ticket.queueNo != ticket.callNoStr);
if (isClinicNameAdded) {
var queueNo = "";
var clinic = ticketNo.split(" ");
if (clinic.length > 1) {
clinicName = clinic[0];
queueNo = clinic[1];
} else {
queueNo = ticketNo;
}
var queueNoArray = queueNo.split("-");
if (queueNoArray.length > 2) {
patientAlpha = "${queueNoArray[0]} .. ${queueNoArray[1]}";
patientNumeric = queueNoArray[2];
} else {
patientAlpha = queueNoArray[0];
patientNumeric = queueNoArray[1];
}
} else {
var queueNoArray = ticketNo.split("-");
if (queueNoArray.length > 2) {
patientAlpha = "${queueNoArray[0]} .. ${queueNoArray[1]}";
patientNumeric = queueNoArray[2];
} else {
patientAlpha = queueNoArray[0];
patientNumeric = queueNoArray[1];
}
}
patientAlpha = patientAlpha.split('').join(' .. ');
String roomNo = "";
log("I will now all this:{ $preVoice .. $clinicName .. $patientAlpha .. $patientNumeric .. $postVoice $roomNo } ");
if (langEnum == LanguageEnum.english) {
await textToSpeechInstance.speak("$preVoice .. $clinicName .. $patientAlpha .. $patientNumeric .. $postVoice $roomNo");
return;
}
if (isNeedToBreakVoiceForArabic) {
await textToSpeechInstance.awaitSpeakCompletion(true);
isSpeechCompleted = false;
if (preVoice.isNotEmpty) {
await textToSpeechInstance.speak("$preVoice ");
}
try {
await textToSpeechInstance.setLanguage(LanguageEnum.english.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
}
await textToSpeechInstance.speak("$patientAlpha .. $patientNumeric");
try {
await textToSpeechInstance.setLanguage(langEnum.enumToString());
} catch (e) {
log("error setting language langEnum: ${e.toString()}");
}
await textToSpeechInstance.speak("$postVoice $roomNo").whenComplete(() {
isSpeechCompleted = true;
});
} else {
await textToSpeechInstance.speak("$preVoice .. $clinicName .. $patientAlpha .. $patientNumeric .. $postVoice $roomNo");
}
}
@override
@ -53,6 +148,7 @@ class TextToSpeechServiceImp implements TextToSpeechService {
required GlobalConfigurationsModel globalConfigurationsModel,
bool isMute = false,
}) async {
log("ticketdata i got: ${ticket.ticketModel.toString()}");
const ttsGoogleEngine = 'com.google.android.tts';
LanguageEnum langEnum = ticket.ticketModel!.voiceLanguageEnum;
List engines = await textToSpeechInstance.getEngines;
@ -70,15 +166,13 @@ class TextToSpeechServiceImp implements TextToSpeechService {
await textToSpeechInstance.setLanguage(LanguageEnum.arabic.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
} // textToSpeechInstance.setSpeechRate(0.45);
// textToSpeechInstance.setPitch(0.9);
}
} else if (langEnum == LanguageEnum.english) {
try {
await textToSpeechInstance.setLanguage(LanguageEnum.english.enumToString());
} catch (e) {
log("error setting language english: ${e.toString()}");
} // textToSpeechInstance.setSpeechRate(0.37);
// textToSpeechInstance.setPitch(0.85);
}
}
String preVoice = ticket.ticketModel!.ticketNoText;
String postVoice = '';
@ -98,8 +192,7 @@ class TextToSpeechServiceImp implements TextToSpeechService {
String ticketNo = ticket.ticketModel!.queueNo!.trim().toString();
log("lang: ${await textToSpeechInstance.areLanguagesInstalled(["en-US", "ar-SA"])}");
log("areLanguagesInstalled: ${await textToSpeechInstance.areLanguagesInstalled(["en-US", "ar-SA"])}");
log("lang: $langEnum");
log("preVoice: $preVoice");
log("postVoice: $postVoice");

@ -4,6 +4,16 @@ enum ViewState {
error,
}
enum CallTypeEnum {
vitalSign, // 1
doctor, // 2
procedure, // 3
vaccination, // 4
nebulization, // 5
none, // 6
}
enum ScreenOrientationEnum {
portraitUp, // 1
portraitDown, // 2
@ -43,3 +53,5 @@ enum LogTypeEnum {
data,
error,
}

@ -154,7 +154,6 @@ extension LanguageEnumToString on LanguageEnum {
}
}
enum CallTypeEnum { vitalSign, doctor, procedure, vaccination, nebulization, none }
extension XCallType on CallTypeEnum {
Color getColorByCallType() {

@ -192,7 +192,8 @@ class QueuingViewModel extends ChangeNotifier {
}
Future<void> testSpeech() async {
textToSpeechService.speechTextTest("Ticket Number ... ABC One Tow Three.. Please visit Doctor.");
textToSpeechService.speechTextTest(MockJsonRepo.ticket);
}
Future<void> callTicketOnScreen({required TicketData? ticketData}) async {

@ -274,6 +274,11 @@ class ScreenConfigViewModel extends ChangeNotifier {
notifyListeners();
return;
}
final namazTime = prayersWidgetModel.fajr!.toFormattedDateTimeFromInt();
nextPrayerToShowWithTime = "${globalConfigurationsModel.fajarText} at $namazTime";
notifyListeners();
return;
}
int counter = 0;
@ -308,13 +313,15 @@ class ScreenConfigViewModel extends ChangeNotifier {
// At midnight, update weather and prayer details if required
if (now.day != lastChecked.day) {
if (globalConfigurationsModel.isWeatherReq) {
await getWeatherDetailsFromServer();
}
if (globalConfigurationsModel.isPrayerTimeReq) {
await getPrayerDetailsFromServer();
if (now.difference(now.copyWith(hour: 0, minute: 0, second: 0, millisecond: 0, microsecond: 0)).inMinutes >= 5) {
if (globalConfigurationsModel.isWeatherReq) {
await getWeatherDetailsFromServer();
}
if (globalConfigurationsModel.isPrayerTimeReq) {
await getPrayerDetailsFromServer();
}
lastChecked = now;
}
lastChecked = now;
}
getNextPrayerToShow();

@ -61,10 +61,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.19.0"
version: "1.18.0"
connectivity_plus:
dependency: "direct main"
description:
@ -268,18 +268,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.7"
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.8"
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
@ -564,7 +564,7 @@ packages:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
version: "0.0.99"
source_span:
dependency: transitive
description:
@ -593,10 +593,10 @@ packages:
dependency: transitive
description:
name: stack_trace
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.11.1"
stream_channel:
dependency: transitive
description:
@ -609,10 +609,10 @@ packages:
dependency: transitive
description:
name: string_scanner
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.2.0"
synchronized:
dependency: transitive
description:
@ -633,10 +633,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.3"
version: "0.7.2"
tuple:
dependency: transitive
description:
@ -697,10 +697,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev"
source: hosted
version: "14.3.0"
version: "14.2.5"
wakelock_plus:
dependency: "direct main"
description:

Loading…
Cancel
Save