diff --git a/assets/icons/close_curtain.svg b/assets/icons/close_curtain.svg
new file mode 100644
index 00000000..53f9e03b
--- /dev/null
+++ b/assets/icons/close_curtain.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/open_curtain.svg b/assets/icons/open_curtain.svg
new file mode 100644
index 00000000..715773a5
--- /dev/null
+++ b/assets/icons/open_curtain.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/pause_curtain.svg b/assets/icons/pause_curtain.svg
new file mode 100644
index 00000000..8f90ea4f
--- /dev/null
+++ b/assets/icons/pause_curtain.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/reverse_arrows.svg b/assets/icons/reverse_arrows.svg
new file mode 100644
index 00000000..fe119c39
--- /dev/null
+++ b/assets/icons/reverse_arrows.svg
@@ -0,0 +1,10 @@
+
diff --git a/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart b/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
index 5586a310..cc09260e 100644
--- a/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
+++ b/lib/pages/device_managment/all_devices/helper/route_controls_based_code.dart
@@ -7,6 +7,8 @@ import 'package:syncrow_web/pages/device_managment/ceiling_sensor/view/ceiling_s
import 'package:syncrow_web/pages/device_managment/ceiling_sensor/view/ceiling_sensor_controls.dart';
import 'package:syncrow_web/pages/device_managment/curtain/view/curtain_batch_status_view.dart';
import 'package:syncrow_web/pages/device_managment/curtain/view/curtain_status_view.dart';
+import 'package:syncrow_web/pages/device_managment/curtain_module/view/curtain_module_batch.dart';
+import 'package:syncrow_web/pages/device_managment/curtain_module/view/curtain_module_items.dart';
import 'package:syncrow_web/pages/device_managment/door_lock/view/door_lock_batch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/door_lock/view/door_lock_control_view.dart';
import 'package:syncrow_web/pages/device_managment/flush_mounted_presence_sensor/views/flush_mounted_presence_sensor_batch_control_view.dart';
@@ -18,6 +20,7 @@ import 'package:syncrow_web/pages/device_managment/gateway/view/gateway_view.dar
import 'package:syncrow_web/pages/device_managment/main_door_sensor/view/main_door_control_view.dart';
import 'package:syncrow_web/pages/device_managment/main_door_sensor/view/main_door_sensor_batch_view.dart';
import 'package:syncrow_web/pages/device_managment/one_g_glass_switch/view/one_gang_glass_batch_control_view.dart';
+import 'package:syncrow_web/pages/device_managment/one_g_glass_switch/view/one_gang_glass_switch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_light_batch_control.dart';
import 'package:syncrow_web/pages/device_managment/one_gang_switch/view/wall_light_device_control.dart';
import 'package:syncrow_web/pages/device_managment/power_clamp/view/power_clamp_batch_control_view.dart';
@@ -39,8 +42,6 @@ import 'package:syncrow_web/pages/device_managment/water_heater/view/water_heate
import 'package:syncrow_web/pages/device_managment/water_leak/view/water_leak_batch_control_view.dart';
import 'package:syncrow_web/pages/device_managment/water_leak/view/water_leak_control_view.dart';
-import '../../one_g_glass_switch/view/one_gang_glass_switch_control_view.dart';
-
mixin RouteControlsBasedCode {
Widget routeControlsWidgets({required AllDevicesModel device}) {
switch (device.productType) {
@@ -84,6 +85,10 @@ mixin RouteControlsBasedCode {
return CurtainStatusControlsView(
deviceId: device.uuid!,
);
+ case 'CUR_2':
+ return CurtainModuleItems(
+ deviceId: device.uuid!,
+ );
case 'AC':
return AcDeviceControlsView(device: device);
case 'WH':
@@ -107,7 +112,7 @@ mixin RouteControlsBasedCode {
case 'SOS':
return SosDeviceControlsView(device: device);
- case 'NCPS':
+ case 'NCPS':
return FlushMountedPresenceSensorControlView(device: device);
default:
return const SizedBox();
@@ -132,76 +137,140 @@ mixin RouteControlsBasedCode {
switch (devices.first.productType) {
case '1G':
return WallLightBatchControlView(
- deviceIds: devices.where((e) => (e.productType == '1G')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '1G')
+ .map((e) => e.uuid!)
+ .toList(),
);
case '2G':
return TwoGangBatchControlView(
- deviceIds: devices.where((e) => (e.productType == '2G')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '2G')
+ .map((e) => e.uuid!)
+ .toList(),
);
case '3G':
return LivingRoomBatchControlsView(
- deviceIds: devices.where((e) => (e.productType == '3G')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '3G')
+ .map((e) => e.uuid!)
+ .toList(),
);
case '1GT':
return OneGangGlassSwitchBatchControlView(
- deviceIds: devices.where((e) => (e.productType == '1GT')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '1GT')
+ .map((e) => e.uuid!)
+ .toList(),
);
case '2GT':
return TwoGangGlassSwitchBatchControlView(
- deviceIds: devices.where((e) => (e.productType == '2GT')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '2GT')
+ .map((e) => e.uuid!)
+ .toList(),
);
case '3GT':
return ThreeGangGlassSwitchBatchControlView(
- deviceIds: devices.where((e) => (e.productType == '3GT')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == '3GT')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'GW':
return GatewayBatchControlView(
- gatewayIds: devices.where((e) => (e.productType == 'GW')).map((e) => e.uuid!).toList(),
+ gatewayIds: devices
+ .where((e) => e.productType == 'GW')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'DL':
return DoorLockBatchControlView(
- devicesIds: devices.where((e) => (e.productType == 'DL')).map((e) => e.uuid!).toList());
+ devicesIds: devices
+ .where((e) => e.productType == 'DL')
+ .map((e) => e.uuid!)
+ .toList());
case 'WPS':
return WallSensorBatchControlView(
- devicesIds: devices.where((e) => (e.productType == 'WPS')).map((e) => e.uuid!).toList());
+ devicesIds: devices
+ .where((e) => e.productType == 'WPS')
+ .map((e) => e.uuid!)
+ .toList());
case 'CPS':
return CeilingSensorBatchControlView(
- devicesIds: devices.where((e) => (e.productType == 'CPS')).map((e) => e.uuid!).toList(),
+ devicesIds: devices
+ .where((e) => e.productType == 'CPS')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'CUR':
return CurtainBatchStatusView(
- devicesIds: devices.where((e) => (e.productType == 'CUR')).map((e) => e.uuid!).toList(),
+ devicesIds: devices
+ .where((e) => e.productType == 'CUR')
+ .map((e) => e.uuid!)
+ .toList(),
+ );
+ case 'CUR_2':
+ return CurtainModuleBatchView(
+ devicesIds: devices
+ .where((e) => e.productType == 'AC')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'AC':
return AcDeviceBatchControlView(
- devicesIds: devices.where((e) => (e.productType == 'AC')).map((e) => e.uuid!).toList());
+ devicesIds: devices
+ .where((e) => e.productType == 'AC')
+ .map((e) => e.uuid!)
+ .toList());
case 'WH':
return WaterHEaterBatchControlView(
- deviceIds: devices.where((e) => (e.productType == 'WH')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == 'WH')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'DS':
return MainDoorSensorBatchView(
- devicesIds: devices.where((e) => (e.productType == 'DS')).map((e) => e.uuid!).toList(),
+ devicesIds: devices
+ .where((e) => e.productType == 'DS')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'GD':
return GarageDoorBatchControlView(
- deviceIds: devices.where((e) => (e.productType == 'GD')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == 'GD')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'WL':
return WaterLeakBatchControlView(
- deviceIds: devices.where((e) => (e.productType == 'WL')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == 'WL')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'PC':
return PowerClampBatchControlView(
- deviceIds: devices.where((e) => (e.productType == 'PC')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == 'PC')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'SOS':
return SOSBatchControlView(
- deviceIds: devices.where((e) => (e.productType == 'SOS')).map((e) => e.uuid!).toList(),
+ deviceIds: devices
+ .where((e) => e.productType == 'SOS')
+ .map((e) => e.uuid!)
+ .toList(),
);
case 'NCPS':
return FlushMountedPresenceSensorBatchControlView(
- devicesIds: devices.where((e) => (e.productType == 'NCPS')).map((e) => e.uuid!).toList(),
+ devicesIds: devices
+ .where((e) => e.productType == 'NCPS')
+ .map((e) => e.uuid!)
+ .toList(),
);
default:
return const SizedBox();