Wip camera test + name for action update

This commit is contained in:
Thomas Fransolet 2023-08-31 16:55:21 +02:00
parent bcfef44caa
commit e63b2a0715
13 changed files with 432 additions and 24 deletions

View File

@ -1,5 +1,5 @@
#Fri Aug 11 16:46:29 CEST 2023 #Thu Aug 31 16:53:49 CEST 2023
VERSION_BUILD=72 VERSION_BUILD=89
VERSION_MAJOR=1 VERSION_MAJOR=1
VERSION_MINOR=0 VERSION_MINOR=0
VERSION_PATCH=0 VERSION_PATCH=0

View File

@ -79,7 +79,7 @@ class _HomeScreenState extends State<HomeScreen> {
height: size.height * 0.88, height: size.height * 0.88,
child: GridView.builder( child: GridView.builder(
shrinkWrap: true, shrinkWrap: true,
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 1), gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 1.15),
itemCount: roomsMaindetails.length, itemCount: roomsMaindetails.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return InkWell( return InkWell(

View File

@ -129,11 +129,15 @@ class _RoomDetailPageState extends State<RoomDetailPage> {
margin: EdgeInsets.symmetric(vertical: 8, horizontal: 8), margin: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
child: Stack( child: Stack(
children: [ children: [
Center( Padding(
child: Text( padding: const EdgeInsets.only(bottom: 35),
roomDetailDTO.devices![index].name!, child: Align(
style: new TextStyle(fontSize: kDescriptionDetailSize, color: kBackgroundSecondGrey), alignment: Alignment.center,
textAlign: TextAlign.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<RoomDetailPage> {
], ],
) )
), ),
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<RoomDetailPage> {
boxDecorationDeviceDetail(DeviceDetailDTO deviceDetailDTO, bool isSelected) { boxDecorationDeviceDetail(DeviceDetailDTO deviceDetailDTO, bool isSelected) {
return BoxDecoration( return BoxDecoration(
color: kBackgroundLight, color: deviceDetailDTO.isState! ? deviceDetailDTO.state! ? kMainColor : kBackgroundLight : kBackgroundLight,
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(20.0), borderRadius: BorderRadius.circular(20.0),
/*image: roomMainDetailDTO.imageSource != null ? new DecorationImage( /*image: roomMainDetailDTO.imageSource != null ? new DecorationImage(

View File

@ -5,6 +5,7 @@ import 'package:myhomie_app/Components/loading_common.dart';
import 'package:myhomie_app/Models/homieContext.dart'; import 'package:myhomie_app/Models/homieContext.dart';
import 'package:myhomie_app/Screens/Main/Security/alarmDetailPage.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/changeAlarmMode.dart';
import 'package:myhomie_app/Screens/Main/Security/streamWidget.dart';
import 'package:myhomie_app/app_context.dart'; import 'package:myhomie_app/app_context.dart';
import 'package:myhomie_app/constants.dart'; import 'package:myhomie_app/constants.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -108,6 +109,16 @@ class _SecurityScreenState extends State<SecurityScreen> {
} }
), ),
Text("TODO Cameras"), 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<SecurityScreen> {
} }
} }
alarmDecoration(AlarmModeDTO alarmModeDTO) { alarmDecoration(AlarmModeDTO alarmModeDTO) {
return BoxDecoration( return BoxDecoration(
color: alarmModeDTO.activated! && alarmModeDTO.type == AlarmType.desarmed ? Colors.white : Colors.red.withOpacity(0.6), color: alarmModeDTO.activated! && alarmModeDTO.type == AlarmType.desarmed ? Colors.white : Colors.red.withOpacity(0.6),

View File

@ -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<ImageStreamWidget> {
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);
}
}

View File

@ -3667,6 +3667,9 @@ components:
name: name:
type: string type: string
nullable: true nullable: true
nameForAction:
type: string
nullable: true
model: model:
type: string type: string
nullable: true nullable: true

View File

@ -11,6 +11,7 @@ const kBackgroundSecondGrey = Color(0xFF5b5b63);
const kDetailSize = 20.0; const kDetailSize = 20.0;
const kDescriptionDetailSize = 15.0; const kDescriptionDetailSize = 15.0;
const kDescriptionSmallDetailSize = 11.0;
const kMainColor = Color(0xFF308aae); const kMainColor = Color(0xFF308aae);
/* /*

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**homeId** | **String** | | [optional] **homeId** | **String** | | [optional]
**description** | **String** | | [optional] **description** | **String** | | [optional]
**name** | **String** | | [optional] **name** | **String** | | [optional]
**nameForAction** | **String** | | [optional]
**model** | **String** | | [optional] **model** | **String** | | [optional]
**type** | [**DeviceType**](DeviceType.md) | | [optional] **type** | [**DeviceType**](DeviceType.md) | | [optional]
**status** | **bool** | | [optional] **status** | **bool** | | [optional]

View File

@ -12,6 +12,7 @@ Name | Type | Description | Notes
**homeId** | **String** | | [optional] **homeId** | **String** | | [optional]
**description** | **String** | | [optional] **description** | **String** | | [optional]
**name** | **String** | | [optional] **name** | **String** | | [optional]
**nameForAction** | **String** | | [optional]
**model** | **String** | | [optional] **model** | **String** | | [optional]
**type** | [**DeviceType**](DeviceType.md) | | [optional] **type** | [**DeviceType**](DeviceType.md) | | [optional]
**status** | **bool** | | [optional] **status** | **bool** | | [optional]

View File

@ -17,6 +17,7 @@ class DeviceDetailDTO {
this.homeId, this.homeId,
this.description, this.description,
this.name, this.name,
this.nameForAction,
this.model, this.model,
this.type, this.type,
this.status, this.status,
@ -101,6 +102,8 @@ class DeviceDetailDTO {
String? name; String? name;
String? nameForAction;
String? model; String? model;
/// ///
@ -567,6 +570,7 @@ class DeviceDetailDTO {
other.homeId == homeId && other.homeId == homeId &&
other.description == description && other.description == description &&
other.name == name && other.name == name &&
other.nameForAction == nameForAction &&
other.model == model && other.model == model &&
other.type == type && other.type == type &&
other.status == status && other.status == status &&
@ -649,6 +653,7 @@ class DeviceDetailDTO {
(homeId == null ? 0 : homeId!.hashCode) + (homeId == null ? 0 : homeId!.hashCode) +
(description == null ? 0 : description!.hashCode) + (description == null ? 0 : description!.hashCode) +
(name == null ? 0 : name!.hashCode) + (name == null ? 0 : name!.hashCode) +
(nameForAction == null ? 0 : nameForAction!.hashCode) +
(model == null ? 0 : model!.hashCode) + (model == null ? 0 : model!.hashCode) +
(type == null ? 0 : type!.hashCode) + (type == null ? 0 : type!.hashCode) +
(status == null ? 0 : status!.hashCode) + (status == null ? 0 : status!.hashCode) +
@ -725,7 +730,7 @@ class DeviceDetailDTO {
(noise == null ? 0 : noise!.hashCode); (noise == null ? 0 : noise!.hashCode);
@override @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<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final json = <String, dynamic>{}; final json = <String, dynamic>{};
@ -749,6 +754,11 @@ class DeviceDetailDTO {
} else { } else {
json[r'name'] = null; json[r'name'] = null;
} }
if (this.nameForAction != null) {
json[r'nameForAction'] = this.nameForAction;
} else {
json[r'nameForAction'] = null;
}
if (this.model != null) { if (this.model != null) {
json[r'model'] = this.model; json[r'model'] = this.model;
} else { } else {
@ -1145,6 +1155,7 @@ class DeviceDetailDTO {
homeId: mapValueOfType<String>(json, r'homeId'), homeId: mapValueOfType<String>(json, r'homeId'),
description: mapValueOfType<String>(json, r'description'), description: mapValueOfType<String>(json, r'description'),
name: mapValueOfType<String>(json, r'name'), name: mapValueOfType<String>(json, r'name'),
nameForAction: mapValueOfType<String>(json, r'nameForAction'),
model: mapValueOfType<String>(json, r'model'), model: mapValueOfType<String>(json, r'model'),
type: DeviceType.fromJson(json[r'type']), type: DeviceType.fromJson(json[r'type']),
status: mapValueOfType<bool>(json, r'status'), status: mapValueOfType<bool>(json, r'status'),

View File

@ -17,6 +17,7 @@ class DeviceSummaryDTO {
this.homeId, this.homeId,
this.description, this.description,
this.name, this.name,
this.nameForAction,
this.model, this.model,
this.type, this.type,
this.status, this.status,
@ -38,6 +39,8 @@ class DeviceSummaryDTO {
String? name; String? name;
String? nameForAction;
String? model; String? model;
/// ///
@ -108,6 +111,7 @@ class DeviceSummaryDTO {
other.homeId == homeId && other.homeId == homeId &&
other.description == description && other.description == description &&
other.name == name && other.name == name &&
other.nameForAction == nameForAction &&
other.model == model && other.model == model &&
other.type == type && other.type == type &&
other.status == status && other.status == status &&
@ -127,6 +131,7 @@ class DeviceSummaryDTO {
(homeId == null ? 0 : homeId!.hashCode) + (homeId == null ? 0 : homeId!.hashCode) +
(description == null ? 0 : description!.hashCode) + (description == null ? 0 : description!.hashCode) +
(name == null ? 0 : name!.hashCode) + (name == null ? 0 : name!.hashCode) +
(nameForAction == null ? 0 : nameForAction!.hashCode) +
(model == null ? 0 : model!.hashCode) + (model == null ? 0 : model!.hashCode) +
(type == null ? 0 : type!.hashCode) + (type == null ? 0 : type!.hashCode) +
(status == null ? 0 : status!.hashCode) + (status == null ? 0 : status!.hashCode) +
@ -140,7 +145,7 @@ class DeviceSummaryDTO {
(batteryStatus == null ? 0 : batteryStatus!.hashCode); (batteryStatus == null ? 0 : batteryStatus!.hashCode);
@override @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<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final json = <String, dynamic>{}; final json = <String, dynamic>{};
@ -164,6 +169,11 @@ class DeviceSummaryDTO {
} else { } else {
json[r'name'] = null; json[r'name'] = null;
} }
if (this.nameForAction != null) {
json[r'nameForAction'] = this.nameForAction;
} else {
json[r'nameForAction'] = null;
}
if (this.model != null) { if (this.model != null) {
json[r'model'] = this.model; json[r'model'] = this.model;
} else { } else {
@ -245,6 +255,7 @@ class DeviceSummaryDTO {
homeId: mapValueOfType<String>(json, r'homeId'), homeId: mapValueOfType<String>(json, r'homeId'),
description: mapValueOfType<String>(json, r'description'), description: mapValueOfType<String>(json, r'description'),
name: mapValueOfType<String>(json, r'name'), name: mapValueOfType<String>(json, r'name'),
nameForAction: mapValueOfType<String>(json, r'nameForAction'),
model: mapValueOfType<String>(json, r'model'), model: mapValueOfType<String>(json, r'model'),
type: DeviceType.fromJson(json[r'type']), type: DeviceType.fromJson(json[r'type']),
status: mapValueOfType<bool>(json, r'status'), status: mapValueOfType<bool>(json, r'status'),

View File

@ -13,10 +13,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: "5dce45a06d386358334eb1689108db6455d90ceb0d75848d5f4819283d4ee2b8" sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.4" version: "1.3.5"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
@ -177,6 +177,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.3" version: "3.0.3"
csslib:
dependency: transitive
description:
name: csslib
sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -237,10 +245,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
sha256: "2e9324f719e90200dc7d3c4f5d2abc26052f9f2b995d3b6626c47a0dfe1c8192" sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.15.0" version: "2.15.1"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -253,34 +261,34 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa" sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.0" version: "2.7.0"
firebase_messaging: firebase_messaging:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_messaging name: firebase_messaging
sha256: "8ac91d83a028eef050de770f1dc98421e215714d245f34de7b154d436676fbd0" sha256: db4a38be54fd84849c21be1ae1b44f0d4637eec1069bf5c49ea95e81f582bbc0
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.6.5" version: "14.6.6"
firebase_messaging_platform_interface: firebase_messaging_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_platform_interface name: firebase_messaging_platform_interface
sha256: b2995e3640efb646e9ebf0e2fa50dea84895f0746a31d7e3af0e5e009a533a1a sha256: "164119eed47ff19284e28bea9165a03da110c56ea09dd996622cfccad14d0efd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.5.4" version: "4.5.5"
firebase_messaging_web: firebase_messaging_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_web name: firebase_messaging_web
sha256: "5d8446a28339124a2cb4f57a6ca454a3aca7d0c5c0cdfa5707afb192f7c830a7" sha256: "6196d20731733834d7afb175c4345be57ddbd5daebca83cd52a430d62c2279fe"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.5.4" version: "3.5.5"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@ -352,6 +360,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.1"
html:
dependency: transitive
description:
name: html
sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
url: "https://pub.dev"
source: hosted
version: "0.15.4"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -684,6 +700,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.0" 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: timing:
dependency: transitive dependency: transitive
description: description:
@ -740,6 +764,46 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" 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: watcher:
dependency: transitive dependency: transitive
description: description:

View File

@ -43,7 +43,9 @@ dependencies:
cupertino_icons: ^1.0.5 cupertino_icons: ^1.0.5
auto_size_text: ^3.0.0 auto_size_text: ^3.0.0
firebase_core: ^2.15.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: dev_dependencies:
flutter_test: flutter_test: