diff --git a/assets/functions_icons/presence-sensor-assets/Distance.svg b/assets/functions_icons/presence-sensor-assets/Distance.svg
deleted file mode 100644
index 50578147..00000000
--- a/assets/functions_icons/presence-sensor-assets/Distance.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Empty.svg b/assets/functions_icons/presence-sensor-assets/Empty.svg
deleted file mode 100644
index cf1e5df5..00000000
--- a/assets/functions_icons/presence-sensor-assets/Empty.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Illuminance-Record.svg b/assets/functions_icons/presence-sensor-assets/Illuminance-Record.svg
deleted file mode 100644
index 5f642436..00000000
--- a/assets/functions_icons/presence-sensor-assets/Illuminance-Record.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Illuminance-Value.svg b/assets/functions_icons/presence-sensor-assets/Illuminance-Value.svg
deleted file mode 100644
index c087b7cd..00000000
--- a/assets/functions_icons/presence-sensor-assets/Illuminance-Value.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Indicator.svg b/assets/functions_icons/presence-sensor-assets/Indicator.svg
deleted file mode 100644
index 600d6da4..00000000
--- a/assets/functions_icons/presence-sensor-assets/Indicator.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Presence.svg b/assets/functions_icons/presence-sensor-assets/Presence.svg
deleted file mode 100644
index 638cb391..00000000
--- a/assets/functions_icons/presence-sensor-assets/Presence.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Record.svg b/assets/functions_icons/presence-sensor-assets/Record.svg
deleted file mode 100644
index ff39c7ff..00000000
--- a/assets/functions_icons/presence-sensor-assets/Record.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Sensitivity.svg b/assets/functions_icons/presence-sensor-assets/Sensitivity.svg
deleted file mode 100644
index bac78f75..00000000
--- a/assets/functions_icons/presence-sensor-assets/Sensitivity.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/Time.svg b/assets/functions_icons/presence-sensor-assets/Time.svg
deleted file mode 100644
index f5b43adb..00000000
--- a/assets/functions_icons/presence-sensor-assets/Time.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/help-description.svg b/assets/functions_icons/presence-sensor-assets/help-description.svg
deleted file mode 100644
index 1dd6f197..00000000
--- a/assets/functions_icons/presence-sensor-assets/help-description.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/induction-recording.svg b/assets/functions_icons/presence-sensor-assets/induction-recording.svg
deleted file mode 100644
index 97e2c460..00000000
--- a/assets/functions_icons/presence-sensor-assets/induction-recording.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/maximum_distance.svg b/assets/functions_icons/presence-sensor-assets/maximum_distance.svg
deleted file mode 100644
index 9b0faa1c..00000000
--- a/assets/functions_icons/presence-sensor-assets/maximum_distance.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/parameter-settings.svg b/assets/functions_icons/presence-sensor-assets/parameter-settings.svg
deleted file mode 100644
index a9966354..00000000
--- a/assets/functions_icons/presence-sensor-assets/parameter-settings.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/presence-sensor-motion.svg b/assets/functions_icons/presence-sensor-assets/presence-sensor-motion.svg
deleted file mode 100644
index 6d33deb7..00000000
--- a/assets/functions_icons/presence-sensor-assets/presence-sensor-motion.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
diff --git a/assets/functions_icons/presence-sensor-assets/space_type_icon.svg b/assets/functions_icons/presence-sensor-assets/space_type_icon.svg
deleted file mode 100644
index 198948f2..00000000
--- a/assets/functions_icons/presence-sensor-assets/space_type_icon.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/functions_icons/ac_air.svg b/assets/icons/ac_air.svg
similarity index 100%
rename from assets/functions_icons/ac_air.svg
rename to assets/icons/ac_air.svg
diff --git a/assets/functions_icons/ac_cooling.svg b/assets/icons/ac_cooling.svg
similarity index 100%
rename from assets/functions_icons/ac_cooling.svg
rename to assets/icons/ac_cooling.svg
diff --git a/assets/functions_icons/ac_device.svg b/assets/icons/ac_device.svg
similarity index 100%
rename from assets/functions_icons/ac_device.svg
rename to assets/icons/ac_device.svg
diff --git a/assets/functions_icons/ac_fan_auto.svg b/assets/icons/ac_fan_auto.svg
similarity index 100%
rename from assets/functions_icons/ac_fan_auto.svg
rename to assets/icons/ac_fan_auto.svg
diff --git a/assets/functions_icons/ac_fan_high.svg b/assets/icons/ac_fan_high.svg
similarity index 100%
rename from assets/functions_icons/ac_fan_high.svg
rename to assets/icons/ac_fan_high.svg
diff --git a/assets/functions_icons/ac_fan_low.svg b/assets/icons/ac_fan_low.svg
similarity index 100%
rename from assets/functions_icons/ac_fan_low.svg
rename to assets/icons/ac_fan_low.svg
diff --git a/assets/functions_icons/ac_fan_middle.svg b/assets/icons/ac_fan_middle.svg
similarity index 100%
rename from assets/functions_icons/ac_fan_middle.svg
rename to assets/icons/ac_fan_middle.svg
diff --git a/assets/functions_icons/ac_heating.svg b/assets/icons/ac_heating.svg
similarity index 100%
rename from assets/functions_icons/ac_heating.svg
rename to assets/icons/ac_heating.svg
diff --git a/assets/functions_icons/ac_power.svg b/assets/icons/ac_power.svg
similarity index 100%
rename from assets/functions_icons/ac_power.svg
rename to assets/icons/ac_power.svg
diff --git a/assets/functions_icons/ac_power_off.svg b/assets/icons/ac_power_off.svg
similarity index 100%
rename from assets/functions_icons/ac_power_off.svg
rename to assets/icons/ac_power_off.svg
diff --git a/assets/functions_icons/ac_sun.svg b/assets/icons/ac_sun.svg
similarity index 100%
rename from assets/functions_icons/ac_sun.svg
rename to assets/icons/ac_sun.svg
diff --git a/assets/functions_icons/automation_functions/card_unlock.svg b/assets/icons/automation_functions/card_unlock.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/card_unlock.svg
rename to assets/icons/automation_functions/card_unlock.svg
diff --git a/assets/functions_icons/automation_functions/current_temp.svg b/assets/icons/automation_functions/current_temp.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/current_temp.svg
rename to assets/icons/automation_functions/current_temp.svg
diff --git a/assets/functions_icons/automation_functions/doorbell.svg b/assets/icons/automation_functions/doorbell.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/doorbell.svg
rename to assets/icons/automation_functions/doorbell.svg
diff --git a/assets/functions_icons/automation_functions/doorlock_normal_open.svg b/assets/icons/automation_functions/doorlock_normal_open.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/doorlock_normal_open.svg
rename to assets/icons/automation_functions/doorlock_normal_open.svg
diff --git a/assets/functions_icons/automation_functions/double_lock.svg b/assets/icons/automation_functions/double_lock.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/double_lock.svg
rename to assets/icons/automation_functions/double_lock.svg
diff --git a/assets/functions_icons/automation_functions/fingerprint_unlock.svg b/assets/icons/automation_functions/fingerprint_unlock.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/fingerprint_unlock.svg
rename to assets/icons/automation_functions/fingerprint_unlock.svg
diff --git a/assets/functions_icons/automation_functions/hijack_alarm.svg b/assets/icons/automation_functions/hijack_alarm.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/hijack_alarm.svg
rename to assets/icons/automation_functions/hijack_alarm.svg
diff --git a/assets/functions_icons/automation_functions/lock_alarm.svg b/assets/icons/automation_functions/lock_alarm.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/lock_alarm.svg
rename to assets/icons/automation_functions/lock_alarm.svg
diff --git a/assets/functions_icons/automation_functions/motion.svg b/assets/icons/automation_functions/motion.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/motion.svg
rename to assets/icons/automation_functions/motion.svg
diff --git a/assets/functions_icons/automation_functions/password_unlock.svg b/assets/icons/automation_functions/password_unlock.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/password_unlock.svg
rename to assets/icons/automation_functions/password_unlock.svg
diff --git a/assets/functions_icons/automation_functions/presence.svg b/assets/icons/automation_functions/presence.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/presence.svg
rename to assets/icons/automation_functions/presence.svg
diff --git a/assets/functions_icons/automation_functions/presence_state.svg b/assets/icons/automation_functions/presence_state.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/presence_state.svg
rename to assets/icons/automation_functions/presence_state.svg
diff --git a/assets/functions_icons/automation_functions/remote_unlock_req.svg b/assets/icons/automation_functions/remote_unlock_req.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/remote_unlock_req.svg
rename to assets/icons/automation_functions/remote_unlock_req.svg
diff --git a/assets/functions_icons/automation_functions/remote_unlock_via_app.svg b/assets/icons/automation_functions/remote_unlock_via_app.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/remote_unlock_via_app.svg
rename to assets/icons/automation_functions/remote_unlock_via_app.svg
diff --git a/assets/functions_icons/automation_functions/residual_electricity.svg b/assets/icons/automation_functions/residual_electricity.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/residual_electricity.svg
rename to assets/icons/automation_functions/residual_electricity.svg
diff --git a/assets/functions_icons/automation_functions/self_test_result.svg b/assets/icons/automation_functions/self_test_result.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/self_test_result.svg
rename to assets/icons/automation_functions/self_test_result.svg
diff --git a/assets/functions_icons/automation_functions/temp_password_unlock.svg b/assets/icons/automation_functions/temp_password_unlock.svg
similarity index 100%
rename from assets/functions_icons/automation_functions/temp_password_unlock.svg
rename to assets/icons/automation_functions/temp_password_unlock.svg
diff --git a/assets/functions_icons/celsius_degrees.svg b/assets/icons/celsius_degrees.svg
similarity index 100%
rename from assets/functions_icons/celsius_degrees.svg
rename to assets/icons/celsius_degrees.svg
diff --git a/assets/functions_icons/child_lock.svg b/assets/icons/child_lock.svg
similarity index 100%
rename from assets/functions_icons/child_lock.svg
rename to assets/icons/child_lock.svg
diff --git a/assets/functions_icons/factory_reset.svg b/assets/icons/factory_reset.svg
similarity index 100%
rename from assets/functions_icons/factory_reset.svg
rename to assets/icons/factory_reset.svg
diff --git a/assets/functions_icons/fan_speed.svg b/assets/icons/fan_speed.svg
similarity index 100%
rename from assets/functions_icons/fan_speed.svg
rename to assets/icons/fan_speed.svg
diff --git a/assets/functions_icons/far_detection.svg b/assets/icons/far_detection.svg
similarity index 100%
rename from assets/functions_icons/far_detection.svg
rename to assets/icons/far_detection.svg
diff --git a/assets/functions_icons/far_detection_function.svg b/assets/icons/far_detection_function.svg
similarity index 100%
rename from assets/functions_icons/far_detection_function.svg
rename to assets/icons/far_detection_function.svg
diff --git a/assets/functions_icons/freezing.svg b/assets/icons/freezing.svg
similarity index 100%
rename from assets/functions_icons/freezing.svg
rename to assets/icons/freezing.svg
diff --git a/assets/icons/help_description_ic.svg b/assets/icons/help_description_ic.svg
new file mode 100644
index 00000000..5f86b69b
--- /dev/null
+++ b/assets/icons/help_description_ic.svg
@@ -0,0 +1,17 @@
+
diff --git a/assets/icons/illuminance_record_ic.svg b/assets/icons/illuminance_record_ic.svg
new file mode 100644
index 00000000..a92935ff
--- /dev/null
+++ b/assets/icons/illuminance_record_ic.svg
@@ -0,0 +1,18 @@
+
diff --git a/assets/functions_icons/indicator.svg b/assets/icons/indicator.svg
similarity index 100%
rename from assets/functions_icons/indicator.svg
rename to assets/icons/indicator.svg
diff --git a/assets/functions_icons/light_countdown.svg b/assets/icons/light_countdown.svg
similarity index 100%
rename from assets/functions_icons/light_countdown.svg
rename to assets/icons/light_countdown.svg
diff --git a/assets/functions_icons/light_pulb.svg b/assets/icons/light_pulb.svg
similarity index 100%
rename from assets/functions_icons/light_pulb.svg
rename to assets/icons/light_pulb.svg
diff --git a/assets/functions_icons/master_state.svg b/assets/icons/master_state.svg
similarity index 100%
rename from assets/functions_icons/master_state.svg
rename to assets/icons/master_state.svg
diff --git a/assets/functions_icons/motion_detection.svg b/assets/icons/motion_detection.svg
similarity index 100%
rename from assets/functions_icons/motion_detection.svg
rename to assets/icons/motion_detection.svg
diff --git a/assets/functions_icons/motionless_detection.svg b/assets/icons/motionless_detection.svg
similarity index 100%
rename from assets/functions_icons/motionless_detection.svg
rename to assets/icons/motionless_detection.svg
diff --git a/assets/functions_icons/nobody_time.svg b/assets/icons/nobody_time.svg
similarity index 100%
rename from assets/functions_icons/nobody_time.svg
rename to assets/icons/nobody_time.svg
diff --git a/assets/icons/presence_record_ic.svg b/assets/icons/presence_record_ic.svg
new file mode 100644
index 00000000..0bc133f7
--- /dev/null
+++ b/assets/icons/presence_record_ic.svg
@@ -0,0 +1,22 @@
+
diff --git a/assets/functions_icons/reset_off.svg b/assets/icons/reset_off.svg
similarity index 100%
rename from assets/functions_icons/reset_off.svg
rename to assets/icons/reset_off.svg
diff --git a/assets/functions_icons/scene_child_lock.svg b/assets/icons/scene_child_lock.svg
similarity index 100%
rename from assets/functions_icons/scene_child_lock.svg
rename to assets/icons/scene_child_lock.svg
diff --git a/assets/functions_icons/scene_child_unlock.svg b/assets/icons/scene_child_unlock.svg
similarity index 100%
rename from assets/functions_icons/scene_child_unlock.svg
rename to assets/icons/scene_child_unlock.svg
diff --git a/assets/functions_icons/scene_refresh.svg b/assets/icons/scene_refresh.svg
similarity index 100%
rename from assets/functions_icons/scene_refresh.svg
rename to assets/icons/scene_refresh.svg
diff --git a/assets/functions_icons/sensitivity.svg b/assets/icons/sensitivity.svg
similarity index 100%
rename from assets/functions_icons/sensitivity.svg
rename to assets/icons/sensitivity.svg
diff --git a/assets/icons/sensor_motion_ic.svg b/assets/icons/sensor_motion_ic.svg
new file mode 100644
index 00000000..ceb4080a
--- /dev/null
+++ b/assets/icons/sensor_motion_ic.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/sensor_presence_ic.svg b/assets/icons/sensor_presence_ic.svg
new file mode 100644
index 00000000..e30b109c
--- /dev/null
+++ b/assets/icons/sensor_presence_ic.svg
@@ -0,0 +1,13 @@
+
diff --git a/assets/icons/sensor_vacant_ic.svg b/assets/icons/sensor_vacant_ic.svg
new file mode 100644
index 00000000..8ee00e79
--- /dev/null
+++ b/assets/icons/sensor_vacant_ic.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/functions_icons/sesitivity_operation_icon.svg b/assets/icons/sesitivity_operation_icon.svg
similarity index 100%
rename from assets/functions_icons/sesitivity_operation_icon.svg
rename to assets/icons/sesitivity_operation_icon.svg
diff --git a/assets/functions_icons/switch_alarm_sound.svg b/assets/icons/switch_alarm_sound.svg
similarity index 100%
rename from assets/functions_icons/switch_alarm_sound.svg
rename to assets/icons/switch_alarm_sound.svg
diff --git a/assets/functions_icons/tempreture.svg b/assets/icons/tempreture.svg
similarity index 100%
rename from assets/functions_icons/tempreture.svg
rename to assets/icons/tempreture.svg
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
new file mode 100644
index 00000000..85fd7a99
--- /dev/null
+++ b/ios/Podfile.lock
@@ -0,0 +1,36 @@
+PODS:
+ - Flutter (1.0.0)
+ - flutter_secure_storage (6.0.0):
+ - Flutter
+ - path_provider_foundation (0.0.1):
+ - Flutter
+ - FlutterMacOS
+ - shared_preferences_foundation (0.0.1):
+ - Flutter
+ - FlutterMacOS
+
+DEPENDENCIES:
+ - Flutter (from `Flutter`)
+ - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
+ - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
+ - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
+
+EXTERNAL SOURCES:
+ Flutter:
+ :path: Flutter
+ flutter_secure_storage:
+ :path: ".symlinks/plugins/flutter_secure_storage/ios"
+ path_provider_foundation:
+ :path: ".symlinks/plugins/path_provider_foundation/darwin"
+ shared_preferences_foundation:
+ :path: ".symlinks/plugins/shared_preferences_foundation/darwin"
+
+SPEC CHECKSUMS:
+ Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
+ flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
+ path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
+ shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
+
+PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
+
+COCOAPODS: 1.15.2
diff --git a/lib/pages/device_managment/ac/view/ac_device_control.dart b/lib/pages/device_managment/ac/view/ac_device_control.dart
index a4f4b524..86aebbba 100644
--- a/lib/pages/device_managment/ac/view/ac_device_control.dart
+++ b/lib/pages/device_managment/ac/view/ac_device_control.dart
@@ -3,9 +3,9 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/device_managment/ac/bloc/ac_bloc.dart';
import 'package:syncrow_web/pages/device_managment/ac/bloc/ac_event.dart';
import 'package:syncrow_web/pages/device_managment/ac/bloc/ac_state.dart';
-import 'package:syncrow_web/pages/device_managment/ac/control_list/ac_mode.dart';
-import 'package:syncrow_web/pages/device_managment/ac/control_list/ac_toggle.dart';
-import 'package:syncrow_web/pages/device_managment/ac/control_list/current_temp.dart';
+import 'package:syncrow_web/pages/device_managment/ac/view/control_list/ac_mode.dart';
+import 'package:syncrow_web/pages/device_managment/ac/view/control_list/ac_toggle.dart';
+import 'package:syncrow_web/pages/device_managment/ac/view/control_list/current_temp.dart';
import 'package:syncrow_web/pages/device_managment/ac/model/ac_model.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
import 'package:syncrow_web/utils/helpers/responsice_layout_helper/responsive_layout_helper.dart';
@@ -35,8 +35,7 @@ class AcDeviceControl extends StatelessWidget with HelperResponsiveLayout {
);
}
- Widget _buildStatusControls(
- AcStatusModel statuses, bool isLarge, bool isMedium) {
+ Widget _buildStatusControls(AcStatusModel statuses, bool isLarge, bool isMedium) {
return GridView(
padding: const EdgeInsets.symmetric(horizontal: 50),
shrinkWrap: true,
diff --git a/lib/pages/device_managment/ac/control_list/ac_mode.dart b/lib/pages/device_managment/ac/view/control_list/ac_mode.dart
similarity index 100%
rename from lib/pages/device_managment/ac/control_list/ac_mode.dart
rename to lib/pages/device_managment/ac/view/control_list/ac_mode.dart
diff --git a/lib/pages/device_managment/ac/control_list/ac_toggle.dart b/lib/pages/device_managment/ac/view/control_list/ac_toggle.dart
similarity index 100%
rename from lib/pages/device_managment/ac/control_list/ac_toggle.dart
rename to lib/pages/device_managment/ac/view/control_list/ac_toggle.dart
diff --git a/lib/pages/device_managment/ac/control_list/current_temp.dart b/lib/pages/device_managment/ac/view/control_list/current_temp.dart
similarity index 100%
rename from lib/pages/device_managment/ac/control_list/current_temp.dart
rename to lib/pages/device_managment/ac/view/control_list/current_temp.dart
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 39e02d98..632cbc68 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
@@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/device_managment/ac/view/ac_device_control.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/devices_model.dart';
+import 'package:syncrow_web/pages/device_managment/ceiling_sensor/view/ceiling_sensor_controls.dart';
import 'package:syncrow_web/pages/device_managment/living_room_switch/view/living_room_device_control.dart';
import 'package:syncrow_web/pages/device_managment/wall_sensor/view/wall_sensor_conrtols.dart';
@@ -19,7 +20,9 @@ mixin RouteControlsBasedCode {
case 'WPS':
return WallSensorControls(device: device);
case 'CPS':
- return const SizedBox();
+ return CeilingSensorControls(
+ device: device,
+ );
case 'AC':
return AcDeviceControl(device: device);
default:
diff --git a/lib/pages/device_managment/ceiling_sensor/bloc/bloc.dart b/lib/pages/device_managment/ceiling_sensor/bloc/bloc.dart
new file mode 100644
index 00000000..05476977
--- /dev/null
+++ b/lib/pages/device_managment/ceiling_sensor/bloc/bloc.dart
@@ -0,0 +1,87 @@
+import 'dart:async';
+import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:syncrow_web/pages/device_managment/all_devices/models/device_status.dart';
+import 'package:syncrow_web/pages/device_managment/ceiling_sensor/bloc/event.dart';
+import 'package:syncrow_web/pages/device_managment/ceiling_sensor/bloc/state.dart';
+import 'package:syncrow_web/pages/device_managment/ceiling_sensor/model/ceiling_sensor_model.dart';
+import 'package:syncrow_web/services/devices_mang_api.dart';
+
+class CeilingSensorBloc extends Bloc {
+ final String deviceId;
+ late CeilingSensorModel deviceStatus;
+ Timer? _timer;
+
+ CeilingSensorBloc({required this.deviceId}) : super(CeilingInitialState()) {
+ on(_fetchCeilingSensorStatus);
+ on(_changeValue);
+ }
+
+ void _fetchCeilingSensorStatus(
+ CeilingInitialEvent event, Emitter emit) async {
+ emit(CeilingLoadingInitialState());
+ try {
+ var response = await DevicesManagementApi().getDeviceStatus(deviceId);
+ deviceStatus = CeilingSensorModel.fromJson(response.status);
+ emit(CeilingUpdateState(ceilingSensorModel: deviceStatus));
+ // _listenToChanges();
+ } catch (e) {
+ emit(CeilingFailedState(error: e.toString()));
+ return;
+ }
+ }
+
+ // _listenToChanges() {
+ // try {
+ // DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$deviceId');
+ // Stream stream = ref.onValue;
+
+ // stream.listen((DatabaseEvent event) {
+ // Map usersMap = event.snapshot.value as Map;
+ // List statusList = [];
+
+ // usersMap['status'].forEach((element) {
+ // statusList.add(StatusModel(code: element['code'], value: element['value']));
+ // });
+
+ // deviceStatus = WallSensorModel.fromJson(statusList);
+ // add(WallSensorUpdatedEvent());
+ // });
+ // } catch (_) {}
+ // }
+
+ void _changeValue(CeilingChangeValueEvent event, Emitter emit) async {
+ emit(CeilingLoadingNewSate(ceilingSensorModel: deviceStatus));
+ if (event.code == 'sensitivity') {
+ deviceStatus.sensitivity = event.value;
+ } else if (event.code == 'none_body_time') {
+ deviceStatus.noBodyTime = event.value;
+ } else if (event.code == 'moving_max_dis') {
+ deviceStatus.maxDistance = event.value;
+ }
+ emit(CeilingUpdateState(ceilingSensorModel: deviceStatus));
+ await _runDeBouncer(deviceId: deviceId, code: event.code, value: event.value);
+ }
+
+ _runDeBouncer({
+ required String deviceId,
+ required String code,
+ required dynamic value,
+ }) {
+ if (_timer != null) {
+ _timer!.cancel();
+ }
+ _timer = Timer(const Duration(seconds: 1), () async {
+ try {
+ final response =
+ await DevicesManagementApi().deviceControl(deviceId, Status(code: code, value: value));
+
+ if (!response) {
+ add(CeilingInitialEvent());
+ }
+ } catch (_) {
+ await Future.delayed(const Duration(milliseconds: 500));
+ add(CeilingInitialEvent());
+ }
+ });
+ }
+}
diff --git a/lib/pages/device_managment/ceiling_sensor/bloc/event.dart b/lib/pages/device_managment/ceiling_sensor/bloc/event.dart
new file mode 100644
index 00000000..97840b31
--- /dev/null
+++ b/lib/pages/device_managment/ceiling_sensor/bloc/event.dart
@@ -0,0 +1,19 @@
+import 'package:equatable/equatable.dart';
+
+abstract class CeilingSensorEvent extends Equatable {
+ const CeilingSensorEvent();
+
+ @override
+ List