diff --git a/assets/icons/functions_icons/ac_cooling.svg b/assets/icons/functions_icons/ac_cooling.svg
new file mode 100644
index 00000000..e95c0d4e
--- /dev/null
+++ b/assets/icons/functions_icons/ac_cooling.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/ac_fan_auto.svg b/assets/icons/functions_icons/ac_fan_auto.svg
new file mode 100644
index 00000000..0acacfef
--- /dev/null
+++ b/assets/icons/functions_icons/ac_fan_auto.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/functions_icons/ac_fan_high.svg b/assets/icons/functions_icons/ac_fan_high.svg
new file mode 100644
index 00000000..d6131531
--- /dev/null
+++ b/assets/icons/functions_icons/ac_fan_high.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/ac_fan_low.svg b/assets/icons/functions_icons/ac_fan_low.svg
new file mode 100644
index 00000000..f4bf56b7
--- /dev/null
+++ b/assets/icons/functions_icons/ac_fan_low.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/ac_fan_middle.svg b/assets/icons/functions_icons/ac_fan_middle.svg
new file mode 100644
index 00000000..ee940238
--- /dev/null
+++ b/assets/icons/functions_icons/ac_fan_middle.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/ac_heating.svg b/assets/icons/functions_icons/ac_heating.svg
new file mode 100644
index 00000000..47a160c8
--- /dev/null
+++ b/assets/icons/functions_icons/ac_heating.svg
@@ -0,0 +1,14 @@
+
diff --git a/assets/icons/functions_icons/ac_power.svg b/assets/icons/functions_icons/ac_power.svg
new file mode 100644
index 00000000..cc2127f0
--- /dev/null
+++ b/assets/icons/functions_icons/ac_power.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/icons/functions_icons/ac_power_off.svg b/assets/icons/functions_icons/ac_power_off.svg
new file mode 100644
index 00000000..70f7f9aa
--- /dev/null
+++ b/assets/icons/functions_icons/ac_power_off.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/card_unlock.svg b/assets/icons/functions_icons/automation_functions/card_unlock.svg
new file mode 100644
index 00000000..dd77680a
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/card_unlock.svg
@@ -0,0 +1,14 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/current_temp.svg b/assets/icons/functions_icons/automation_functions/current_temp.svg
new file mode 100644
index 00000000..42cceb23
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/current_temp.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/doorbell.svg b/assets/icons/functions_icons/automation_functions/doorbell.svg
new file mode 100644
index 00000000..1dc515a9
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/doorbell.svg
@@ -0,0 +1,13 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/doorlock_normal_open.svg b/assets/icons/functions_icons/automation_functions/doorlock_normal_open.svg
new file mode 100644
index 00000000..8f4a5901
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/doorlock_normal_open.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/double_lock.svg b/assets/icons/functions_icons/automation_functions/double_lock.svg
new file mode 100644
index 00000000..d8ad971d
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/double_lock.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/fingerprint_unlock.svg b/assets/icons/functions_icons/automation_functions/fingerprint_unlock.svg
new file mode 100644
index 00000000..f9f5b84c
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/fingerprint_unlock.svg
@@ -0,0 +1,79 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/hijack_alarm.svg b/assets/icons/functions_icons/automation_functions/hijack_alarm.svg
new file mode 100644
index 00000000..e32997fb
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/hijack_alarm.svg
@@ -0,0 +1,13 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/lock_alarm.svg b/assets/icons/functions_icons/automation_functions/lock_alarm.svg
new file mode 100644
index 00000000..8bd2deeb
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/lock_alarm.svg
@@ -0,0 +1,149 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/motion.svg b/assets/icons/functions_icons/automation_functions/motion.svg
new file mode 100644
index 00000000..8d69463b
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/motion.svg
@@ -0,0 +1,14 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/password_unlock.svg b/assets/icons/functions_icons/automation_functions/password_unlock.svg
new file mode 100644
index 00000000..1920b69f
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/password_unlock.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/presence.svg b/assets/icons/functions_icons/automation_functions/presence.svg
new file mode 100644
index 00000000..d71a474d
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/presence.svg
@@ -0,0 +1,18 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/presence_state.svg b/assets/icons/functions_icons/automation_functions/presence_state.svg
new file mode 100644
index 00000000..d5de48e1
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/presence_state.svg
@@ -0,0 +1,18 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/remote_unlock_req.svg b/assets/icons/functions_icons/automation_functions/remote_unlock_req.svg
new file mode 100644
index 00000000..da128ff7
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/remote_unlock_req.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/remote_unlock_via_app.svg b/assets/icons/functions_icons/automation_functions/remote_unlock_via_app.svg
new file mode 100644
index 00000000..39fc859b
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/remote_unlock_via_app.svg
@@ -0,0 +1,40 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/residual_electricity.svg b/assets/icons/functions_icons/automation_functions/residual_electricity.svg
new file mode 100644
index 00000000..6a5b6127
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/residual_electricity.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/self_test_result.svg b/assets/icons/functions_icons/automation_functions/self_test_result.svg
new file mode 100644
index 00000000..8739327b
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/self_test_result.svg
@@ -0,0 +1,23 @@
+
diff --git a/assets/icons/functions_icons/automation_functions/temp_password_unlock.svg b/assets/icons/functions_icons/automation_functions/temp_password_unlock.svg
new file mode 100644
index 00000000..98d7573c
--- /dev/null
+++ b/assets/icons/functions_icons/automation_functions/temp_password_unlock.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/functions_icons/celsius_degrees.svg b/assets/icons/functions_icons/celsius_degrees.svg
new file mode 100644
index 00000000..7acbd6e7
--- /dev/null
+++ b/assets/icons/functions_icons/celsius_degrees.svg
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/assets/icons/functions_icons/child_lock.svg b/assets/icons/functions_icons/child_lock.svg
new file mode 100644
index 00000000..6b0138bf
--- /dev/null
+++ b/assets/icons/functions_icons/child_lock.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/icons/functions_icons/factory_reset.svg b/assets/icons/functions_icons/factory_reset.svg
new file mode 100644
index 00000000..7a47f24b
--- /dev/null
+++ b/assets/icons/functions_icons/factory_reset.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/functions_icons/fan_speed.svg b/assets/icons/functions_icons/fan_speed.svg
new file mode 100644
index 00000000..07a48834
--- /dev/null
+++ b/assets/icons/functions_icons/fan_speed.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/far_detection.svg b/assets/icons/functions_icons/far_detection.svg
new file mode 100644
index 00000000..2827d94a
--- /dev/null
+++ b/assets/icons/functions_icons/far_detection.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/functions_icons/far_detection_function.svg b/assets/icons/functions_icons/far_detection_function.svg
new file mode 100644
index 00000000..894b84ed
--- /dev/null
+++ b/assets/icons/functions_icons/far_detection_function.svg
@@ -0,0 +1,17 @@
+
diff --git a/assets/icons/functions_icons/freezing.svg b/assets/icons/functions_icons/freezing.svg
new file mode 100644
index 00000000..6c02f2e4
--- /dev/null
+++ b/assets/icons/functions_icons/freezing.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/icons/functions_icons/indicator.svg b/assets/icons/functions_icons/indicator.svg
new file mode 100644
index 00000000..b58a976e
--- /dev/null
+++ b/assets/icons/functions_icons/indicator.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/light_countdown.svg b/assets/icons/functions_icons/light_countdown.svg
new file mode 100644
index 00000000..94f65b9a
--- /dev/null
+++ b/assets/icons/functions_icons/light_countdown.svg
@@ -0,0 +1,42 @@
+
diff --git a/assets/icons/functions_icons/master_state.svg b/assets/icons/functions_icons/master_state.svg
new file mode 100644
index 00000000..0aafae1a
--- /dev/null
+++ b/assets/icons/functions_icons/master_state.svg
@@ -0,0 +1,18 @@
+
diff --git a/assets/icons/functions_icons/motion_detection.svg b/assets/icons/functions_icons/motion_detection.svg
new file mode 100644
index 00000000..a9b2d685
--- /dev/null
+++ b/assets/icons/functions_icons/motion_detection.svg
@@ -0,0 +1,21 @@
+
diff --git a/assets/icons/functions_icons/motionless_detection.svg b/assets/icons/functions_icons/motionless_detection.svg
new file mode 100644
index 00000000..25a767c1
--- /dev/null
+++ b/assets/icons/functions_icons/motionless_detection.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/functions_icons/nobody_time.svg b/assets/icons/functions_icons/nobody_time.svg
new file mode 100644
index 00000000..df80b517
--- /dev/null
+++ b/assets/icons/functions_icons/nobody_time.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/functions_icons/reset_off.svg b/assets/icons/functions_icons/reset_off.svg
new file mode 100644
index 00000000..eac88f2b
--- /dev/null
+++ b/assets/icons/functions_icons/reset_off.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/functions_icons/scene_child_lock.svg b/assets/icons/functions_icons/scene_child_lock.svg
new file mode 100644
index 00000000..7e56164a
--- /dev/null
+++ b/assets/icons/functions_icons/scene_child_lock.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/scene_child_unlock.svg b/assets/icons/functions_icons/scene_child_unlock.svg
new file mode 100644
index 00000000..4eafbdea
--- /dev/null
+++ b/assets/icons/functions_icons/scene_child_unlock.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/scene_refresh.svg b/assets/icons/functions_icons/scene_refresh.svg
new file mode 100644
index 00000000..c54ffb04
--- /dev/null
+++ b/assets/icons/functions_icons/scene_refresh.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/functions_icons/sensitivity.svg b/assets/icons/functions_icons/sensitivity.svg
new file mode 100644
index 00000000..b75ebd3e
--- /dev/null
+++ b/assets/icons/functions_icons/sensitivity.svg
@@ -0,0 +1,14 @@
+
diff --git a/assets/icons/functions_icons/sesitivity_operation_icon.svg b/assets/icons/functions_icons/sesitivity_operation_icon.svg
new file mode 100644
index 00000000..612148c5
--- /dev/null
+++ b/assets/icons/functions_icons/sesitivity_operation_icon.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/icons/functions_icons/switch_alarm_sound.svg b/assets/icons/functions_icons/switch_alarm_sound.svg
new file mode 100644
index 00000000..db645338
--- /dev/null
+++ b/assets/icons/functions_icons/switch_alarm_sound.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/functions_icons/tempreture.svg b/assets/icons/functions_icons/tempreture.svg
new file mode 100644
index 00000000..448083a7
--- /dev/null
+++ b/assets/icons/functions_icons/tempreture.svg
@@ -0,0 +1,11 @@
+
diff --git a/lib/pages/device_managment/all_devices/models/devices_model.dart b/lib/pages/device_managment/all_devices/models/devices_model.dart
index 50e588b0..b37ff36c 100644
--- a/lib/pages/device_managment/all_devices/models/devices_model.dart
+++ b/lib/pages/device_managment/all_devices/models/devices_model.dart
@@ -2,6 +2,8 @@ import 'package:syncrow_web/pages/device_managment/all_devices/models/device_com
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_space_model.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/room.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/unit.dart';
+import 'package:syncrow_web/pages/routiens/models/ac/ac_function.dart';
+import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
import 'package:syncrow_web/utils/constants/assets.dart';
import 'package:syncrow_web/utils/enum/device_types.dart';
@@ -69,6 +71,7 @@ class AllDevicesModel {
int? batteryLevel;
String? productName;
List? spaces;
+ List? _deviceFunctions;
AllDevicesModel({
this.room,
@@ -215,6 +218,28 @@ SOS
return tempIcon;
}
+ List get deviceFunctions {
+ _deviceFunctions ??= _getDeviceFunctions();
+ return _deviceFunctions!;
+ }
+
+ List _getDeviceFunctions() {
+ switch (productType) {
+ case 'AC':
+ return [
+ SwitchFunction(deviceId: uuid ?? '', deviceName: name ?? ''),
+ ModeFunction(deviceId: uuid ?? '', deviceName: name ?? ''),
+ TempSetFunction(deviceId: uuid ?? '', deviceName: name ?? ''),
+ LevelFunction(deviceId: uuid ?? '', deviceName: name ?? ''),
+ ChildLockFunction(deviceId: uuid ?? '', deviceName: name ?? ''),
+ ];
+
+ // other product types
+ default:
+ return [];
+ }
+ }
+
Map toJson() {
final data = {};
if (room != null) {
diff --git a/lib/pages/routiens/bloc/routine_bloc.dart b/lib/pages/routiens/bloc/routine_bloc.dart
index a7fd7228..dfbb824c 100644
--- a/lib/pages/routiens/bloc/routine_bloc.dart
+++ b/lib/pages/routiens/bloc/routine_bloc.dart
@@ -17,13 +17,21 @@ class RoutineBloc extends Bloc {
}
void _onAddToIfContainer(AddToIfContainer event, Emitter emit) {
- final updatedIfItems = List