mirror of
https://bitbucket.org/myhomie/myhomie_app.git
synced 2025-12-06 00:51:19 +00:00
Wip camera test + name for action update
This commit is contained in:
parent
bcfef44caa
commit
e63b2a0715
@ -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
|
||||
|
||||
@ -79,7 +79,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
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(
|
||||
|
||||
@ -129,13 +129,17 @@ class _RoomDetailPageState extends State<RoomDetailPage> {
|
||||
margin: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
|
||||
child: Stack(
|
||||
children: [
|
||||
Center(
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(bottom: 35),
|
||||
child: Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
roomDetailDTO.devices![index].name!,
|
||||
style: new TextStyle(fontSize: kDescriptionDetailSize, color: kBackgroundSecondGrey),
|
||||
style: new TextStyle(fontSize: kDescriptionSmallDetailSize, color: kBackgroundSecondGrey),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
if(roomDetailDTO.devices![index].type != null)
|
||||
Positioned(
|
||||
@ -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) {
|
||||
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(
|
||||
|
||||
@ -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<SecurityScreen> {
|
||||
}
|
||||
),
|
||||
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) {
|
||||
return BoxDecoration(
|
||||
color: alarmModeDTO.activated! && alarmModeDTO.type == AlarmType.desarmed ? Colors.white : Colors.red.withOpacity(0.6),
|
||||
|
||||
49
lib/Screens/Main/Security/streamWidget.dart
Normal file
49
lib/Screens/Main/Security/streamWidget.dart
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -3667,6 +3667,9 @@ components:
|
||||
name:
|
||||
type: string
|
||||
nullable: true
|
||||
nameForAction:
|
||||
type: string
|
||||
nullable: true
|
||||
model:
|
||||
type: string
|
||||
nullable: true
|
||||
|
||||
@ -11,6 +11,7 @@ const kBackgroundSecondGrey = Color(0xFF5b5b63);
|
||||
|
||||
const kDetailSize = 20.0;
|
||||
const kDescriptionDetailSize = 15.0;
|
||||
const kDescriptionSmallDetailSize = 11.0;
|
||||
|
||||
const kMainColor = Color(0xFF308aae);
|
||||
/*
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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<String, dynamic> toJson() {
|
||||
final json = <String, dynamic>{};
|
||||
@ -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<String>(json, r'homeId'),
|
||||
description: mapValueOfType<String>(json, r'description'),
|
||||
name: mapValueOfType<String>(json, r'name'),
|
||||
nameForAction: mapValueOfType<String>(json, r'nameForAction'),
|
||||
model: mapValueOfType<String>(json, r'model'),
|
||||
type: DeviceType.fromJson(json[r'type']),
|
||||
status: mapValueOfType<bool>(json, r'status'),
|
||||
|
||||
@ -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<String, dynamic> toJson() {
|
||||
final json = <String, dynamic>{};
|
||||
@ -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<String>(json, r'homeId'),
|
||||
description: mapValueOfType<String>(json, r'description'),
|
||||
name: mapValueOfType<String>(json, r'name'),
|
||||
nameForAction: mapValueOfType<String>(json, r'nameForAction'),
|
||||
model: mapValueOfType<String>(json, r'model'),
|
||||
type: DeviceType.fromJson(json[r'type']),
|
||||
status: mapValueOfType<bool>(json, r'status'),
|
||||
|
||||
88
pubspec.lock
88
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:
|
||||
|
||||
@ -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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user