diff --git a/android/app/version.properties b/android/app/version.properties index 828b41b..0f7e8ba 100644 --- a/android/app/version.properties +++ b/android/app/version.properties @@ -1,5 +1,5 @@ -#Fri Aug 11 16:46:29 CEST 2023 -VERSION_BUILD=72 +#Thu Aug 31 16:53:49 CEST 2023 +VERSION_BUILD=89 VERSION_MAJOR=1 VERSION_MINOR=0 VERSION_PATCH=0 diff --git a/lib/Screens/Main/Home/home.dart b/lib/Screens/Main/Home/home.dart index 14bba77..b4789d2 100644 --- a/lib/Screens/Main/Home/home.dart +++ b/lib/Screens/Main/Home/home.dart @@ -79,7 +79,7 @@ class _HomeScreenState extends State { height: size.height * 0.88, child: GridView.builder( shrinkWrap: true, - gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 1), + gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 1.15), itemCount: roomsMaindetails.length, itemBuilder: (BuildContext context, int index) { return InkWell( diff --git a/lib/Screens/Main/Home/roomDetailPage.dart b/lib/Screens/Main/Home/roomDetailPage.dart index 3b921d1..a6a909b 100644 --- a/lib/Screens/Main/Home/roomDetailPage.dart +++ b/lib/Screens/Main/Home/roomDetailPage.dart @@ -129,11 +129,15 @@ class _RoomDetailPageState extends State { margin: EdgeInsets.symmetric(vertical: 8, horizontal: 8), child: Stack( children: [ - Center( - child: Text( - roomDetailDTO.devices![index].name!, - style: new TextStyle(fontSize: kDescriptionDetailSize, color: kBackgroundSecondGrey), - textAlign: TextAlign.center, + Padding( + padding: const EdgeInsets.only(bottom: 35), + child: Align( + alignment: Alignment.center, + child: Text( + roomDetailDTO.devices![index].name!, + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + textAlign: TextAlign.center, + ), ), ), @@ -150,6 +154,255 @@ class _RoomDetailPageState extends State { ], ) ), + + if(roomDetailDTO.devices![index].isTemperature!) + Positioned( + bottom: 30, + left: 0, + child: Row( + children: [ + Icon( + Icons.thermostat, + size: 20, + color: kMainColor, + ), + Text( + roomDetailDTO.devices![index].temperature.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isHumidity!) + Positioned( + bottom: 30, + left: roomDetailDTO.devices![index].isTemperature! ? 60 : 0, + child: Row( + children: [ + Icon( + Icons.water, + size: 20, + color: kMainColor, + ), + Text( + roomDetailDTO.devices![index].humidity!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isContact!) + Positioned( + bottom: 10, + right: 5, + child: Row( + children: [ + Icon( + Icons.motion_photos_on_rounded, + size: 20, + color: !roomDetailDTO.devices![index].contact! ? kMainColor : kBackgroundSecondGrey, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isOccupation!) + Positioned( + bottom: 10, + right: roomDetailDTO.devices![index].isContact! ? 20 : 5, + child: Row( + children: [ + Icon( + Icons.directions_walk, + size: 20, + color: roomDetailDTO.devices![index].occupation! ? kMainColor : kBackgroundSecondGrey, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isAirQuality!) + Positioned( + bottom: 5, + right: 20, + child: Row( + children: [ + Icon( + Icons.air, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].airQuality!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isConsumption!) + Positioned( + bottom: 5, + right: 0, + child: Row( + children: [ + Icon( + Icons.money, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].consumption!.roundToDouble().toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isCurrentPower!) + Positioned( + bottom: 5, + left: 0, + child: Row( + children: [ + Icon( + Icons.power, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].currentPower!.toStringAsFixed(2).toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isCO2!) + Positioned( + bottom: 5, + right: 5, + child: Row( + children: [ + Icon( + Icons.co2, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].cO2!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + if(roomDetailDTO.devices![index].isNoise!) + Positioned( + bottom: 5, + left: 0, + child: Row( + children: [ + Icon( + Icons.volume_down, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].noise!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isIlluminance!) + Positioned( + bottom: 5, + left: 0, + child: Row( + children: [ + Icon( + Icons.light_mode_outlined, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].illuminance!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isColorTemp!) + Positioned( + bottom: 5, + right: 5, + child: Row( + children: [ + Icon( + Icons.color_lens, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].colorTemp!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isColorXY!) + Positioned( + bottom: 5, + right: 5, + child: Row( + children: [ + Icon( + Icons.colorize_outlined, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].colorX!.toString() + ' ' + roomDetailDTO.devices![index].colorY!.toString() , + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), + + if(roomDetailDTO.devices![index].isBrightness!) + Positioned( + bottom: 5, + left: 0, + child: Row( + children: [ + Icon( + Icons.brightness_medium_rounded, + size: 20, + color: kBackgroundSecondGrey, + ), + Text( + roomDetailDTO.devices![index].brightness!.toString(), + style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey), + maxLines: 1, + ), + ], + ) + ), ], ), ), @@ -170,7 +423,7 @@ class _RoomDetailPageState extends State { boxDecorationDeviceDetail(DeviceDetailDTO deviceDetailDTO, bool isSelected) { return BoxDecoration( - color: kBackgroundLight, + color: deviceDetailDTO.isState! ? deviceDetailDTO.state! ? kMainColor : kBackgroundLight : kBackgroundLight, shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(20.0), /*image: roomMainDetailDTO.imageSource != null ? new DecorationImage( diff --git a/lib/Screens/Main/Security/security.dart b/lib/Screens/Main/Security/security.dart index 11e2460..5bdf535 100644 --- a/lib/Screens/Main/Security/security.dart +++ b/lib/Screens/Main/Security/security.dart @@ -5,6 +5,7 @@ import 'package:myhomie_app/Components/loading_common.dart'; import 'package:myhomie_app/Models/homieContext.dart'; import 'package:myhomie_app/Screens/Main/Security/alarmDetailPage.dart'; import 'package:myhomie_app/Screens/Main/Security/changeAlarmMode.dart'; +import 'package:myhomie_app/Screens/Main/Security/streamWidget.dart'; import 'package:myhomie_app/app_context.dart'; import 'package:myhomie_app/constants.dart'; import 'package:provider/provider.dart'; @@ -108,6 +109,16 @@ class _SecurityScreenState extends State { } ), Text("TODO Cameras"), + Container( + height: size.height * 0.3, + width: size.width * 0.9, + child: ImageStreamWidget( + initialImageUrl: "http://192.168.31.140:8765/picture/4/current", + ) /*VideoPlayerWidget( + videoUrl: "http://192.168.31.140:8084/", //"http://192.168.31.140:8084/", + )*/, + ), + Text("Test ?"), ], ), //), @@ -116,6 +127,7 @@ class _SecurityScreenState extends State { } } + alarmDecoration(AlarmModeDTO alarmModeDTO) { return BoxDecoration( color: alarmModeDTO.activated! && alarmModeDTO.type == AlarmType.desarmed ? Colors.white : Colors.red.withOpacity(0.6), diff --git a/lib/Screens/Main/Security/streamWidget.dart b/lib/Screens/Main/Security/streamWidget.dart new file mode 100644 index 0000000..ac5fa9b --- /dev/null +++ b/lib/Screens/Main/Security/streamWidget.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; +import 'dart:async'; + +class ImageStreamWidget extends StatefulWidget { + final String initialImageUrl; + + ImageStreamWidget({required this.initialImageUrl}); + + @override + _ImageStreamWidgetState createState() => _ImageStreamWidgetState(); +} + +class _ImageStreamWidgetState extends State { + late String currentImageUrl; + late Timer _timer; + + @override + void initState() { + super.initState(); + currentImageUrl = widget.initialImageUrl; + + // Créez un Timer pour mettre à jour l'image toutes les secondes + _timer = Timer.periodic(Duration(seconds: 1), (timer) { + updateImageUrl(); + }); + } + + void updateImageUrl() { + // Changez l'URL de l'image ici à chaque itération du timer + // Par exemple, ajoutez un timestamp pour forcer le rafraîchissement + final timestamp = DateTime.now().millisecondsSinceEpoch; + setState(() { + currentImageUrl = widget.initialImageUrl + '?timestamp=$timestamp'; + }); + } + + @override + void dispose() { + super.dispose(); + // Arrêtez le timer lorsque le widget est supprimé + _timer.cancel(); + } + + @override + Widget build(BuildContext context) { + // Affichez l'image à partir de l'URL actuelle + return Image.network(currentImageUrl); + } +} diff --git a/lib/api/swagger.yaml b/lib/api/swagger.yaml index 9be51e2..0ce93df 100644 --- a/lib/api/swagger.yaml +++ b/lib/api/swagger.yaml @@ -3667,6 +3667,9 @@ components: name: type: string nullable: true + nameForAction: + type: string + nullable: true model: type: string nullable: true diff --git a/lib/constants.dart b/lib/constants.dart index 5e2c04b..4fbe80f 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -11,6 +11,7 @@ const kBackgroundSecondGrey = Color(0xFF5b5b63); const kDetailSize = 20.0; const kDescriptionDetailSize = 15.0; +const kDescriptionSmallDetailSize = 11.0; const kMainColor = Color(0xFF308aae); /* diff --git a/mycore_api/doc/DeviceDetailDTO.md b/mycore_api/doc/DeviceDetailDTO.md index 98a73d7..2594d8e 100644 --- a/mycore_api/doc/DeviceDetailDTO.md +++ b/mycore_api/doc/DeviceDetailDTO.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **homeId** | **String** | | [optional] **description** | **String** | | [optional] **name** | **String** | | [optional] +**nameForAction** | **String** | | [optional] **model** | **String** | | [optional] **type** | [**DeviceType**](DeviceType.md) | | [optional] **status** | **bool** | | [optional] diff --git a/mycore_api/doc/DeviceSummaryDTO.md b/mycore_api/doc/DeviceSummaryDTO.md index aa5e209..15386b2 100644 --- a/mycore_api/doc/DeviceSummaryDTO.md +++ b/mycore_api/doc/DeviceSummaryDTO.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **homeId** | **String** | | [optional] **description** | **String** | | [optional] **name** | **String** | | [optional] +**nameForAction** | **String** | | [optional] **model** | **String** | | [optional] **type** | [**DeviceType**](DeviceType.md) | | [optional] **status** | **bool** | | [optional] diff --git a/mycore_api/lib/model/device_detail_dto.dart b/mycore_api/lib/model/device_detail_dto.dart index a57734a..fd65d24 100644 --- a/mycore_api/lib/model/device_detail_dto.dart +++ b/mycore_api/lib/model/device_detail_dto.dart @@ -17,6 +17,7 @@ class DeviceDetailDTO { this.homeId, this.description, this.name, + this.nameForAction, this.model, this.type, this.status, @@ -101,6 +102,8 @@ class DeviceDetailDTO { String? name; + String? nameForAction; + String? model; /// @@ -567,6 +570,7 @@ class DeviceDetailDTO { other.homeId == homeId && other.description == description && other.name == name && + other.nameForAction == nameForAction && other.model == model && other.type == type && other.status == status && @@ -649,6 +653,7 @@ class DeviceDetailDTO { (homeId == null ? 0 : homeId!.hashCode) + (description == null ? 0 : description!.hashCode) + (name == null ? 0 : name!.hashCode) + + (nameForAction == null ? 0 : nameForAction!.hashCode) + (model == null ? 0 : model!.hashCode) + (type == null ? 0 : type!.hashCode) + (status == null ? 0 : status!.hashCode) + @@ -725,7 +730,7 @@ class DeviceDetailDTO { (noise == null ? 0 : noise!.hashCode); @override - String toString() => 'DeviceDetailDTO[id=$id, homeId=$homeId, description=$description, name=$name, model=$model, type=$type, status=$status, connectionStatus=$connectionStatus, roomId=$roomId, providerId=$providerId, providerName=$providerName, lastStateDate=$lastStateDate, lastMessageDate=$lastMessageDate, battery=$battery, batteryStatus=$batteryStatus, firmwareVersion=$firmwareVersion, hardwareVersion=$hardwareVersion, port=$port, meansOfCommunications=$meansOfCommunications, createdDate=$createdDate, updatedDate=$updatedDate, lastMessage=$lastMessage, lastState=$lastState, ipAddress=$ipAddress, serviceIdentification=$serviceIdentification, manufacturerName=$manufacturerName, groupIds=$groupIds, properties=$properties, supportedOperations=$supportedOperations, isContact=$isContact, contact=$contact, isIlluminance=$isIlluminance, illuminance=$illuminance, isBrightness=$isBrightness, brightness=$brightness, isState=$isState, state=$state, isColorTemp=$isColorTemp, colorTemp=$colorTemp, isColorXY=$isColorXY, colorX=$colorX, colorY=$colorY, isOccupation=$isOccupation, occupation=$occupation, isAlarm=$isAlarm, alarm=$alarm, isWaterLeak=$isWaterLeak, waterLeak=$waterLeak, isSmoke=$isSmoke, smoke=$smoke, isVibration=$isVibration, vibration=$vibration, isAction=$isAction, action=$action, isTemperature=$isTemperature, temperature=$temperature, isHumidity=$isHumidity, humidity=$humidity, isPressure=$isPressure, pressure=$pressure, isAirQuality=$isAirQuality, airQuality=$airQuality, isFanSpeed=$isFanSpeed, fanSpeed=$fanSpeed, isFanMode=$isFanMode, fanMode=$fanMode, isConsumption=$isConsumption, consumption=$consumption, isCurrentPower=$isCurrentPower, currentPower=$currentPower, isVoltage=$isVoltage, voltage=$voltage, isLinkQuality=$isLinkQuality, linkQuality=$linkQuality, isCO2=$isCO2, cO2=$cO2, isNoise=$isNoise, noise=$noise]'; + String toString() => 'DeviceDetailDTO[id=$id, homeId=$homeId, description=$description, name=$name, nameForAction=$nameForAction, model=$model, type=$type, status=$status, connectionStatus=$connectionStatus, roomId=$roomId, providerId=$providerId, providerName=$providerName, lastStateDate=$lastStateDate, lastMessageDate=$lastMessageDate, battery=$battery, batteryStatus=$batteryStatus, firmwareVersion=$firmwareVersion, hardwareVersion=$hardwareVersion, port=$port, meansOfCommunications=$meansOfCommunications, createdDate=$createdDate, updatedDate=$updatedDate, lastMessage=$lastMessage, lastState=$lastState, ipAddress=$ipAddress, serviceIdentification=$serviceIdentification, manufacturerName=$manufacturerName, groupIds=$groupIds, properties=$properties, supportedOperations=$supportedOperations, isContact=$isContact, contact=$contact, isIlluminance=$isIlluminance, illuminance=$illuminance, isBrightness=$isBrightness, brightness=$brightness, isState=$isState, state=$state, isColorTemp=$isColorTemp, colorTemp=$colorTemp, isColorXY=$isColorXY, colorX=$colorX, colorY=$colorY, isOccupation=$isOccupation, occupation=$occupation, isAlarm=$isAlarm, alarm=$alarm, isWaterLeak=$isWaterLeak, waterLeak=$waterLeak, isSmoke=$isSmoke, smoke=$smoke, isVibration=$isVibration, vibration=$vibration, isAction=$isAction, action=$action, isTemperature=$isTemperature, temperature=$temperature, isHumidity=$isHumidity, humidity=$humidity, isPressure=$isPressure, pressure=$pressure, isAirQuality=$isAirQuality, airQuality=$airQuality, isFanSpeed=$isFanSpeed, fanSpeed=$fanSpeed, isFanMode=$isFanMode, fanMode=$fanMode, isConsumption=$isConsumption, consumption=$consumption, isCurrentPower=$isCurrentPower, currentPower=$currentPower, isVoltage=$isVoltage, voltage=$voltage, isLinkQuality=$isLinkQuality, linkQuality=$linkQuality, isCO2=$isCO2, cO2=$cO2, isNoise=$isNoise, noise=$noise]'; Map toJson() { final json = {}; @@ -749,6 +754,11 @@ class DeviceDetailDTO { } else { json[r'name'] = null; } + if (this.nameForAction != null) { + json[r'nameForAction'] = this.nameForAction; + } else { + json[r'nameForAction'] = null; + } if (this.model != null) { json[r'model'] = this.model; } else { @@ -1145,6 +1155,7 @@ class DeviceDetailDTO { homeId: mapValueOfType(json, r'homeId'), description: mapValueOfType(json, r'description'), name: mapValueOfType(json, r'name'), + nameForAction: mapValueOfType(json, r'nameForAction'), model: mapValueOfType(json, r'model'), type: DeviceType.fromJson(json[r'type']), status: mapValueOfType(json, r'status'), diff --git a/mycore_api/lib/model/device_summary_dto.dart b/mycore_api/lib/model/device_summary_dto.dart index bcd5ca4..3d584b3 100644 --- a/mycore_api/lib/model/device_summary_dto.dart +++ b/mycore_api/lib/model/device_summary_dto.dart @@ -17,6 +17,7 @@ class DeviceSummaryDTO { this.homeId, this.description, this.name, + this.nameForAction, this.model, this.type, this.status, @@ -38,6 +39,8 @@ class DeviceSummaryDTO { String? name; + String? nameForAction; + String? model; /// @@ -108,6 +111,7 @@ class DeviceSummaryDTO { other.homeId == homeId && other.description == description && other.name == name && + other.nameForAction == nameForAction && other.model == model && other.type == type && other.status == status && @@ -127,6 +131,7 @@ class DeviceSummaryDTO { (homeId == null ? 0 : homeId!.hashCode) + (description == null ? 0 : description!.hashCode) + (name == null ? 0 : name!.hashCode) + + (nameForAction == null ? 0 : nameForAction!.hashCode) + (model == null ? 0 : model!.hashCode) + (type == null ? 0 : type!.hashCode) + (status == null ? 0 : status!.hashCode) + @@ -140,7 +145,7 @@ class DeviceSummaryDTO { (batteryStatus == null ? 0 : batteryStatus!.hashCode); @override - String toString() => 'DeviceSummaryDTO[id=$id, homeId=$homeId, description=$description, name=$name, model=$model, type=$type, status=$status, connectionStatus=$connectionStatus, roomId=$roomId, providerId=$providerId, providerName=$providerName, lastStateDate=$lastStateDate, lastMessageDate=$lastMessageDate, battery=$battery, batteryStatus=$batteryStatus]'; + String toString() => 'DeviceSummaryDTO[id=$id, homeId=$homeId, description=$description, name=$name, nameForAction=$nameForAction, model=$model, type=$type, status=$status, connectionStatus=$connectionStatus, roomId=$roomId, providerId=$providerId, providerName=$providerName, lastStateDate=$lastStateDate, lastMessageDate=$lastMessageDate, battery=$battery, batteryStatus=$batteryStatus]'; Map toJson() { final json = {}; @@ -164,6 +169,11 @@ class DeviceSummaryDTO { } else { json[r'name'] = null; } + if (this.nameForAction != null) { + json[r'nameForAction'] = this.nameForAction; + } else { + json[r'nameForAction'] = null; + } if (this.model != null) { json[r'model'] = this.model; } else { @@ -245,6 +255,7 @@ class DeviceSummaryDTO { homeId: mapValueOfType(json, r'homeId'), description: mapValueOfType(json, r'description'), name: mapValueOfType(json, r'name'), + nameForAction: mapValueOfType(json, r'nameForAction'), model: mapValueOfType(json, r'model'), type: DeviceType.fromJson(json[r'type']), status: mapValueOfType(json, r'status'), diff --git a/pubspec.lock b/pubspec.lock index f020723..b57895a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5dce45a06d386358334eb1689108db6455d90ceb0d75848d5f4819283d4ee2b8" + sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" analyzer: dependency: transitive description: @@ -177,6 +177,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + csslib: + dependency: transitive + description: + name: csslib + sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" cupertino_icons: dependency: "direct main" description: @@ -237,10 +245,10 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "2e9324f719e90200dc7d3c4f5d2abc26052f9f2b995d3b6626c47a0dfe1c8192" + sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389 url: "https://pub.dev" source: hosted - version: "2.15.0" + version: "2.15.1" firebase_core_platform_interface: dependency: transitive description: @@ -253,34 +261,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa" + sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973" url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "8ac91d83a028eef050de770f1dc98421e215714d245f34de7b154d436676fbd0" + sha256: db4a38be54fd84849c21be1ae1b44f0d4637eec1069bf5c49ea95e81f582bbc0 url: "https://pub.dev" source: hosted - version: "14.6.5" + version: "14.6.6" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: b2995e3640efb646e9ebf0e2fa50dea84895f0746a31d7e3af0e5e009a533a1a + sha256: "164119eed47ff19284e28bea9165a03da110c56ea09dd996622cfccad14d0efd" url: "https://pub.dev" source: hosted - version: "4.5.4" + version: "4.5.5" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "5d8446a28339124a2cb4f57a6ca454a3aca7d0c5c0cdfa5707afb192f7c830a7" + sha256: "6196d20731733834d7afb175c4345be57ddbd5daebca83cd52a430d62c2279fe" url: "https://pub.dev" source: hosted - version: "3.5.4" + version: "3.5.5" fixnum: dependency: transitive description: @@ -352,6 +360,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.1" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.dev" + source: hosted + version: "0.15.4" http: dependency: transitive description: @@ -684,6 +700,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + timer_builder: + dependency: "direct main" + description: + name: timer_builder + sha256: "67c5653a8d9f6ce62fe9121e520736e9da74418a919fe1c0e181b5d2627dbc4a" + url: "https://pub.dev" + source: hosted + version: "2.0.0" timing: dependency: transitive description: @@ -740,6 +764,46 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + video_player: + dependency: "direct main" + description: + name: video_player + sha256: "3fd106c74da32f336dc7feb65021da9b0207cb3124392935f1552834f7cce822" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + video_player_android: + dependency: transitive + description: + name: video_player_android + sha256: f338a5a396c845f4632959511cad3542cdf3167e1b2a1a948ef07f7123c03608 + url: "https://pub.dev" + source: hosted + version: "2.4.9" + video_player_avfoundation: + dependency: transitive + description: + name: video_player_avfoundation + sha256: f5f5b7fe8c865be8a57fe80c2dca130772e1db775b7af4e5c5aa1905069cfc6c + url: "https://pub.dev" + source: hosted + version: "2.4.9" + video_player_platform_interface: + dependency: transitive + description: + name: video_player_platform_interface + sha256: "1ca9acd7a0fb15fb1a990cb554e6f004465c6f37c99d2285766f08a4b2802988" + url: "https://pub.dev" + source: hosted + version: "6.2.0" + video_player_web: + dependency: transitive + description: + name: video_player_web + sha256: "44ce41424d104dfb7cf6982cc6b84af2b007a24d126406025bf40de5d481c74c" + url: "https://pub.dev" + source: hosted + version: "2.0.16" watcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0faf3c5..29b4b51 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,7 +43,9 @@ dependencies: cupertino_icons: ^1.0.5 auto_size_text: ^3.0.0 firebase_core: ^2.15.0 - firebase_messaging: ^14.6.5 + firebase_messaging: ^14.6.6 + video_player: ^2.7.0 + timer_builder: ^2.0.0 dev_dependencies: flutter_test: