mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
push design and missing view and folder structure
This commit is contained in:
23
assets/icons/routine/automation.svg
Normal file
23
assets/icons/routine/automation.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.72433 25.7152C4.61172 25.7152 4.49904 25.6722 4.41307 25.5863C4.24118 25.4144 4.24118 25.1357 4.41307 24.9639L10.999 18.3779C11.1709 18.2061 11.4496 18.2061 11.6215 18.3779C11.7933 18.5498 11.7933 18.8285 11.6215 19.0004L5.0356 25.5863C4.94963 25.6722 4.83695 25.7152 4.72433 25.7152Z" fill="#E9EDF1"/>
|
||||
<path d="M17.2991 13.1409C17.1865 13.1409 17.0738 13.0979 16.9878 13.0119C16.8159 12.8401 16.8159 12.5614 16.9878 12.3895L24.1312 5.2461C24.3032 5.07422 24.5818 5.07422 24.7537 5.2461C24.9256 5.41799 24.9256 5.69669 24.7537 5.86852L17.6103 13.0119C17.5244 13.0979 17.4117 13.1409 17.2991 13.1409Z" fill="#E9EDF1"/>
|
||||
<path d="M24.4425 25.6564C24.3299 25.6564 24.2172 25.6135 24.1312 25.5275L19.5406 20.9369C19.3687 20.765 19.3687 20.4863 19.5406 20.3145C19.7125 20.1426 19.9912 20.1426 20.1631 20.3145L24.7537 24.9051C24.9256 25.077 24.9256 25.3557 24.7537 25.5275C24.6678 25.6135 24.5551 25.6564 24.4425 25.6564Z" fill="#E9EDF1"/>
|
||||
<path d="M9.34433 10.5588C9.23171 10.5588 9.11904 10.5158 9.03306 10.4298L4.44245 5.83923C4.27057 5.66734 4.27057 5.38864 4.44245 5.21681C4.6144 5.04492 4.89304 5.04492 5.06493 5.21681L9.65554 9.80742C9.82743 9.97931 9.82743 10.258 9.65554 10.4298C9.56956 10.5157 9.45695 10.5588 9.34433 10.5588Z" fill="#E9EDF1"/>
|
||||
<path d="M24.2781 13.2251H22.6273C22.5539 13.2251 22.49 13.1764 22.4694 13.1059C22.3022 12.5332 22.0739 11.9868 21.7928 11.4733C21.7576 11.4088 21.7681 11.3295 21.8198 11.2773L22.9876 10.1095C23.0522 10.0455 23.0522 9.94161 22.9876 9.87706L20.122 7.01145C20.0574 6.9469 19.9536 6.9469 19.8896 7.01145L18.7218 8.17929C18.6695 8.23093 18.5903 8.2415 18.5257 8.20629C18.0123 7.92518 17.4659 7.6969 16.8931 7.52964C16.8227 7.5091 16.774 7.44514 16.774 7.37178V5.72096C16.774 5.63 16.7006 5.55664 16.6097 5.55664H12.5569C12.4659 5.55664 12.3925 5.63 12.3925 5.72096V7.37178C12.3925 7.44514 12.3438 7.5091 12.2734 7.52964C11.7006 7.6969 11.1543 7.92518 10.6408 8.20629C10.5762 8.2415 10.497 8.23093 10.4448 8.17929L9.27693 7.01145C9.21296 6.9469 9.10909 6.9469 9.04453 7.01145L6.17892 9.87706C6.11437 9.94161 6.11437 10.0455 6.17892 10.1095L7.34676 11.2773C7.39841 11.3295 7.40897 11.4088 7.37376 11.4733C7.10498 11.9645 6.88432 12.485 6.71942 13.0308C6.71179 13.0555 6.72059 13.1089 6.71296 13.1341C6.69242 13.2045 6.62845 13.2532 6.5551 13.2532L5.02693 13.3301C4.93597 13.3301 4.86261 13.4035 4.86261 13.4944L4.88784 17.2749C4.88784 17.3659 4.9612 17.4393 5.05216 17.4393L6.61554 17.4445C6.6889 17.4445 6.75287 17.4933 6.77341 17.5637C6.94066 18.1364 7.2605 18.843 7.5416 19.3565C7.57681 19.4211 7.56625 19.5003 7.5146 19.5525L6.35615 20.7245C6.2916 20.7884 6.2916 20.8923 6.35615 20.9569L9.04805 23.5132C9.11261 23.5778 9.21648 23.5778 9.28045 23.5132L10.3667 22.5044C10.4189 22.4528 10.4982 22.4422 10.5627 22.4774C11.0762 22.7585 11.8873 23.0132 12.46 23.1805C12.5304 23.201 12.5792 23.265 12.5792 23.3383L12.5346 24.9316C12.5346 25.0226 12.6079 25.0959 12.6989 25.0959L16.4301 25.0613C16.5211 25.0613 16.5944 24.988 16.5944 24.897L16.6373 23.3682C16.6373 23.2949 16.686 23.2309 16.7564 23.2104C17.1314 23.1012 17.6144 23.0355 17.9647 22.8759C18.0216 22.8501 18.1513 22.8178 18.1513 22.8178C18.2781 22.7567 18.4031 22.6928 18.5257 22.6253C18.5903 22.5901 18.6695 22.6006 18.7218 22.6523L19.8896 23.8201C19.9536 23.8847 20.0574 23.8847 20.122 23.8201L22.9876 20.9545C23.0522 20.89 23.0522 20.7861 22.9876 20.7221L21.8198 19.5543C21.7681 19.5021 21.7576 19.4228 21.7928 19.3583C22.0739 18.8448 22.3022 18.2984 22.4694 17.7256C22.49 17.6552 22.5539 17.6065 22.6273 17.6065H24.2781C24.3691 17.6065 24.4424 17.5332 24.4424 17.4422V13.3894C24.4424 13.2984 24.3691 13.2251 24.2781 13.2251ZM14.6167 17.8624C13.247 17.8624 12.1367 16.7521 12.1367 15.3823C12.1367 14.0126 13.247 12.9023 14.6167 12.9023C15.9864 12.9023 17.0968 14.0126 17.0968 15.3823C17.0968 16.7521 15.9864 17.8624 14.6167 17.8624Z" fill="#C3C1C9"/>
|
||||
<path d="M18.1513 22.8184C17.7493 23.0126 17.3285 23.1752 16.8931 23.3025C16.8227 23.3231 16.774 23.3871 16.774 23.4604V25.1112C16.774 25.2022 16.7006 25.2755 16.6096 25.2755H12.5568C12.4659 25.2755 12.3925 25.2022 12.3925 25.1112V23.4604C12.3925 23.3871 12.3438 23.3231 12.2734 23.3025C11.7006 23.1353 11.1543 22.907 10.6408 22.6259C10.5762 22.5907 10.497 22.6013 10.4447 22.6529L9.27691 23.8207C9.21294 23.8853 9.10907 23.8853 9.04451 23.8207L6.1789 20.9551C6.11435 20.8906 6.11435 20.7867 6.1789 20.7227L7.34674 19.5549C7.39839 19.5027 7.40895 19.4234 7.37374 19.3589C7.09263 18.8454 6.86435 18.299 6.69709 17.7263C6.67655 17.6558 6.61259 17.6071 6.53923 17.6071H4.88841C4.79745 17.6071 4.72409 17.5338 4.72409 17.4428V13.39C4.72409 13.299 4.79745 13.2257 4.88841 13.2257H6.53923C6.61259 13.2257 6.67655 13.177 6.69709 13.1065C6.70414 13.0813 6.71124 13.0559 6.71945 13.0312C6.77286 18.5025 11.2253 22.9217 16.7094 22.9217C17.1989 22.9217 17.6807 22.8865 18.1513 22.8184Z" fill="#ADACB5"/>
|
||||
<path d="M14.6168 10.3652C11.8457 10.3652 9.59863 12.6117 9.59863 15.3834C9.59863 18.1545 11.8457 20.4016 14.6168 20.4016C17.3885 20.4016 19.635 18.1545 19.635 15.3834C19.635 12.6117 17.3885 10.3652 14.6168 10.3652ZM14.6168 17.3494C13.5311 17.3494 12.6509 16.4691 12.6509 15.3834C12.6509 14.2977 13.5311 13.4175 14.6168 13.4175C15.7025 13.4175 16.5828 14.2977 16.5828 15.3834C16.5828 16.4691 15.7025 17.3494 14.6168 17.3494Z" fill="#ADACB5"/>
|
||||
<path d="M29.1667 3.91399C29.1667 2.21241 27.7873 0.833008 26.0857 0.833008C25.4909 0.833008 24.9355 1.00155 24.4646 1.29345C24.4646 1.29345 24.3034 1.42626 24.219 1.49169C23.4911 2.05525 23.1227 2.92227 23.1227 3.91405C23.1227 5.61563 24.3841 6.81833 26.0856 6.81833C27.0035 6.81833 27.795 6.56728 28.3594 5.93054C28.4285 5.85266 28.5872 5.71299 28.5872 5.71299C28.9519 5.20677 29.1667 4.58547 29.1667 3.91399Z" fill="#73C2FB"/>
|
||||
<path d="M28.5872 5.71343C28.0279 6.48983 27.1156 6.99547 26.0857 6.99547C24.3844 6.99547 23.0047 5.61577 23.0047 3.91448C23.0047 2.80768 23.5884 1.83679 24.4646 1.29395C24.0996 1.79981 23.885 2.42153 23.885 3.09289C23.885 4.79418 25.2646 6.17387 26.9659 6.17387C27.561 6.17387 28.1165 6.00568 28.5872 5.71343Z" fill="#4B9CD3"/>
|
||||
<path d="M26.0857 5.23557C26.8149 5.23557 27.4061 4.6444 27.4061 3.91515C27.4061 3.1859 26.8149 2.59473 26.0857 2.59473C25.3564 2.59473 24.7652 3.1859 24.7652 3.91515C24.7652 4.6444 25.3564 5.23557 26.0857 5.23557Z" fill="#4B9CD3"/>
|
||||
<path d="M6.16199 3.91399C6.16199 2.21241 4.78259 0.833008 3.08101 0.833008C2.48623 0.833008 1.93083 1.00155 1.45994 1.29345C1.45994 1.29345 1.29873 1.42626 1.21429 1.49169C0.486469 2.05519 0.118042 2.92227 0.118042 3.91399C0.118042 5.61558 1.37943 6.81827 3.08101 6.81827C3.99885 6.81827 4.79034 6.56722 5.35478 5.93048C5.42385 5.85261 5.58253 5.71293 5.58253 5.71293C5.94721 5.20677 6.16199 4.58547 6.16199 3.91399Z" fill="#7CB9E8"/>
|
||||
<path d="M5.58251 5.71343C5.02324 6.48983 4.11091 6.99547 3.08098 6.99547C1.37969 6.99547 0 5.61577 0 3.91448C0 2.80768 0.583744 1.83679 1.45992 1.29395C1.09489 1.79981 0.880281 2.42153 0.880281 3.09289C0.880281 4.79418 2.25998 6.17387 3.96127 6.17387C4.55634 6.17387 5.11185 6.00568 5.58251 5.71343Z" fill="#6699CC"/>
|
||||
<path d="M3.08104 5.23557C3.81029 5.23557 4.40146 4.6444 4.40146 3.91515C4.40146 3.1859 3.81029 2.59473 3.08104 2.59473C2.35179 2.59473 1.76062 3.1859 1.76062 3.91515C1.76062 4.6444 2.35179 5.23557 3.08104 5.23557Z" fill="#6699CC"/>
|
||||
<path d="M29.1668 26.9189C29.1668 25.2173 27.7874 23.8379 26.0858 23.8379C25.491 23.8379 24.9356 24.0064 24.4647 24.2983C24.4647 24.2983 24.3035 24.4311 24.2191 24.4966C23.4912 25.0601 23.1228 25.9272 23.1228 26.9189C23.1228 28.6205 24.3842 29.8232 26.0857 29.8232C27.0036 29.8232 27.7951 29.5722 28.3595 28.9354C28.4286 28.8575 28.5873 28.7179 28.5873 28.7179C28.952 28.2117 29.1668 27.5904 29.1668 26.9189Z" fill="#6086FF"/>
|
||||
<path d="M28.5874 28.7173C28.0282 29.4937 27.1158 29.9994 26.0859 29.9994C24.3846 29.9994 23.0049 28.6197 23.0049 26.9184C23.0049 25.8116 23.5887 24.8407 24.4648 24.2979C24.0998 24.8037 23.8852 25.4254 23.8852 26.0968C23.8852 27.7981 25.2649 29.1778 26.9662 29.1778C27.5612 29.1778 28.1168 29.0096 28.5874 28.7173Z" fill="#023DFE"/>
|
||||
<path d="M26.086 28.2395C26.8152 28.2395 27.4064 27.6483 27.4064 26.9191C27.4064 26.1898 26.8152 25.5986 26.086 25.5986C25.3567 25.5986 24.7656 26.1898 24.7656 26.9191C24.7656 27.6483 25.3567 28.2395 26.086 28.2395Z" fill="#023DFE"/>
|
||||
<path d="M6.16199 26.9189C6.16199 25.2173 4.78259 23.8379 3.08101 23.8379C2.48623 23.8379 1.93083 24.0064 1.45994 24.2983C1.45994 24.2983 1.29873 24.4311 1.21429 24.4966C0.486469 25.0601 0.118042 25.9271 0.118042 26.9189C0.118042 28.6205 1.37943 29.8232 3.08101 29.8232C3.99885 29.8232 4.79034 29.5721 5.35478 28.9354C5.42385 28.8575 5.58253 28.7178 5.58253 28.7178C5.94721 28.2117 6.16199 27.5904 6.16199 26.9189Z" fill="#76ABDF"/>
|
||||
<path d="M5.58251 28.7173C5.02324 29.4937 4.11091 29.9994 3.08098 29.9994C1.37969 29.9994 0 28.6197 0 26.9184C0 25.8116 0.583744 24.8407 1.45992 24.2979C1.09489 24.8037 0.880281 25.4254 0.880281 26.0968C0.880281 27.7981 2.25998 29.1778 3.96127 29.1778C4.55634 29.1778 5.11185 29.0096 5.58251 28.7173Z" fill="#4682B4"/>
|
||||
<path d="M3.08104 28.2395C3.81029 28.2395 4.40146 27.6483 4.40146 26.9191C4.40146 26.1898 3.81029 25.5986 3.08104 25.5986C2.35179 25.5986 1.76062 26.1898 1.76062 26.9191C1.76062 27.6483 2.35179 28.2395 3.08104 28.2395Z" fill="#4682B4"/>
|
||||
<path d="M9.59884 15.8232C9.70453 15.8232 9.80782 15.7851 9.88869 15.7143L11.5096 14.2956C11.6925 14.1355 11.711 13.8575 11.5509 13.6746C11.3909 13.4916 11.1127 13.4732 10.9298 13.6333L10.1713 14.2971C10.6631 12.2987 12.4776 10.8051 14.6167 10.8051C16.531 10.8051 18.2591 12.0122 18.9169 13.809C19.0005 14.0372 19.2532 14.1546 19.4815 14.0709C19.7098 13.9874 19.8271 13.7345 19.7436 13.5063C18.9592 11.3641 16.8989 9.9248 14.6167 9.9248C13.1711 9.9248 11.8088 10.4843 10.7806 11.5003C10.0913 12.1813 9.60647 13.0152 9.35565 13.9259L9.0202 13.2621C8.91058 13.0451 8.64573 12.958 8.42889 13.0677C8.21193 13.1773 8.12484 13.4421 8.23452 13.659L9.20594 15.5816C9.26732 15.7029 9.38129 15.7892 9.51486 15.8151C9.54279 15.8205 9.5709 15.8232 9.59884 15.8232Z" fill="#F7F9FA"/>
|
||||
<path d="M20.9996 17.1115L20.0281 15.1889C19.9668 15.0676 19.8528 14.9813 19.7192 14.9554C19.5859 14.9294 19.4477 14.9666 19.3454 15.0562L17.7245 16.4749C17.5416 16.635 17.523 16.913 17.6832 17.096C17.8433 17.2789 18.1213 17.2974 18.3043 17.1373L19.0609 16.4751C18.5671 18.4706 16.7543 19.9612 14.6169 19.9612C12.6945 19.9612 10.9639 18.7472 10.3104 16.9403C10.2277 16.7117 9.97539 16.5934 9.74681 16.6761C9.51817 16.7588 9.39992 17.0111 9.48261 17.2397C10.2617 19.394 12.325 20.8414 14.6168 20.8414C16.063 20.8414 17.4257 20.2815 18.4541 19.2649C19.1423 18.5845 19.6265 17.7518 19.8773 16.8424L20.2138 17.5085C20.2913 17.6618 20.4462 17.7502 20.607 17.7502C20.6738 17.7502 20.7415 17.7349 20.8052 17.7028C21.0222 17.5931 21.1092 17.3284 20.9996 17.1115Z" fill="#F7F9FA"/>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
@ -109,6 +109,16 @@ class CustomTextField extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Visibility(
|
||||
visible: isRequired == true,
|
||||
child: Text('* ',
|
||||
style: context.textTheme.bodyMedium!
|
||||
.copyWith(color: Colors.red, fontSize: 13)),
|
||||
),
|
||||
Text(
|
||||
title,
|
||||
style: context.textTheme.bodyMedium!.copyWith(
|
||||
@ -117,6 +127,8 @@ class CustomTextField extends StatelessWidget {
|
||||
color: const Color(0xff000000),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Material(
|
||||
elevation: elevation ?? 0,
|
||||
|
@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/ac_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/one_gang_switch_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/three_gang_switch_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/two_gang_switch_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/ac_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/one_gang_switch_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/three_gang_switch_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/two_gang_switch_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
|
||||
|
||||
class DeviceDialogHelper {
|
||||
|
15
lib/pages/routiens/helper/duration_format_helper.dart
Normal file
15
lib/pages/routiens/helper/duration_format_helper.dart
Normal file
@ -0,0 +1,15 @@
|
||||
class DurationFormatMixin {
|
||||
static String formatDuration(int seconds) {
|
||||
if (seconds >= 3600) {
|
||||
final hours = (seconds / 3600).floor();
|
||||
final remainingMinutes = ((seconds % 3600) / 60).floor();
|
||||
final remainingSeconds = seconds % 60;
|
||||
return '$hours h ${remainingMinutes}m ${remainingSeconds}s';
|
||||
} else if (seconds >= 60) {
|
||||
final minutes = (seconds / 60).floor();
|
||||
final remainingSeconds = seconds % 60;
|
||||
return '$minutes m ${remainingSeconds}s';
|
||||
}
|
||||
return '${seconds}s';
|
||||
}
|
||||
}
|
@ -73,9 +73,9 @@ class TempSetFunction extends ACFunction {
|
||||
final int step;
|
||||
|
||||
TempSetFunction({required super.deviceId, required super.deviceName})
|
||||
: min = 200,
|
||||
: min = 160,
|
||||
max = 300,
|
||||
step = 5,
|
||||
step = 1,
|
||||
super(
|
||||
code: 'temp_set',
|
||||
operationName: 'Set Temperature',
|
||||
|
@ -1,3 +1,5 @@
|
||||
import 'package:syncrow_web/utils/constants/assets.dart';
|
||||
|
||||
class ScenesModel {
|
||||
final String id;
|
||||
final String name;
|
||||
@ -13,12 +15,16 @@ class ScenesModel {
|
||||
this.icon,
|
||||
});
|
||||
|
||||
factory ScenesModel.fromJson(Map<String, dynamic> json) => ScenesModel(
|
||||
factory ScenesModel.fromJson(Map<String, dynamic> json,
|
||||
{bool? isAutomation}) =>
|
||||
ScenesModel(
|
||||
id: json["id"],
|
||||
name: json["name"] ?? '',
|
||||
status: json["status"] ?? '',
|
||||
type: json["type"] ?? '',
|
||||
icon: json["icon"] as String?,
|
||||
icon: (isAutomation ?? false)
|
||||
? Assets.automation
|
||||
: json["icon"] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/effective_period/effect_period_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/effictive_period_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/effictive_period_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/period_option.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/repeat_days.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
|
@ -16,7 +16,7 @@ class ConditionsRoutinesDevicesView extends StatelessWidget {
|
||||
return BlocBuilder<RoutineBloc, RoutineState>(
|
||||
builder: (context, state) {
|
||||
return const Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||
padding: EdgeInsets.symmetric(horizontal: 8.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@ -65,13 +65,13 @@ class ConditionsRoutinesDevicesView extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const TitleRoutine(
|
||||
SizedBox(height: 10),
|
||||
TitleRoutine(
|
||||
title: 'Conditions',
|
||||
subtitle: '(THEN)',
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const Wrap(
|
||||
SizedBox(height: 10),
|
||||
Wrap(
|
||||
spacing: 10,
|
||||
runSpacing: 10,
|
||||
children: [
|
||||
@ -96,20 +96,20 @@ class ConditionsRoutinesDevicesView extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const TitleRoutine(
|
||||
SizedBox(height: 10),
|
||||
TitleRoutine(
|
||||
title: 'Routines',
|
||||
subtitle: '(THEN)',
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const ScenesAndAutomations(),
|
||||
const SizedBox(height: 10),
|
||||
const TitleRoutine(
|
||||
SizedBox(height: 10),
|
||||
ScenesAndAutomations(),
|
||||
SizedBox(height: 10),
|
||||
TitleRoutine(
|
||||
title: 'Devices',
|
||||
subtitle: '',
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const RoutineDevices(),
|
||||
SizedBox(height: 10),
|
||||
RoutineDevices(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -106,7 +106,7 @@ class DraggableCard extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
'${function.operationName}: ${function.value}',
|
||||
'${function.operationName}: ${_formatFunctionValue(function)}',
|
||||
style: context.textTheme.bodySmall?.copyWith(
|
||||
fontSize: 9,
|
||||
color: ColorsManager.textGray,
|
||||
@ -144,6 +144,27 @@ class DraggableCard extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
String _formatFunctionValue(DeviceFunctionData function) {
|
||||
if (function.functionCode == 'temp_set' ||
|
||||
function.functionCode == 'temp_current') {
|
||||
return '${(function.value / 10).toStringAsFixed(0)}°C';
|
||||
} else if (function.functionCode.contains('countdown')) {
|
||||
final seconds = function.value.toInt();
|
||||
if (seconds >= 3600) {
|
||||
final hours = (seconds / 3600).floor();
|
||||
final remainingMinutes = ((seconds % 3600) / 60).floor();
|
||||
final remainingSeconds = seconds % 60;
|
||||
return '$hours h ${remainingMinutes}m ${remainingSeconds}s';
|
||||
} else if (seconds >= 60) {
|
||||
final minutes = (seconds / 60).floor();
|
||||
final remainingSeconds = seconds % 60;
|
||||
return '$minutes m ${remainingSeconds}s';
|
||||
}
|
||||
return '${seconds}s';
|
||||
}
|
||||
return function.value.toString();
|
||||
}
|
||||
|
||||
Widget _buildGreyContainer() {
|
||||
return Container(
|
||||
height: 123,
|
||||
|
@ -3,7 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/effective_period/effect_period_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/effective_period/effect_period_event.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/effective_period/effect_period_state.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/effictive_period_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/effictive_period_dialog.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
import 'package:syncrow_web/utils/constants/app_enum.dart';
|
||||
|
||||
@ -21,9 +21,12 @@ class PeriodOptions extends StatelessWidget {
|
||||
builder: (context, state) {
|
||||
return Column(
|
||||
children: [
|
||||
_buildRadioOption(context, EnumEffectivePeriodOptions.allDay, '24 Hours'),
|
||||
_buildRadioOption(context, EnumEffectivePeriodOptions.daytime, 'Sunrise to Sunset'),
|
||||
_buildRadioOption(context, EnumEffectivePeriodOptions.night, 'Sunset to Sunrise'),
|
||||
_buildRadioOption(
|
||||
context, EnumEffectivePeriodOptions.allDay, '24 Hours'),
|
||||
_buildRadioOption(context, EnumEffectivePeriodOptions.daytime,
|
||||
'Sunrise to Sunset'),
|
||||
_buildRadioOption(
|
||||
context, EnumEffectivePeriodOptions.night, 'Sunset to Sunrise'),
|
||||
ListTile(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
onTap: () => showCustomTimePicker(context),
|
||||
@ -34,7 +37,8 @@ class PeriodOptions extends StatelessWidget {
|
||||
fontWeight: FontWeight.w400,
|
||||
fontSize: 14),
|
||||
),
|
||||
subtitle: state.customStartTime != null && state.customEndTime != null
|
||||
subtitle: state.customStartTime != null &&
|
||||
state.customEndTime != null
|
||||
? Text(
|
||||
'${"${state.customStartTime}"} - ${"${state.customEndTime}"}',
|
||||
style: Theme.of(context).textTheme.bodyMedium!.copyWith(
|
||||
@ -79,7 +83,9 @@ class PeriodOptions extends StatelessWidget {
|
||||
subtitle: Text(
|
||||
subtitle,
|
||||
style: Theme.of(context).textTheme.bodyMedium!.copyWith(
|
||||
color: ColorsManager.textPrimaryColor, fontWeight: FontWeight.w400, fontSize: 10),
|
||||
color: ColorsManager.textPrimaryColor,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontSize: 10),
|
||||
),
|
||||
trailing: Radio<EnumEffectivePeriodOptions>(
|
||||
value: value,
|
||||
|
@ -327,11 +327,11 @@ class ACHelper {
|
||||
String selectCode,
|
||||
) {
|
||||
return Slider(
|
||||
value: initialValue is int ? initialValue.toDouble() : 200.0,
|
||||
value: initialValue is int ? initialValue.toDouble() : 160.0,
|
||||
min: 160,
|
||||
max: 300,
|
||||
divisions: 14,
|
||||
label: '${((initialValue ?? 200) / 10).toInt()}°C',
|
||||
label: '${((initialValue ?? 160) / 10).toInt()}°C',
|
||||
onChanged: (value) {
|
||||
context.read<FunctionBloc>().add(
|
||||
AddFunction(
|
@ -4,6 +4,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/functions_bloc/functions_bloc_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/duration_format_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/base_switch_function.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/switch_operational_value.dart';
|
||||
@ -277,7 +278,7 @@ class OneGangSwitchHelper {
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Text(
|
||||
'${initialValue ?? 0} sec',
|
||||
DurationFormatMixin.formatDuration(initialValue?.toInt() ?? 0),
|
||||
style: context.textTheme.headlineMedium!.copyWith(
|
||||
color: ColorsManager.primaryColorWithOpacity,
|
||||
),
|
@ -4,6 +4,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/functions_bloc/functions_bloc_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/duration_format_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/base_switch_function.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/switch_operational_value.dart';
|
||||
@ -279,7 +280,7 @@ class ThreeGangSwitchHelper {
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Text(
|
||||
'${initialValue ?? 0} sec',
|
||||
DurationFormatMixin.formatDuration(initialValue?.toInt() ?? 0),
|
||||
style: context.textTheme.headlineMedium!.copyWith(
|
||||
color: ColorsManager.primaryColorWithOpacity,
|
||||
),
|
@ -4,6 +4,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/functions_bloc/functions_bloc_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/duration_format_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/base_switch_function.dart';
|
||||
import 'package:syncrow_web/pages/routiens/models/gang_switches/switch_operational_value.dart';
|
||||
@ -278,7 +279,7 @@ class TwoGangSwitchHelper {
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Text(
|
||||
'${initialValue ?? 0} sec',
|
||||
DurationFormatMixin.formatDuration(initialValue?.toInt() ?? 0),
|
||||
style: context.textTheme.headlineMedium!.copyWith(
|
||||
color: ColorsManager.primaryColorWithOpacity,
|
||||
),
|
@ -4,7 +4,7 @@ import 'package:syncrow_web/pages/common/buttons/default_button.dart';
|
||||
import 'package:syncrow_web/pages/common/text_field/custom_text_field.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/save_routine_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/setting_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/setting_dialog.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
import 'package:syncrow_web/utils/style.dart';
|
||||
|
||||
@ -31,7 +31,9 @@ class RoutineSearchAndButtons extends StatelessWidget {
|
||||
children: [
|
||||
ConstrainedBox(
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: constraints.maxWidth > 700 ? 450 : constraints.maxWidth - 32),
|
||||
maxWidth: constraints.maxWidth > 700
|
||||
? 450
|
||||
: constraints.maxWidth - 32),
|
||||
child: StatefulTextField(
|
||||
title: 'Routine Name',
|
||||
height: 40,
|
||||
@ -55,11 +57,14 @@ class RoutineSearchAndButtons extends StatelessWidget {
|
||||
child: Center(
|
||||
child: DefaultButton(
|
||||
onPressed: () async {
|
||||
final result = await SettingHelper.showSettingDialog(
|
||||
final result =
|
||||
await SettingHelper.showSettingDialog(
|
||||
context: context,
|
||||
);
|
||||
if (result != null) {
|
||||
context.read<RoutineBloc>().add(AddSelectedIcon(result));
|
||||
context
|
||||
.read<RoutineBloc>()
|
||||
.add(AddSelectedIcon(result));
|
||||
}
|
||||
},
|
||||
borderRadius: 15,
|
||||
|
@ -34,7 +34,9 @@ class _ScenesAndAutomationsState extends State<ScenesAndAutomations> {
|
||||
children: scenes.asMap().entries.map((entry) {
|
||||
final scene = entry.value;
|
||||
if (state.searchText != null && state.searchText!.isNotEmpty) {
|
||||
return scene.name.toLowerCase().contains(state.searchText!.toLowerCase())
|
||||
return scene.name
|
||||
.toLowerCase()
|
||||
.contains(state.searchText!.toLowerCase())
|
||||
? DraggableCard(
|
||||
imagePath: Assets.logo,
|
||||
title: scene.name,
|
||||
@ -49,7 +51,7 @@ class _ScenesAndAutomationsState extends State<ScenesAndAutomations> {
|
||||
: Container();
|
||||
} else {
|
||||
return DraggableCard(
|
||||
imagePath: Assets.logo,
|
||||
imagePath: scene.icon ?? Assets.loginLogo,
|
||||
title: scene.name,
|
||||
deviceData: {
|
||||
'deviceId': scene.id,
|
||||
|
@ -3,7 +3,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/bloc/routine_bloc/routine_bloc.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/delay_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/routine_dialogs/delay_dialog.dart';
|
||||
import 'package:syncrow_web/pages/routiens/helper/dialog_helper/device_dialog_helper.dart';
|
||||
import 'package:syncrow_web/pages/routiens/widgets/dragable_card.dart';
|
||||
import 'package:syncrow_web/utils/constants/assets.dart';
|
||||
|
@ -93,7 +93,7 @@ class SceneApi {
|
||||
expectedResponseModel: (json) {
|
||||
List<ScenesModel> scenes = [];
|
||||
for (var scene in json) {
|
||||
scenes.add(ScenesModel.fromJson(scene));
|
||||
scenes.add(ScenesModel.fromJson(scene, isAutomation: true));
|
||||
}
|
||||
return scenes;
|
||||
},
|
||||
|
@ -13,10 +13,12 @@ class Assets {
|
||||
static const String rightLine = "assets/images/right_line.png";
|
||||
static const String google = "assets/images/google.svg";
|
||||
static const String facebook = "assets/images/facebook.svg";
|
||||
static const String invisiblePassword = "assets/images/Password_invisible.svg";
|
||||
static const String invisiblePassword =
|
||||
"assets/images/Password_invisible.svg";
|
||||
static const String visiblePassword = "assets/images/password_visible.svg";
|
||||
static const String accessIcon = "assets/images/access_icon.svg";
|
||||
static const String spaseManagementIcon = "assets/images/spase_management_icon.svg";
|
||||
static const String spaseManagementIcon =
|
||||
"assets/images/spase_management_icon.svg";
|
||||
static const String devicesIcon = "assets/images/devices_icon.svg";
|
||||
static const String moveinIcon = "assets/images/movein_icon.svg";
|
||||
static const String constructionIcon = "assets/images/construction_icon.svg";
|
||||
@ -29,13 +31,15 @@ class Assets {
|
||||
static const String emptyTable = "assets/images/empty_table.svg";
|
||||
|
||||
// General assets
|
||||
static const String motionlessDetection = "assets/icons/motionless_detection.svg";
|
||||
static const String motionlessDetection =
|
||||
"assets/icons/motionless_detection.svg";
|
||||
static const String acHeating = "assets/icons/ac_heating.svg";
|
||||
static const String acPowerOff = "assets/icons/ac_power_off.svg";
|
||||
static const String acFanMiddle = "assets/icons/ac_fan_middle.svg";
|
||||
static const String switchAlarmSound = "assets/icons/switch_alarm_sound.svg";
|
||||
static const String resetOff = "assets/icons/reset_off.svg";
|
||||
static const String sensitivityOperationIcon = "assets/icons/sesitivity_operation_icon.svg";
|
||||
static const String sensitivityOperationIcon =
|
||||
"assets/icons/sesitivity_operation_icon.svg";
|
||||
static const String motionDetection = "assets/icons/motion_detection.svg";
|
||||
static const String freezing = "assets/icons/freezing.svg";
|
||||
static const String indicator = "assets/icons/indicator.svg";
|
||||
@ -56,35 +60,56 @@ class Assets {
|
||||
static const String celsiusDegrees = "assets/icons/celsius_degrees.svg";
|
||||
static const String masterState = "assets/icons/master_state.svg";
|
||||
static const String acPower = "assets/icons/ac_power.svg";
|
||||
static const String farDetectionFunction = "assets/icons/far_detection_function.svg";
|
||||
static const String farDetectionFunction =
|
||||
"assets/icons/far_detection_function.svg";
|
||||
static const String nobodyTime = "assets/icons/nobody_time.svg";
|
||||
|
||||
// Automation functions
|
||||
static const String tempPasswordUnlock = "assets/icons/automation_functions/temp_password_unlock.svg";
|
||||
static const String doorlockNormalOpen = "assets/icons/automation_functions/doorlock_normal_open.svg";
|
||||
static const String doorbell = "assets/icons/automation_functions/doorbell.svg";
|
||||
static const String remoteUnlockViaApp = "assets/icons/automation_functions/remote_unlock_via_app.svg";
|
||||
static const String doubleLock = "assets/icons/automation_functions/double_lock.svg";
|
||||
static const String selfTestResult = "assets/icons/automation_functions/self_test_result.svg";
|
||||
static const String lockAlarm = "assets/icons/automation_functions/lock_alarm.svg";
|
||||
static const String presenceState = "assets/icons/automation_functions/presence_state.svg";
|
||||
static const String currentTemp = "assets/icons/automation_functions/current_temp.svg";
|
||||
static const String presence = "assets/icons/automation_functions/presence.svg";
|
||||
static const String residualElectricity = "assets/icons/automation_functions/residual_electricity.svg";
|
||||
static const String hijackAlarm = "assets/icons/automation_functions/hijack_alarm.svg";
|
||||
static const String passwordUnlock = "assets/icons/automation_functions/password_unlock.svg";
|
||||
static const String remoteUnlockRequest = "assets/icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String cardUnlock = "assets/icons/automation_functions/card_unlock.svg";
|
||||
static const String tempPasswordUnlock =
|
||||
"assets/icons/automation_functions/temp_password_unlock.svg";
|
||||
static const String doorlockNormalOpen =
|
||||
"assets/icons/automation_functions/doorlock_normal_open.svg";
|
||||
static const String doorbell =
|
||||
"assets/icons/automation_functions/doorbell.svg";
|
||||
static const String remoteUnlockViaApp =
|
||||
"assets/icons/automation_functions/remote_unlock_via_app.svg";
|
||||
static const String doubleLock =
|
||||
"assets/icons/automation_functions/double_lock.svg";
|
||||
static const String selfTestResult =
|
||||
"assets/icons/automation_functions/self_test_result.svg";
|
||||
static const String lockAlarm =
|
||||
"assets/icons/automation_functions/lock_alarm.svg";
|
||||
static const String presenceState =
|
||||
"assets/icons/automation_functions/presence_state.svg";
|
||||
static const String currentTemp =
|
||||
"assets/icons/automation_functions/current_temp.svg";
|
||||
static const String presence =
|
||||
"assets/icons/automation_functions/presence.svg";
|
||||
static const String residualElectricity =
|
||||
"assets/icons/automation_functions/residual_electricity.svg";
|
||||
static const String hijackAlarm =
|
||||
"assets/icons/automation_functions/hijack_alarm.svg";
|
||||
static const String passwordUnlock =
|
||||
"assets/icons/automation_functions/password_unlock.svg";
|
||||
static const String remoteUnlockRequest =
|
||||
"assets/icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String cardUnlock =
|
||||
"assets/icons/automation_functions/card_unlock.svg";
|
||||
static const String motion = "assets/icons/automation_functions/motion.svg";
|
||||
static const String fingerprintUnlock = "assets/icons/automation_functions/fingerprint_unlock.svg";
|
||||
static const String fingerprintUnlock =
|
||||
"assets/icons/automation_functions/fingerprint_unlock.svg";
|
||||
|
||||
// Presence Sensor Assets
|
||||
static const String sensorMotionIcon = "assets/icons/sensor_motion_ic.svg";
|
||||
static const String sensorPresenceIcon = "assets/icons/sensor_presence_ic.svg";
|
||||
static const String sensorPresenceIcon =
|
||||
"assets/icons/sensor_presence_ic.svg";
|
||||
static const String sensorVacantIcon = "assets/icons/sensor_vacant_ic.svg";
|
||||
static const String illuminanceRecordIcon = "assets/icons/illuminance_record_ic.svg";
|
||||
static const String presenceRecordIcon = "assets/icons/presence_record_ic.svg";
|
||||
static const String helpDescriptionIcon = "assets/icons/help_description_ic.svg";
|
||||
static const String illuminanceRecordIcon =
|
||||
"assets/icons/illuminance_record_ic.svg";
|
||||
static const String presenceRecordIcon =
|
||||
"assets/icons/presence_record_ic.svg";
|
||||
static const String helpDescriptionIcon =
|
||||
"assets/icons/help_description_ic.svg";
|
||||
|
||||
static const String lightPulp = "assets/icons/light_pulb.svg";
|
||||
static const String acDevice = "assets/icons/ac_device.svg";
|
||||
@ -158,7 +183,8 @@ class Assets {
|
||||
//assets/icons/water_leak_normal.svg
|
||||
static const String waterLeakNormal = 'assets/icons/water_leak_normal.svg';
|
||||
//assets/icons/water_leak_detected.svg
|
||||
static const String waterLeakDetected = 'assets/icons/water_leak_detected.svg';
|
||||
static const String waterLeakDetected =
|
||||
'assets/icons/water_leak_detected.svg';
|
||||
|
||||
//assets/icons/automation_records.svg
|
||||
static const String automationRecords = 'assets/icons/automation_records.svg';
|
||||
@ -212,57 +238,100 @@ class Assets {
|
||||
static const String delay = 'assets/icons/routine/delay.svg';
|
||||
|
||||
// Assets for functions_icons
|
||||
static const String assetsSensitivityFunction = "assets/icons/functions_icons/sensitivity.svg";
|
||||
static const String assetsSensitivityOperationIcon = "assets/icons/functions_icons/sesitivity_operation_icon.svg";
|
||||
static const String assetsAcPower = "assets/icons/functions_icons/ac_power.svg";
|
||||
static const String assetsAcPowerOFF = "assets/icons/functions_icons/ac_power_off.svg";
|
||||
static const String assetsChildLock = "assets/icons/functions_icons/child_lock.svg";
|
||||
static const String assetsFreezing = "assets/icons/functions_icons/freezing.svg";
|
||||
static const String assetsFanSpeed = "assets/icons/functions_icons/fan_speed.svg";
|
||||
static const String assetsAcCooling = "assets/icons/functions_icons/ac_cooling.svg";
|
||||
static const String assetsAcHeating = "assets/icons/functions_icons/ac_heating.svg";
|
||||
static const String assetsCelsiusDegrees = "assets/icons/functions_icons/celsius_degrees.svg";
|
||||
static const String assetsTempreture = "assets/icons/functions_icons/tempreture.svg";
|
||||
static const String assetsAcFanLow = "assets/icons/functions_icons/ac_fan_low.svg";
|
||||
static const String assetsAcFanMiddle = "assets/icons/functions_icons/ac_fan_middle.svg";
|
||||
static const String assetsAcFanHigh = "assets/icons/functions_icons/ac_fan_high.svg";
|
||||
static const String assetsAcFanAuto = "assets/icons/functions_icons/ac_fan_auto.svg";
|
||||
static const String assetsSceneChildLock = "assets/icons/functions_icons/scene_child_lock.svg";
|
||||
static const String assetsSceneChildUnlock = "assets/icons/functions_icons/scene_child_unlock.svg";
|
||||
static const String assetsSceneRefresh = "assets/icons/functions_icons/scene_refresh.svg";
|
||||
static const String assetsLightCountdown = "assets/icons/functions_icons/light_countdown.svg";
|
||||
static const String assetsFarDetection = "assets/icons/functions_icons/far_detection.svg";
|
||||
static const String assetsFarDetectionFunction = "assets/icons/functions_icons/far_detection_function.svg";
|
||||
static const String assetsIndicator = "assets/icons/functions_icons/indicator.svg";
|
||||
static const String assetsMotionDetection = "assets/icons/functions_icons/motion_detection.svg";
|
||||
static const String assetsMotionlessDetection = "assets/icons/functions_icons/motionless_detection.svg";
|
||||
static const String assetsNobodyTime = "assets/icons/functions_icons/nobody_time.svg";
|
||||
static const String assetsFactoryReset = "assets/icons/functions_icons/factory_reset.svg";
|
||||
static const String assetsMasterState = "assets/icons/functions_icons/master_state.svg";
|
||||
static const String assetsSwitchAlarmSound = "assets/icons/functions_icons/switch_alarm_sound.svg";
|
||||
static const String assetsResetOff = "assets/icons/functions_icons/reset_off.svg";
|
||||
static const String assetsSensitivityFunction =
|
||||
"assets/icons/functions_icons/sensitivity.svg";
|
||||
static const String assetsSensitivityOperationIcon =
|
||||
"assets/icons/functions_icons/sesitivity_operation_icon.svg";
|
||||
static const String assetsAcPower =
|
||||
"assets/icons/functions_icons/ac_power.svg";
|
||||
static const String assetsAcPowerOFF =
|
||||
"assets/icons/functions_icons/ac_power_off.svg";
|
||||
static const String assetsChildLock =
|
||||
"assets/icons/functions_icons/child_lock.svg";
|
||||
static const String assetsFreezing =
|
||||
"assets/icons/functions_icons/freezing.svg";
|
||||
static const String assetsFanSpeed =
|
||||
"assets/icons/functions_icons/fan_speed.svg";
|
||||
static const String assetsAcCooling =
|
||||
"assets/icons/functions_icons/ac_cooling.svg";
|
||||
static const String assetsAcHeating =
|
||||
"assets/icons/functions_icons/ac_heating.svg";
|
||||
static const String assetsCelsiusDegrees =
|
||||
"assets/icons/functions_icons/celsius_degrees.svg";
|
||||
static const String assetsTempreture =
|
||||
"assets/icons/functions_icons/tempreture.svg";
|
||||
static const String assetsAcFanLow =
|
||||
"assets/icons/functions_icons/ac_fan_low.svg";
|
||||
static const String assetsAcFanMiddle =
|
||||
"assets/icons/functions_icons/ac_fan_middle.svg";
|
||||
static const String assetsAcFanHigh =
|
||||
"assets/icons/functions_icons/ac_fan_high.svg";
|
||||
static const String assetsAcFanAuto =
|
||||
"assets/icons/functions_icons/ac_fan_auto.svg";
|
||||
static const String assetsSceneChildLock =
|
||||
"assets/icons/functions_icons/scene_child_lock.svg";
|
||||
static const String assetsSceneChildUnlock =
|
||||
"assets/icons/functions_icons/scene_child_unlock.svg";
|
||||
static const String assetsSceneRefresh =
|
||||
"assets/icons/functions_icons/scene_refresh.svg";
|
||||
static const String assetsLightCountdown =
|
||||
"assets/icons/functions_icons/light_countdown.svg";
|
||||
static const String assetsFarDetection =
|
||||
"assets/icons/functions_icons/far_detection.svg";
|
||||
static const String assetsFarDetectionFunction =
|
||||
"assets/icons/functions_icons/far_detection_function.svg";
|
||||
static const String assetsIndicator =
|
||||
"assets/icons/functions_icons/indicator.svg";
|
||||
static const String assetsMotionDetection =
|
||||
"assets/icons/functions_icons/motion_detection.svg";
|
||||
static const String assetsMotionlessDetection =
|
||||
"assets/icons/functions_icons/motionless_detection.svg";
|
||||
static const String assetsNobodyTime =
|
||||
"assets/icons/functions_icons/nobody_time.svg";
|
||||
static const String assetsFactoryReset =
|
||||
"assets/icons/functions_icons/factory_reset.svg";
|
||||
static const String assetsMasterState =
|
||||
"assets/icons/functions_icons/master_state.svg";
|
||||
static const String assetsSwitchAlarmSound =
|
||||
"assets/icons/functions_icons/switch_alarm_sound.svg";
|
||||
static const String assetsResetOff =
|
||||
"assets/icons/functions_icons/reset_off.svg";
|
||||
|
||||
// Assets for automation_functions
|
||||
static const String assetsCardUnlock = "assets/icons/functions_icons/automation_functions/card_unlock.svg";
|
||||
static const String assetsDoorbell = "assets/icons/functions_icons/automation_functions/doorbell.svg";
|
||||
static const String assetsCardUnlock =
|
||||
"assets/icons/functions_icons/automation_functions/card_unlock.svg";
|
||||
static const String assetsDoorbell =
|
||||
"assets/icons/functions_icons/automation_functions/doorbell.svg";
|
||||
static const String assetsDoorlockNormalOpen =
|
||||
"assets/icons/functions_icons/automation_functions/doorlock_normal_open.svg";
|
||||
static const String assetsDoubleLock = "assets/icons/functions_icons/automation_functions/double_lock.svg";
|
||||
static const String assetsDoubleLock =
|
||||
"assets/icons/functions_icons/automation_functions/double_lock.svg";
|
||||
static const String assetsFingerprintUnlock =
|
||||
"assets/icons/functions_icons/automation_functions/fingerprint_unlock.svg";
|
||||
static const String assetsHijackAlarm = "assets/icons/functions_icons/automation_functions/hijack_alarm.svg";
|
||||
static const String assetsLockAlarm = "assets/icons/functions_icons/automation_functions/lock_alarm.svg";
|
||||
static const String assetsPasswordUnlock = "assets/icons/functions_icons/automation_functions/password_unlock.svg";
|
||||
static const String assetsRemoteUnlockReq = "assets/icons/functions_icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String assetsHijackAlarm =
|
||||
"assets/icons/functions_icons/automation_functions/hijack_alarm.svg";
|
||||
static const String assetsLockAlarm =
|
||||
"assets/icons/functions_icons/automation_functions/lock_alarm.svg";
|
||||
static const String assetsPasswordUnlock =
|
||||
"assets/icons/functions_icons/automation_functions/password_unlock.svg";
|
||||
static const String assetsRemoteUnlockReq =
|
||||
"assets/icons/functions_icons/automation_functions/remote_unlock_req.svg";
|
||||
static const String assetsRemoteUnlockViaApp =
|
||||
"assets/icons/functions_icons/automation_functions/remote_unlock_via_app.svg";
|
||||
static const String assetsResidualElectricity =
|
||||
"assets/icons/functions_icons/automation_functions/residual_electricity.svg";
|
||||
static const String assetsTempPasswordUnlock =
|
||||
"assets/icons/functions_icons/automation_functions/temp_password_unlock.svg";
|
||||
static const String assetsSelfTestResult = "assets/icons/functions_icons/automation_functions/self_test_result.svg";
|
||||
static const String assetsPresence = "assets/icons/functions_icons/automation_functions/presence.svg";
|
||||
static const String assetsMotion = "assets/icons/functions_icons/automation_functions/motion.svg";
|
||||
static const String assetsCurrentTemp = "assets/icons/functions_icons/automation_functions/current_temp.svg";
|
||||
static const String assetsPresenceState = "assets/icons/functions_icons/automation_functions/presence_state.svg";
|
||||
static const String assetsSelfTestResult =
|
||||
"assets/icons/functions_icons/automation_functions/self_test_result.svg";
|
||||
static const String assetsPresence =
|
||||
"assets/icons/functions_icons/automation_functions/presence.svg";
|
||||
static const String assetsMotion =
|
||||
"assets/icons/functions_icons/automation_functions/motion.svg";
|
||||
static const String assetsCurrentTemp =
|
||||
"assets/icons/functions_icons/automation_functions/current_temp.svg";
|
||||
static const String assetsPresenceState =
|
||||
"assets/icons/functions_icons/automation_functions/presence_state.svg";
|
||||
//assets/icons/routine/automation.svg
|
||||
static const String automation = 'assets/icons/routine/automation.svg';
|
||||
}
|
||||
|
32
pubspec.lock
32
pubspec.lock
@ -57,6 +57,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.6"
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -137,6 +145,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fixnum
|
||||
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
fl_chart:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -533,6 +549,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
sprintf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sprintf
|
||||
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -589,6 +613,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
uuid:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: uuid
|
||||
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.1"
|
||||
vector_graphics:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
Reference in New Issue
Block a user