From bcc31d53a1dffae0ef9f480aba7c24af590e9c45 Mon Sep 17 00:00:00 2001 From: Abdullah Alassaf Date: Mon, 28 Oct 2024 17:03:05 +0300 Subject: [PATCH] Enabled real time data --- .../devices/bloc/acs_bloc/acs_bloc.dart | 60 +++------ .../ceiling_bloc/ceiling_sensor_bloc.dart | 24 ++-- .../door_sensor_bloc/door_sensor_bloc.dart | 31 ++--- .../garage_door_bloc/garage_door_bloc.dart | 98 +++++--------- .../bloc/one_gang_bloc/one_gang_bloc.dart | 73 ++++------ .../bloc/one_touch_bloc/one_touch_bloc.dart | 87 +++++------- .../bloc/smart_door_bloc/smart_door_bloc.dart | 127 ++++++------------ .../bloc/three_gang_bloc/three_gang_bloc.dart | 2 +- .../three_touch_bloc/three_touch_bloc.dart | 2 +- .../bloc/two_gang_bloc/two_gang_bloc.dart | 2 +- .../bloc/two_touch_bloc/two_touch_bloc.dart | 2 +- .../wall_sensor_bloc/wall_sensor_bloc.dart | 32 ++--- .../water_heater_bloc/water_heater_bloc.dart | 94 +++++-------- .../bloc/water_leak_bloc/water_leak_bloc.dart | 26 ++-- pubspec.yaml | 2 +- 15 files changed, 225 insertions(+), 437 deletions(-) diff --git a/lib/features/devices/bloc/acs_bloc/acs_bloc.dart b/lib/features/devices/bloc/acs_bloc/acs_bloc.dart index 3a6564d..c8a8350 100644 --- a/lib/features/devices/bloc/acs_bloc/acs_bloc.dart +++ b/lib/features/devices/bloc/acs_bloc/acs_bloc.dart @@ -61,11 +61,10 @@ class ACsBloc extends Bloc { for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); } - deviceStatus = - AcStatusModel.fromJson(response['productUuid'], statusModelList); + deviceStatus = AcStatusModel.fromJson(response['productUuid'], statusModelList); emit(GetAcStatusState(acStatusModel: deviceStatus)); Future.delayed(const Duration(milliseconds: 500)); - // _listenToChanges(); + _listenToChanges(); } } catch (e) { emit(AcsFailedState(errorMessage: e.toString())); @@ -75,22 +74,18 @@ class ACsBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$acId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$acId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) { - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); - deviceStatus = - AcStatusModel.fromJson(usersMap['productUuid'], statusList); + deviceStatus = AcStatusModel.fromJson(usersMap['productUuid'], statusList); add(AcUpdated()); }); } catch (_) {} @@ -107,14 +102,12 @@ class ACsBloc extends Bloc { HomeCubit.getInstance().selectedSpace?.id ?? '', 'AC'); for (int i = 0; i < devicesList.length; i++) { - var response = - await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); + var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); List statusModelList = []; for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); } - deviceStatusList.add( - AcStatusModel.fromJson(response['productUuid'], statusModelList)); + deviceStatusList.add(AcStatusModel.fromJson(response['productUuid'], statusModelList)); } _setAllAcsTempsAndSwitches(); } @@ -136,8 +129,7 @@ class ACsBloc extends Bloc { emit(AcModifyingState(acStatusModel: deviceStatus)); } - await _runDeBouncerForOneDevice( - deviceId: event.deviceId, code: 'switch', value: acSwitchValue); + await _runDeBouncerForOneDevice(deviceId: event.deviceId, code: 'switch', value: acSwitchValue); } void _changeAllAcSwitch(ChangeAllSwitch event, Emitter emit) async { @@ -198,8 +190,7 @@ class ACsBloc extends Bloc { deviceStatus.childLock = lockValue; emit(AcModifyingState(acStatusModel: deviceStatus)); - await _runDeBouncerForOneDevice( - deviceId: acId, code: 'child_lock', value: lockValue); + await _runDeBouncerForOneDevice(deviceId: acId, code: 'child_lock', value: lockValue); } void _increaseCoolTo(IncreaseCoolToTemp event, Emitter emit) async { @@ -227,8 +218,7 @@ class ACsBloc extends Bloc { emit(AcModifyingState(acStatusModel: deviceStatus)); } - await _runDeBouncerForOneDevice( - deviceId: event.deviceId, code: 'temp_set', value: value); + await _runDeBouncerForOneDevice(deviceId: event.deviceId, code: 'temp_set', value: value); } void _decreaseCoolTo(DecreaseCoolToTemp event, Emitter emit) async { @@ -256,8 +246,7 @@ class ACsBloc extends Bloc { emit(AcModifyingState(acStatusModel: deviceStatus)); } - await _runDeBouncerForOneDevice( - deviceId: event.deviceId, code: 'temp_set', value: value); + await _runDeBouncerForOneDevice(deviceId: event.deviceId, code: 'temp_set', value: value); } void _changeAcMode(ChangeAcMode event, Emitter emit) async { @@ -279,9 +268,7 @@ class ACsBloc extends Bloc { } await _runDeBouncerForOneDevice( - deviceId: event.deviceId, - code: 'mode', - value: getACModeString(tempMode)); + deviceId: event.deviceId, code: 'mode', value: getACModeString(tempMode)); } void _changeFanSpeed(ChangeFanSpeed event, Emitter emit) async { @@ -294,23 +281,19 @@ class ACsBloc extends Bloc { for (AcStatusModel ac in deviceStatusList) { if (ac.uuid == event.productId) { ac.fanSpeedsString = getNextFanSpeedKey(fanSpeed); - ac.acFanSpeed = - AcStatusModel.getFanSpeed(getNextFanSpeedKey(fanSpeed)); + ac.acFanSpeed = AcStatusModel.getFanSpeed(getNextFanSpeedKey(fanSpeed)); } } _emitAcsStatus(emit); } else { emit(AcChangeLoading(acStatusModel: deviceStatus)); deviceStatus.fanSpeedsString = getNextFanSpeedKey(fanSpeed); - deviceStatus.acFanSpeed = - AcStatusModel.getFanSpeed(getNextFanSpeedKey(fanSpeed)); + deviceStatus.acFanSpeed = AcStatusModel.getFanSpeed(getNextFanSpeedKey(fanSpeed)); emit(AcModifyingState(acStatusModel: deviceStatus)); } await _runDeBouncerForOneDevice( - deviceId: event.deviceId, - code: 'level', - value: getNextFanSpeedKey(fanSpeed)); + deviceId: event.deviceId, code: 'level', value: getNextFanSpeedKey(fanSpeed)); } String getACModeString(TempModes value) { @@ -355,8 +338,7 @@ class ACsBloc extends Bloc { for (int i = 0; i < deviceStatusList.length; i++) { try { await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: devicesList[i].uuid, code: code, value: value), + DeviceControlModel(deviceId: devicesList[i].uuid, code: code, value: value), devicesList[i].uuid ?? ''); } catch (_) { await Future.delayed(const Duration(milliseconds: 500)); @@ -378,10 +360,7 @@ class ACsBloc extends Bloc { _timer = Timer(const Duration(seconds: 1), () async { try { final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: allAcsPage ? deviceId : acId, - code: code, - value: value), + DeviceControlModel(deviceId: allAcsPage ? deviceId : acId, code: code, value: value), allAcsPage ? deviceId : acId); if (!response['success']) { @@ -398,8 +377,7 @@ class ACsBloc extends Bloc { if (value >= 20 && value <= 30) { return true; } else { - emit(const AcsFailedState( - errorMessage: 'The temperature must be between 20 and 30')); + emit(const AcsFailedState(errorMessage: 'The temperature must be between 20 and 30')); emit(GetAllAcsStatusState( allAcsStatues: deviceStatusList, allAcs: devicesList, diff --git a/lib/features/devices/bloc/ceiling_bloc/ceiling_sensor_bloc.dart b/lib/features/devices/bloc/ceiling_bloc/ceiling_sensor_bloc.dart index ce50e64..536df9b 100644 --- a/lib/features/devices/bloc/ceiling_bloc/ceiling_sensor_bloc.dart +++ b/lib/features/devices/bloc/ceiling_bloc/ceiling_sensor_bloc.dart @@ -19,8 +19,7 @@ class CeilingSensorBloc extends Bloc { on(_onCeilingSensorUpdated); } - void _fetchCeilingSensorStatus( - InitialEvent event, Emitter emit) async { + void _fetchCeilingSensorStatus(InitialEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(deviceId); @@ -30,7 +29,7 @@ class CeilingSensorBloc extends Bloc { } deviceStatus = CeilingSensorModel.fromJson(statusModelList); emit(UpdateState(ceilingSensorModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; @@ -39,18 +38,15 @@ class CeilingSensorBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$deviceId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$deviceId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) { - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = CeilingSensorModel.fromJson(statusList); @@ -59,19 +55,15 @@ class CeilingSensorBloc extends Bloc { } catch (_) {} } - _onCeilingSensorUpdated( - CeilingSensorUpdated event, Emitter emit) { + _onCeilingSensorUpdated(CeilingSensorUpdated event, Emitter emit) { emit(UpdateState(ceilingSensorModel: deviceStatus)); } - void _changeValue( - ChangeValueEvent event, Emitter emit) async { + void _changeValue(ChangeValueEvent event, Emitter emit) async { emit(LoadingNewSate(ceilingSensorModel: deviceStatus)); try { final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: deviceId, code: event.code, value: event.value), - deviceId); + DeviceControlModel(deviceId: deviceId, code: event.code, value: event.value), deviceId); if (response['success'] ?? false) { deviceStatus.sensitivity = event.value; diff --git a/lib/features/devices/bloc/door_sensor_bloc/door_sensor_bloc.dart b/lib/features/devices/bloc/door_sensor_bloc/door_sensor_bloc.dart index 113b9e8..d4e31b5 100644 --- a/lib/features/devices/bloc/door_sensor_bloc/door_sensor_bloc.dart +++ b/lib/features/devices/bloc/door_sensor_bloc/door_sensor_bloc.dart @@ -25,11 +25,9 @@ class DoorSensorBloc extends Bloc { bool lowBattery = false; bool closingReminder = false; bool doorAlarm = false; - DoorSensorModel deviceStatus = - DoorSensorModel(doorContactState: false, batteryPercentage: 0); + DoorSensorModel deviceStatus = DoorSensorModel(doorContactState: false, batteryPercentage: 0); - void _fetchStatus( - DoorSensorInitial event, Emitter emit) async { + void _fetchStatus(DoorSensorInitial event, Emitter emit) async { emit(DoorSensorLoadingState()); try { var response = await DevicesAPI.getDeviceStatus(DSId); @@ -42,7 +40,7 @@ class DoorSensorBloc extends Bloc { ); emit(UpdateState(doorSensor: deviceStatus)); Future.delayed(const Duration(milliseconds: 500)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(DoorSensorFailedState(errorMessage: e.toString())); return; @@ -50,8 +48,7 @@ class DoorSensorBloc extends Bloc { } // Toggle functions for each switch - void _toggleLowBattery( - ToggleLowBatteryEvent event, Emitter emit) async { + void _toggleLowBattery(ToggleLowBatteryEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { lowBattery = event.isLowBatteryEnabled; @@ -92,8 +89,7 @@ class DoorSensorBloc extends Bloc { } } - void _toggleDoorAlarm( - ToggleDoorAlarmEvent event, Emitter emit) async { + void _toggleDoorAlarm(ToggleDoorAlarmEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { doorAlarm = event.isDoorAlarmEnabled; @@ -112,11 +108,9 @@ class DoorSensorBloc extends Bloc { } } - DeviceReport recordGroups = - DeviceReport(startTime: '0', endTime: '0', data: []); + DeviceReport recordGroups = DeviceReport(startTime: '0', endTime: '0', data: []); - Future fetchLogsForLastMonth( - ReportLogsInitial event, Emitter emit) async { + Future fetchLogsForLastMonth(ReportLogsInitial event, Emitter emit) async { DateTime now = DateTime.now(); DateTime lastMonth = DateTime(now.year, now.month - 1, now.day); @@ -126,9 +120,8 @@ class DoorSensorBloc extends Bloc { try { emit(DoorSensorLoadingState()); var response = await DevicesAPI.getReportLogs( - startTime: - startTime.toString(), - endTime: endTime.toString(), + startTime: startTime.toString(), + endTime: endTime.toString(), deviceUuid: DSId, code: 'doorcontact_state', ); @@ -142,16 +135,14 @@ class DoorSensorBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$DSId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$DSId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { diff --git a/lib/features/devices/bloc/garage_door_bloc/garage_door_bloc.dart b/lib/features/devices/bloc/garage_door_bloc/garage_door_bloc.dart index bca98bd..c2063d4 100644 --- a/lib/features/devices/bloc/garage_door_bloc/garage_door_bloc.dart +++ b/lib/features/devices/bloc/garage_door_bloc/garage_door_bloc.dart @@ -65,8 +65,7 @@ class GarageDoorBloc extends Bloc { batteryPercentage: 0, ); - void _fetchStatus( - GarageDoorInitial event, Emitter emit) async { + void _fetchStatus(GarageDoorInitial event, Emitter emit) async { emit(GarageDoorLoadingState()); try { var response = await DevicesAPI.getDeviceStatus(GDId); @@ -81,7 +80,7 @@ class GarageDoorBloc extends Bloc { toggleDoor = deviceStatus.switch1; emit(UpdateState(garageSensor: deviceStatus)); Future.delayed(const Duration(milliseconds: 500)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(GarageDoorFailedState(errorMessage: e.toString())); return; @@ -114,8 +113,8 @@ class GarageDoorBloc extends Bloc { } } - void _toggleClosingReminder(ToggleClosingReminderEvent event, - Emitter emit) async { + void _toggleClosingReminder( + ToggleClosingReminderEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { closingReminder = event.isClosingReminderEnabled; @@ -133,8 +132,7 @@ class GarageDoorBloc extends Bloc { } } - void _toggleDoorAlarm( - ToggleDoorAlarmEvent event, Emitter emit) async { + void _toggleDoorAlarm(ToggleDoorAlarmEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { doorAlarm = event.isDoorAlarmEnabled; @@ -152,8 +150,7 @@ class GarageDoorBloc extends Bloc { } } - DeviceReport recordGroups = - DeviceReport(startTime: '0', endTime: '0', data: []); + DeviceReport recordGroups = DeviceReport(startTime: '0', endTime: '0', data: []); Future fetchLogsForLastMonth( ReportLogsInitial event, Emitter emit) async { @@ -172,8 +169,6 @@ class GarageDoorBloc extends Bloc { ); recordGroups = response; - - emit(UpdateState(garageSensor: deviceStatus)); } on DioException catch (e) { final errorData = e.response!.data; @@ -184,16 +179,14 @@ class GarageDoorBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$GDId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$GDId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { statusList.add(StatusModel(code: element['code'], value: true)); @@ -268,8 +261,7 @@ class GarageDoorBloc extends Bloc { deviceId: GDId, ); List jsonData = response; - listSchedule = - jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); + listSchedule = jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); emit(UpdateState(garageSensor: deviceStatus)); } on DioException catch (e) { final errorData = e.response!.data; @@ -280,13 +272,12 @@ class GarageDoorBloc extends Bloc { int? getTimeStampWithoutSeconds(DateTime? dateTime) { if (dateTime == null) return null; - DateTime dateTimeWithoutSeconds = DateTime(dateTime.year, dateTime.month, - dateTime.day, dateTime.hour, dateTime.minute); + DateTime dateTimeWithoutSeconds = + DateTime(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute); return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000; } - Future toggleChange( - ToggleScheduleEvent event, Emitter emit) async { + Future toggleChange(ToggleScheduleEvent event, Emitter emit) async { try { emit(GarageDoorLoadingState()); final response = await DevicesAPI.changeSchedule( @@ -304,8 +295,7 @@ class GarageDoorBloc extends Bloc { } } - Future deleteSchedule( - DeleteScheduleEvent event, Emitter emit) async { + Future deleteSchedule(DeleteScheduleEvent event, Emitter emit) async { try { emit(GarageDoorLoadingState()); final response = await DevicesAPI.deleteSchedule( @@ -324,15 +314,13 @@ class GarageDoorBloc extends Bloc { } } - void toggleSelectedIndex( - ToggleSelectedEvent event, Emitter emit) { + void toggleSelectedIndex(ToggleSelectedEvent event, Emitter emit) { emit(GarageDoorLoadingState()); selectedTabIndex = event.index; emit(ChangeSlidingSegmentState(value: selectedTabIndex)); } - void toggleCreateSchedule( - ToggleCreateScheduleEvent event, Emitter emit) { + void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter emit) { emit(GarageDoorLoadingState()); createSchedule = !createSchedule; selectedDays.clear(); @@ -349,16 +337,13 @@ class GarageDoorBloc extends Bloc { int secondSelected = 0; bool toggleDoor = false; - Future selectSeconds( - SelectSecondsEvent event, Emitter emit) async { + Future selectSeconds(SelectSecondsEvent event, Emitter emit) async { try { emit(GarageDoorLoadingState()); secondSelected = event.seconds; await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: GDId, code: 'tr_timecon', value: secondSelected), - GDId); + DeviceControlModel(deviceId: GDId, code: 'tr_timecon', value: secondSelected), GDId); emit(UpdateState(garageSensor: deviceStatus)); } on DioException catch (e) { final errorData = e.response!.data; @@ -367,15 +352,12 @@ class GarageDoorBloc extends Bloc { } } - openCloseGarageDoor( - ToggleDoorEvent event, Emitter emit) async { + openCloseGarageDoor(ToggleDoorEvent event, Emitter emit) async { emit(GarageDoorLoadingState()); try { toggleDoor = !event.toggle; await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: GDId, code: 'switch_1', value: toggleDoor), - GDId); + DeviceControlModel(deviceId: GDId, code: 'switch_1', value: toggleDoor), GDId); add(const GarageDoorInitial()); emit(UpdateState(garageSensor: deviceStatus)); } on DioException catch (e) { @@ -385,16 +367,13 @@ class GarageDoorBloc extends Bloc { } } - void _setCounterValue( - SetCounterValue event, Emitter emit) async { + void _setCounterValue(SetCounterValue event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); int seconds = 0; try { seconds = event.duration.inSeconds; final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: GDId, code: 'countdown_1', value: seconds), - GDId); + DeviceControlModel(deviceId: GDId, code: 'countdown_1', value: seconds), GDId); if (response['success'] ?? false) { deviceStatus.countdown1 = seconds; @@ -414,8 +393,7 @@ class GarageDoorBloc extends Bloc { } } - void _getCounterValue( - GetCounterEvent event, Emitter emit) async { + void _getCounterValue(GetCounterEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(GDId); @@ -456,8 +434,7 @@ class GarageDoorBloc extends Bloc { List groupList = []; bool allSwitchesOn = true; - void _fetchWizardStatus( - InitialWizardEvent event, Emitter emit) async { + void _fetchWizardStatus(InitialWizardEvent event, Emitter emit) async { emit(LoadingInitialState()); try { devicesList = []; @@ -467,8 +444,7 @@ class GarageDoorBloc extends Bloc { HomeCubit.getInstance().selectedSpace?.id ?? '', 'GD'); for (int i = 0; i < devicesList.length; i++) { - var response = - await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); + var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); List statusModelList = []; for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); @@ -497,8 +473,7 @@ class GarageDoorBloc extends Bloc { } } - void _groupAllOn( - GroupAllOnEvent event, Emitter emit) async { + void _groupAllOn(GroupAllOnEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { // Set all switches (firstSwitch and secondSwitch) based on the event value (on/off) @@ -510,8 +485,7 @@ class GarageDoorBloc extends Bloc { emit(UpdateGroupState(garageList: groupList, allSwitches: true)); // Get a list of all device IDs - List allDeviceIds = - groupList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupList.map((device) => device.deviceId).toList(); // First call for switch_1 final response = await DevicesAPI.deviceBatchController( @@ -531,8 +505,7 @@ class GarageDoorBloc extends Bloc { } } - void _groupAllOff( - GroupAllOffEvent event, Emitter emit) async { + void _groupAllOff(GroupAllOffEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { // Set all switches (firstSwitch and secondSwitch) based on the event value (on/off) @@ -544,8 +517,7 @@ class GarageDoorBloc extends Bloc { emit(UpdateGroupState(garageList: groupList, allSwitches: false)); // Get a list of all device IDs - List allDeviceIds = - groupList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupList.map((device) => device.deviceId).toList(); // First call for switch_1 final response = await DevicesAPI.deviceBatchController( @@ -566,8 +538,8 @@ class GarageDoorBloc extends Bloc { } } - void _changeFirstWizardSwitch(ChangeFirstWizardSwitchStatusEvent event, - Emitter emit) async { + void _changeFirstWizardSwitch( + ChangeFirstWizardSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); try { bool allSwitchesValue = true; @@ -580,8 +552,7 @@ class GarageDoorBloc extends Bloc { } }); - emit(UpdateGroupState( - garageList: groupList, allSwitches: allSwitchesValue)); + emit(UpdateGroupState(garageList: groupList, allSwitches: allSwitchesValue)); final response = await DevicesAPI.deviceBatchController( code: 'switch_1', @@ -597,16 +568,13 @@ class GarageDoorBloc extends Bloc { } } - void _setTimeOutAlarm( - SetTimeOutValue event, Emitter emit) async { + void _setTimeOutAlarm(SetTimeOutValue event, Emitter emit) async { emit(LoadingNewSate(doorSensor: deviceStatus)); int seconds = 0; try { seconds = event.duration.inSeconds; final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: GDId, code: 'countdown_alarm', value: seconds), - GDId); + DeviceControlModel(deviceId: GDId, code: 'countdown_alarm', value: seconds), GDId); if (response['success'] ?? false) { deviceStatus.countdownAlarm = seconds; diff --git a/lib/features/devices/bloc/one_gang_bloc/one_gang_bloc.dart b/lib/features/devices/bloc/one_gang_bloc/one_gang_bloc.dart index fc89c72..6a90042 100644 --- a/lib/features/devices/bloc/one_gang_bloc/one_gang_bloc.dart +++ b/lib/features/devices/bloc/one_gang_bloc/one_gang_bloc.dart @@ -26,8 +26,7 @@ class OneGangBloc extends Bloc { bool oneGangGroup = false; List devicesList = []; - OneGangBloc({required this.oneGangId, required this.switchCode}) - : super(InitialState()) { + OneGangBloc({required this.oneGangId, required this.switchCode}) : super(InitialState()) { on(_fetchOneGangStatus); on(_oneGangUpdated); on(_changeFirstSwitch); @@ -50,8 +49,7 @@ class OneGangBloc extends Bloc { on(_groupAllOff); } - void _fetchOneGangStatus( - InitialEvent event, Emitter emit) async { + void _fetchOneGangStatus(InitialEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(oneGangId); @@ -61,7 +59,7 @@ class OneGangBloc extends Bloc { } deviceStatus = OneGangModel.fromJson(statusModelList); emit(UpdateState(oneGangModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; @@ -70,21 +68,18 @@ class OneGangBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$oneGangId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$oneGangId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = OneGangModel.fromJson(statusList); @@ -99,8 +94,7 @@ class OneGangBloc extends Bloc { emit(UpdateState(oneGangModel: deviceStatus)); } - void _changeFirstSwitch( - ChangeFirstSwitchStatusEvent event, Emitter emit) async { + void _changeFirstSwitch(ChangeFirstSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(oneGangModel: deviceStatus)); try { deviceStatus.firstSwitch = !event.value; @@ -125,20 +119,17 @@ class OneGangBloc extends Bloc { } } - void _changeSliding( - ChangeSlidingSegment event, Emitter emit) async { + void _changeSliding(ChangeSlidingSegment event, Emitter emit) async { emit(ChangeSlidingSegmentState(value: event.value)); } - void _setCounterValue( - SetCounterValue event, Emitter emit) async { + void _setCounterValue(SetCounterValue event, Emitter emit) async { emit(LoadingNewSate(oneGangModel: deviceStatus)); int seconds = 0; try { seconds = event.duration.inSeconds; final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: oneGangId, code: event.deviceCode, value: seconds), + DeviceControlModel(deviceId: oneGangId, code: event.deviceCode, value: seconds), oneGangId); if (response['success'] ?? false) { @@ -161,8 +152,7 @@ class OneGangBloc extends Bloc { } } - void _getCounterValue( - GetCounterEvent event, Emitter emit) async { + void _getCounterValue(GetCounterEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(oneGangId); @@ -251,8 +241,7 @@ class OneGangBloc extends Bloc { deviceId: oneGangId, ); List jsonData = response; - listSchedule = - jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); + listSchedule = jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); emit(InitialState()); } on DioException catch (e) { final errorData = e.response!.data; @@ -263,13 +252,12 @@ class OneGangBloc extends Bloc { int? getTimeStampWithoutSeconds(DateTime? dateTime) { if (dateTime == null) return null; - DateTime dateTimeWithoutSeconds = DateTime(dateTime.year, dateTime.month, - dateTime.day, dateTime.hour, dateTime.minute); + DateTime dateTimeWithoutSeconds = + DateTime(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute); return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000; } - Future toggleChange( - ToggleScheduleEvent event, Emitter emit) async { + Future toggleChange(ToggleScheduleEvent event, Emitter emit) async { try { emit(LoadingInitialState()); final response = await DevicesAPI.changeSchedule( @@ -288,8 +276,7 @@ class OneGangBloc extends Bloc { } } - Future deleteSchedule( - DeleteScheduleEvent event, Emitter emit) async { + Future deleteSchedule(DeleteScheduleEvent event, Emitter emit) async { try { emit(LoadingInitialState()); final response = await DevicesAPI.deleteSchedule( @@ -309,8 +296,7 @@ class OneGangBloc extends Bloc { } } - void toggleCreateSchedule( - ToggleCreateScheduleEvent event, Emitter emit) { + void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter emit) { emit(LoadingInitialState()); createSchedule = !createSchedule; selectedDays.clear(); @@ -339,8 +325,7 @@ class OneGangBloc extends Bloc { int selectedTabIndex = 0; - void toggleSelectedIndex( - ToggleSelectedEvent event, Emitter emit) { + void toggleSelectedIndex(ToggleSelectedEvent event, Emitter emit) { emit(LoadingInitialState()); selectedTabIndex = event.index; emit(ChangeSlidingSegmentState(value: selectedTabIndex)); @@ -349,8 +334,7 @@ class OneGangBloc extends Bloc { List groupOneGangList = []; bool allSwitchesOn = true; - void _fetchOneGangWizardStatus( - InitialWizardEvent event, Emitter emit) async { + void _fetchOneGangWizardStatus(InitialWizardEvent event, Emitter emit) async { emit(LoadingInitialState()); try { devicesList = []; @@ -360,8 +344,7 @@ class OneGangBloc extends Bloc { HomeCubit.getInstance().selectedSpace?.id ?? '', '1G'); for (int i = 0; i < devicesList.length; i++) { - var response = - await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); + var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); List statusModelList = []; for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); @@ -382,16 +365,15 @@ class OneGangBloc extends Bloc { return true; }); } - emit(UpdateGroupState( - oneGangList: groupOneGangList, allSwitches: allSwitchesOn)); + emit(UpdateGroupState(oneGangList: groupOneGangList, allSwitches: allSwitchesOn)); } catch (e) { emit(FailedState(error: e.toString())); return; } } - void _changeFirstWizardSwitch(ChangeFirstWizardSwitchStatusEvent event, - Emitter emit) async { + void _changeFirstWizardSwitch( + ChangeFirstWizardSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(oneGangModel: deviceStatus)); try { bool allSwitchesValue = true; @@ -404,8 +386,7 @@ class OneGangBloc extends Bloc { } }); - emit(UpdateGroupState( - oneGangList: groupOneGangList, allSwitches: allSwitchesValue)); + emit(UpdateGroupState(oneGangList: groupOneGangList, allSwitches: allSwitchesValue)); final response = await DevicesAPI.deviceBatchController( code: 'switch_1', @@ -433,8 +414,7 @@ class OneGangBloc extends Bloc { emit(UpdateGroupState(oneGangList: groupOneGangList, allSwitches: true)); // Get a list of all device IDs - List allDeviceIds = - groupOneGangList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupOneGangList.map((device) => device.deviceId).toList(); // First call for switch_1 final response = await DevicesAPI.deviceBatchController( @@ -466,8 +446,7 @@ class OneGangBloc extends Bloc { emit(UpdateGroupState(oneGangList: groupOneGangList, allSwitches: false)); // Get a list of all device IDs - List allDeviceIds = - groupOneGangList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupOneGangList.map((device) => device.deviceId).toList(); // First call for switch_1 final response = await DevicesAPI.deviceBatchController( diff --git a/lib/features/devices/bloc/one_touch_bloc/one_touch_bloc.dart b/lib/features/devices/bloc/one_touch_bloc/one_touch_bloc.dart index 644cf4d..0fd3f34 100644 --- a/lib/features/devices/bloc/one_touch_bloc/one_touch_bloc.dart +++ b/lib/features/devices/bloc/one_touch_bloc/one_touch_bloc.dart @@ -30,8 +30,7 @@ class OneTouchBloc extends Bloc { bool oneTouchGroup = false; List devicesList = []; - OneTouchBloc({required this.oneTouchId, required this.switchCode}) - : super(InitialState()) { + OneTouchBloc({required this.oneTouchId, required this.switchCode}) : super(InitialState()) { on(_fetchOneTouchStatus); on(_oneTouchUpdated); on(_changeFirstSwitch); @@ -54,8 +53,7 @@ class OneTouchBloc extends Bloc { on(_changeStatus); } - void _fetchOneTouchStatus( - InitialEvent event, Emitter emit) async { + void _fetchOneTouchStatus(InitialEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(oneTouchId); @@ -65,7 +63,7 @@ class OneTouchBloc extends Bloc { } deviceStatus = OneTouchModel.fromJson(statusModelList); emit(UpdateState(oneTouchModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; @@ -74,21 +72,18 @@ class OneTouchBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$oneTouchId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$oneTouchId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = OneTouchModel.fromJson(statusList); @@ -103,8 +98,7 @@ class OneTouchBloc extends Bloc { emit(UpdateState(oneTouchModel: deviceStatus)); } - void _changeFirstSwitch( - ChangeFirstSwitchStatusEvent event, Emitter emit) async { + void _changeFirstSwitch(ChangeFirstSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(oneTouchModel: deviceStatus)); try { deviceStatus.firstSwitch = !event.value; @@ -129,20 +123,17 @@ class OneTouchBloc extends Bloc { } } - void _changeSliding( - ChangeSlidingSegment event, Emitter emit) async { + void _changeSliding(ChangeSlidingSegment event, Emitter emit) async { emit(ChangeSlidingSegmentState(value: event.value)); } - void _setCounterValue( - SetCounterValue event, Emitter emit) async { + void _setCounterValue(SetCounterValue event, Emitter emit) async { emit(LoadingNewSate(oneTouchModel: deviceStatus)); int seconds = 0; try { seconds = event.duration.inSeconds; final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: oneTouchId, code: event.deviceCode, value: seconds), + DeviceControlModel(deviceId: oneTouchId, code: event.deviceCode, value: seconds), oneTouchId); if (response['success'] ?? false) { @@ -165,8 +156,7 @@ class OneTouchBloc extends Bloc { } } - void _getCounterValue( - GetCounterEvent event, Emitter emit) async { + void _getCounterValue(GetCounterEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(oneTouchId); @@ -255,8 +245,7 @@ class OneTouchBloc extends Bloc { deviceId: oneTouchId, ); List jsonData = response; - listSchedule = - jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); + listSchedule = jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); emit(InitialState()); } on DioException catch (e) { final errorData = e.response!.data; @@ -267,13 +256,12 @@ class OneTouchBloc extends Bloc { int? getTimeStampWithoutSeconds(DateTime? dateTime) { if (dateTime == null) return null; - DateTime dateTimeWithoutSeconds = DateTime(dateTime.year, dateTime.month, - dateTime.day, dateTime.hour, dateTime.minute); + DateTime dateTimeWithoutSeconds = + DateTime(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute); return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000; } - Future toggleChange( - ToggleScheduleEvent event, Emitter emit) async { + Future toggleChange(ToggleScheduleEvent event, Emitter emit) async { try { emit(LoadingInitialState()); final response = await DevicesAPI.changeSchedule( @@ -292,8 +280,7 @@ class OneTouchBloc extends Bloc { } } - Future deleteSchedule( - DeleteScheduleEvent event, Emitter emit) async { + Future deleteSchedule(DeleteScheduleEvent event, Emitter emit) async { try { emit(LoadingInitialState()); final response = await DevicesAPI.deleteSchedule( @@ -313,8 +300,7 @@ class OneTouchBloc extends Bloc { } } - void toggleCreateSchedule( - ToggleCreateScheduleEvent event, Emitter emit) { + void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter emit) { emit(LoadingInitialState()); createSchedule = !createSchedule; selectedDays.clear(); @@ -343,8 +329,7 @@ class OneTouchBloc extends Bloc { int selectedTabIndex = 0; - void toggleSelectedIndex( - ToggleSelectedEvent event, Emitter emit) { + void toggleSelectedIndex(ToggleSelectedEvent event, Emitter emit) { emit(LoadingInitialState()); selectedTabIndex = event.index; emit(ChangeSlidingSegmentState(value: selectedTabIndex)); @@ -353,8 +338,7 @@ class OneTouchBloc extends Bloc { List groupOneTouchList = []; bool allSwitchesOn = true; - void _fetchOneTouchWizardStatus( - InitialWizardEvent event, Emitter emit) async { + void _fetchOneTouchWizardStatus(InitialWizardEvent event, Emitter emit) async { emit(LoadingInitialState()); try { devicesList = []; @@ -364,8 +348,7 @@ class OneTouchBloc extends Bloc { HomeCubit.getInstance().selectedSpace?.id ?? '', '1GT'); for (int i = 0; i < devicesList.length; i++) { - var response = - await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); + var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); List statusModelList = []; for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); @@ -386,16 +369,15 @@ class OneTouchBloc extends Bloc { return true; }); } - emit(UpdateGroupState( - oneTouchList: groupOneTouchList, allSwitches: allSwitchesOn)); + emit(UpdateGroupState(oneTouchList: groupOneTouchList, allSwitches: allSwitchesOn)); } catch (e) { emit(FailedState(error: e.toString())); return; } } - void _changeFirstWizardSwitch(ChangeFirstWizardSwitchStatusEvent event, - Emitter emit) async { + void _changeFirstWizardSwitch( + ChangeFirstWizardSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(oneTouchModel: deviceStatus)); try { bool allSwitchesValue = true; @@ -413,8 +395,7 @@ class OneTouchBloc extends Bloc { value: !event.value, ); - emit(UpdateGroupState( - oneTouchList: groupOneTouchList, allSwitches: allSwitchesValue)); + emit(UpdateGroupState(oneTouchList: groupOneTouchList, allSwitches: allSwitchesValue)); if (response['success']) { add(InitialEvent(groupScreen: oneTouchGroup)); } @@ -432,12 +413,10 @@ class OneTouchBloc extends Bloc { } // Emit the state with updated values - emit( - UpdateGroupState(oneTouchList: groupOneTouchList, allSwitches: true)); + emit(UpdateGroupState(oneTouchList: groupOneTouchList, allSwitches: true)); // Get a list of all device IDs - List allDeviceIds = - groupOneTouchList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupOneTouchList.map((device) => device.deviceId).toList(); // First call for switch_1 final response1 = await DevicesAPI.deviceBatchController( @@ -466,12 +445,10 @@ class OneTouchBloc extends Bloc { } // Emit the state with updated values - emit(UpdateGroupState( - oneTouchList: groupOneTouchList, allSwitches: false)); + emit(UpdateGroupState(oneTouchList: groupOneTouchList, allSwitches: false)); // Get a list of all device IDs - List allDeviceIds = - groupOneTouchList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupOneTouchList.map((device) => device.deviceId).toList(); // First call for switch_1 final response1 = await DevicesAPI.deviceBatchController( @@ -495,8 +472,7 @@ class OneTouchBloc extends Bloc { String statusSelected = ''; String optionSelected = ''; - Future _changeStatus( - ChangeStatusEvent event, Emitter emit) async { + Future _changeStatus(ChangeStatusEvent event, Emitter emit) async { try { emit(LoadingInitialState()); @@ -521,10 +497,7 @@ class OneTouchBloc extends Bloc { final selectedControl = controlMap[optionSelected]?[statusSelected]; if (selectedControl != null) { await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: oneTouchId, - code: optionSelected, - value: selectedControl), + DeviceControlModel(deviceId: oneTouchId, code: optionSelected, value: selectedControl), oneTouchId, ); } else { diff --git a/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart b/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart index f8f9563..236c623 100644 --- a/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart +++ b/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart @@ -37,8 +37,7 @@ class SmartDoorBloc extends Bloc { on(selectTimeOfLinePassword); on(selectTimeOnlinePassword); on(deletePassword); - on( - generateAndSavePasswordTimeLimited); + on(generateAndSavePasswordTimeLimited); on(generateAndSavePasswordOneTime); on(toggleDaySelection); on(_renamePassword); @@ -60,8 +59,7 @@ class SmartDoorBloc extends Bloc { List? oneTimePasswords = []; List? timeLimitPasswords = []; - Future generate7DigitNumber( - GeneratePasswordEvent event, Emitter emit) async { + Future generate7DigitNumber(GeneratePasswordEvent event, Emitter emit) async { emit(LoadingInitialState()); passwordController.clear(); Random random = Random(); @@ -73,8 +71,7 @@ class SmartDoorBloc extends Bloc { } Future generateAndSavePasswordOneTime( - GenerateAndSavePasswordOneTimeEvent event, - Emitter emit) async { + GenerateAndSavePasswordOneTimeEvent event, Emitter emit) async { try { if (isSavingPassword) return; isSavingPassword = true; @@ -95,8 +92,7 @@ class SmartDoorBloc extends Bloc { } } - void _fetchSmartDoorStatus( - InitialEvent event, Emitter emit) async { + void _fetchSmartDoorStatus(InitialEvent event, Emitter emit) async { try { emit(LoadingInitialState()); var response = await DevicesAPI.getDeviceStatus(deviceId); @@ -106,7 +102,7 @@ class SmartDoorBloc extends Bloc { } deviceStatus = SmartDoorModel.fromJson(statusModelList); emit(UpdateState(smartDoorModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(errorMessage: e.toString())); return; @@ -115,18 +111,15 @@ class SmartDoorBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$deviceId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$deviceId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) { - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = SmartDoorModel.fromJson(statusList); @@ -140,14 +133,11 @@ class SmartDoorBloc extends Bloc { emit(UpdateState(smartDoorModel: deviceStatus)); } - void _renamePassword( - RenamePasswordEvent event, Emitter emit) async { + void _renamePassword(RenamePasswordEvent event, Emitter emit) async { try { emit(LoadingInitialState()); await DevicesAPI.renamePass( - name: passwordNameController.text, - doorLockUuid: deviceId, - passwordId: passwordId); + name: passwordNameController.text, doorLockUuid: deviceId, passwordId: passwordId); add(InitialOneTimePassword()); add(InitialTimeLimitPassword()); emit(UpdateState(smartDoorModel: deviceStatus)); @@ -157,58 +147,46 @@ class SmartDoorBloc extends Bloc { } } - void getTemporaryPasswords( - InitialPasswordsPage event, Emitter emit) async { + void getTemporaryPasswords(InitialPasswordsPage event, Emitter emit) async { try { emit(LoadingInitialState()); var response = await DevicesAPI.getTemporaryPasswords( deviceId, ); if (response is List) { - temporaryPasswords = - response.map((item) => TemporaryPassword.fromJson(item)).toList(); + temporaryPasswords = response.map((item) => TemporaryPassword.fromJson(item)).toList(); } else if (response is Map && response.containsKey('data')) { - temporaryPasswords = (response['data'] as List) - .map((item) => TemporaryPassword.fromJson(item)) - .toList(); + temporaryPasswords = + (response['data'] as List).map((item) => TemporaryPassword.fromJson(item)).toList(); } - emit(TemporaryPasswordsLoadedState( - temporaryPassword: temporaryPasswords!)); + emit(TemporaryPasswordsLoadedState(temporaryPassword: temporaryPasswords!)); } catch (e) { emit(FailedState(errorMessage: e.toString())); } } - void getOneTimePasswords( - InitialOneTimePassword event, Emitter emit) async { + void getOneTimePasswords(InitialOneTimePassword event, Emitter emit) async { try { emit(LoadingInitialState()); var response = await DevicesAPI.getOneTimePasswords(deviceId); if (response is List) { - oneTimePasswords = response - .map((item) => OfflinePasswordModel.fromJson(item)) - .toList(); + oneTimePasswords = response.map((item) => OfflinePasswordModel.fromJson(item)).toList(); } - emit(TemporaryPasswordsLoadedState( - temporaryPassword: temporaryPasswords!)); + emit(TemporaryPasswordsLoadedState(temporaryPassword: temporaryPasswords!)); } catch (e) { emit(FailedState(errorMessage: e.toString())); } } - void getTimeLimitPasswords( - InitialTimeLimitPassword event, Emitter emit) async { + void getTimeLimitPasswords(InitialTimeLimitPassword event, Emitter emit) async { try { emit(LoadingInitialState()); var response = await DevicesAPI.getTimeLimitPasswords(deviceId); if (response is List) { - timeLimitPasswords = response - .map((item) => OfflinePasswordModel.fromJson(item)) - .toList(); + timeLimitPasswords = response.map((item) => OfflinePasswordModel.fromJson(item)).toList(); } - emit(TemporaryPasswordsLoadedState( - temporaryPassword: temporaryPasswords!)); + emit(TemporaryPasswordsLoadedState(temporaryPassword: temporaryPasswords!)); } catch (e) { emit(FailedState(errorMessage: e.toString())); } @@ -229,8 +207,7 @@ class SmartDoorBloc extends Bloc { return repeat; } - bool setStartEndTime( - SetStartEndTimeEvent event, Emitter emit) { + bool setStartEndTime(SetStartEndTimeEvent event, Emitter emit) { emit(LoadingInitialState()); isStartEndTime = event.val; emit(IsStartEndState(isStartEndTime: isStartEndTime)); @@ -253,8 +230,7 @@ class SmartDoorBloc extends Bloc { emit(UpdateState(smartDoorModel: deviceStatus)); } - Future selectTimeOfLinePassword( - SelectTimeEvent event, Emitter emit) async { + Future selectTimeOfLinePassword(SelectTimeEvent event, Emitter emit) async { emit(ChangeTimeState()); final DateTime? picked = await showDatePicker( context: event.context, @@ -284,27 +260,20 @@ class SmartDoorBloc extends Bloc { ).millisecondsSinceEpoch ~/ 1000; // Divide by 1000 to remove milliseconds if (event.isEffective) { - if (expirationTimeTimeStamp != null && - selectedTimestamp > expirationTimeTimeStamp!) { - CustomSnackBar.displaySnackBar( - 'Effective Time cannot be later than Expiration Time.'); + if (expirationTimeTimeStamp != null && selectedTimestamp > expirationTimeTimeStamp!) { + CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.'); } else { - effectiveTime = selectedDateTime - .toString() - .split('.') - .first; // Remove seconds and milliseconds + effectiveTime = + selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds effectiveTimeTimeStamp = selectedTimestamp; } } else { - if (effectiveTimeTimeStamp != null && - selectedTimestamp < effectiveTimeTimeStamp!) { + if (effectiveTimeTimeStamp != null && selectedTimestamp < effectiveTimeTimeStamp!) { CustomSnackBar.displaySnackBar( 'Expiration Time cannot be earlier than Effective Time.'); } else { - expirationTime = selectedDateTime - .toString() - .split('.') - .first; // Remove seconds and milliseconds + expirationTime = + selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds expirationTimeTimeStamp = selectedTimestamp; } } @@ -360,27 +329,20 @@ class SmartDoorBloc extends Bloc { ).millisecondsSinceEpoch ~/ 1000; // Divide by 1000 to remove milliseconds if (event.isEffective) { - if (expirationTimeTimeStamp != null && - selectedTimestamp > expirationTimeTimeStamp!) { - CustomSnackBar.displaySnackBar( - 'Effective Time cannot be later than Expiration Time.'); + if (expirationTimeTimeStamp != null && selectedTimestamp > expirationTimeTimeStamp!) { + CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.'); } else { - effectiveTime = selectedDateTime - .toString() - .split('.') - .first; // Remove seconds and milliseconds + effectiveTime = + selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds effectiveTimeTimeStamp = selectedTimestamp; } } else { - if (effectiveTimeTimeStamp != null && - selectedTimestamp < effectiveTimeTimeStamp!) { + if (effectiveTimeTimeStamp != null && selectedTimestamp < effectiveTimeTimeStamp!) { CustomSnackBar.displaySnackBar( 'Expiration Time cannot be earlier than Effective Time.'); } else { - expirationTime = selectedDateTime - .toString() - .split('.') - .first; // Remove seconds and milliseconds + expirationTime = + selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds expirationTimeTimeStamp = selectedTimestamp; } } @@ -389,8 +351,7 @@ class SmartDoorBloc extends Bloc { } } - Future savePassword( - SavePasswordEvent event, Emitter emit) async { + Future savePassword(SavePasswordEvent event, Emitter emit) async { if (_validateInputs() || isSavingPassword) return; try { isSavingPassword = true; @@ -420,8 +381,7 @@ class SmartDoorBloc extends Bloc { } Future generateAndSavePasswordTimeLimited( - GenerateAndSavePasswordTimeLimitEvent event, - Emitter emit) async { + GenerateAndSavePasswordTimeLimitEvent event, Emitter emit) async { if (timeLimitValidate() || isSavingPassword) return; try { isSavingPassword = true; @@ -447,12 +407,10 @@ class SmartDoorBloc extends Bloc { } } - Future deletePassword( - DeletePasswordEvent event, Emitter emit) async { + Future deletePassword(DeletePasswordEvent event, Emitter emit) async { try { emit(LoadingInitialState()); - await DevicesAPI.deletePassword( - deviceId: deviceId, passwordId: event.passwordId) + await DevicesAPI.deletePassword(deviceId: deviceId, passwordId: event.passwordId) .then((value) async { add(InitialPasswordsPage()); }); @@ -487,8 +445,7 @@ class SmartDoorBloc extends Bloc { } if (repeat == true && (endTime == null || startTime == null)) { - CustomSnackBar.displaySnackBar( - 'Start Time and End time and the days required '); + CustomSnackBar.displaySnackBar('Start Time and End time and the days required '); return true; } return false; diff --git a/lib/features/devices/bloc/three_gang_bloc/three_gang_bloc.dart b/lib/features/devices/bloc/three_gang_bloc/three_gang_bloc.dart index 04f434c..78b9dd1 100644 --- a/lib/features/devices/bloc/three_gang_bloc/three_gang_bloc.dart +++ b/lib/features/devices/bloc/three_gang_bloc/three_gang_bloc.dart @@ -101,7 +101,7 @@ class ThreeGangBloc extends Bloc { } deviceStatus = ThreeGangModel.fromJson(statusModelList); emit(UpdateState(threeGangModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } } catch (e) { emit(FailedState(error: e.toString())); diff --git a/lib/features/devices/bloc/three_touch_bloc/three_touch_bloc.dart b/lib/features/devices/bloc/three_touch_bloc/three_touch_bloc.dart index beec442..0ac4edd 100644 --- a/lib/features/devices/bloc/three_touch_bloc/three_touch_bloc.dart +++ b/lib/features/devices/bloc/three_touch_bloc/three_touch_bloc.dart @@ -107,7 +107,7 @@ class ThreeTouchBloc extends Bloc { } deviceStatus = ThreeTouchModel.fromJson(statusModelList); emit(UpdateState(threeTouchModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } } catch (e) { emit(FailedState(error: e.toString())); diff --git a/lib/features/devices/bloc/two_gang_bloc/two_gang_bloc.dart b/lib/features/devices/bloc/two_gang_bloc/two_gang_bloc.dart index 7906348..bc14479 100644 --- a/lib/features/devices/bloc/two_gang_bloc/two_gang_bloc.dart +++ b/lib/features/devices/bloc/two_gang_bloc/two_gang_bloc.dart @@ -89,7 +89,7 @@ class TwoGangBloc extends Bloc { } deviceStatus = TwoGangModel.fromJson(statusModelList); emit(UpdateState(twoGangModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; diff --git a/lib/features/devices/bloc/two_touch_bloc/two_touch_bloc.dart b/lib/features/devices/bloc/two_touch_bloc/two_touch_bloc.dart index 7f66724..b83c034 100644 --- a/lib/features/devices/bloc/two_touch_bloc/two_touch_bloc.dart +++ b/lib/features/devices/bloc/two_touch_bloc/two_touch_bloc.dart @@ -95,7 +95,7 @@ class TwoTouchBloc extends Bloc { } deviceStatus = TwoTouchModel.fromJson(statusModelList); emit(UpdateState(twoTouchModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; diff --git a/lib/features/devices/bloc/wall_sensor_bloc/wall_sensor_bloc.dart b/lib/features/devices/bloc/wall_sensor_bloc/wall_sensor_bloc.dart index 36212c5..7c01795 100644 --- a/lib/features/devices/bloc/wall_sensor_bloc/wall_sensor_bloc.dart +++ b/lib/features/devices/bloc/wall_sensor_bloc/wall_sensor_bloc.dart @@ -20,9 +20,7 @@ class WallSensorBloc extends Bloc { on(_wallSensorUpdated); } - void _fetchCeilingSensorStatus( - InitialEvent event, - Emitter emit) async { + void _fetchCeilingSensorStatus(InitialEvent event, Emitter emit) async { emit(LoadingInitialState()); try { var response = await DevicesAPI.getDeviceStatus(deviceId); @@ -32,7 +30,7 @@ class WallSensorBloc extends Bloc { } deviceStatus = WallSensorModel.fromJson(statusModelList); emit(UpdateState(wallSensorModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(FailedState(error: e.toString())); return; @@ -41,18 +39,15 @@ class WallSensorBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$deviceId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$deviceId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) { - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = WallSensorModel.fromJson(statusList); @@ -61,19 +56,15 @@ class WallSensorBloc extends Bloc { } catch (_) {} } - _wallSensorUpdated( - WallSensorUpdatedEvent event, Emitter emit) { + _wallSensorUpdated(WallSensorUpdatedEvent event, Emitter emit) { emit(UpdateState(wallSensorModel: deviceStatus)); } - void _changeIndicator( - ChangeIndicatorEvent event, Emitter emit) async { + void _changeIndicator(ChangeIndicatorEvent event, Emitter emit) async { emit(LoadingNewSate(wallSensorModel: deviceStatus)); try { final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: deviceId, code: 'indicator', value: !event.value), - deviceId); + DeviceControlModel(deviceId: deviceId, code: 'indicator', value: !event.value), deviceId); if (response['success'] ?? false) { deviceStatus.indicator = !event.value; @@ -82,14 +73,11 @@ class WallSensorBloc extends Bloc { emit(UpdateState(wallSensorModel: deviceStatus)); } - void _changeValue( - ChangeValueEvent event, Emitter emit) async { + void _changeValue(ChangeValueEvent event, Emitter emit) async { emit(LoadingNewSate(wallSensorModel: deviceStatus)); try { final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: deviceId, code: event.code, value: event.value), - deviceId); + DeviceControlModel(deviceId: deviceId, code: event.code, value: event.value), deviceId); if (response['success'] ?? false) { if (event.code == 'far_detection') { diff --git a/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart b/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart index e71f41a..0df2228 100644 --- a/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart +++ b/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart @@ -35,8 +35,7 @@ class WaterHeaterBloc extends Bloc { List listSchedule = []; DateTime? selectedTime = DateTime.now(); - WaterHeaterBloc({required this.whId, required this.switchCode}) - : super(WHInitialState()) { + WaterHeaterBloc({required this.whId, required this.switchCode}) : super(WHInitialState()) { on(_fetchWaterHeaterStatus); on(_changeFirstSwitch); on(_setCounterValue); @@ -61,8 +60,7 @@ class WaterHeaterBloc extends Bloc { on(_waterHeaterUpdated); } - void _fetchWaterHeaterStatus( - WaterHeaterInitial event, Emitter emit) async { + void _fetchWaterHeaterStatus(WaterHeaterInitial event, Emitter emit) async { emit(WHLoadingState()); try { var response = await DevicesAPI.getDeviceStatus(whId); @@ -74,7 +72,7 @@ class WaterHeaterBloc extends Bloc { statusModelList, ); emit(UpdateState(whModel: deviceStatus)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(WHFailedState(errorMessage: e.toString())); return; @@ -83,21 +81,18 @@ class WaterHeaterBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$whId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$whId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { - statusList - .add(StatusModel(code: element['code'], value: element['value'])); + statusList.add(StatusModel(code: element['code'], value: element['value'])); }); deviceStatus = WHModel.fromJson(statusList); @@ -108,14 +103,12 @@ class WaterHeaterBloc extends Bloc { } catch (_) {} } - _waterHeaterUpdated( - WaterHeaterUpdated event, Emitter emit) async { + _waterHeaterUpdated(WaterHeaterUpdated event, Emitter emit) async { emit(WHLoadingState()); emit(UpdateState(whModel: deviceStatus)); } - void _changeFirstSwitch( - WaterHeaterSwitch event, Emitter emit) async { + void _changeFirstSwitch(WaterHeaterSwitch event, Emitter emit) async { emit(LoadingNewSate(whModel: deviceStatus)); try { deviceStatus.firstSwitch = !event.whSwitch; @@ -125,10 +118,7 @@ class WaterHeaterBloc extends Bloc { } _timer = Timer(const Duration(milliseconds: 500), () async { final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: whId, - code: 'switch_1', - value: deviceStatus.firstSwitch), + DeviceControlModel(deviceId: whId, code: 'switch_1', value: deviceStatus.firstSwitch), whId); if (!response['success']) { @@ -142,16 +132,13 @@ class WaterHeaterBloc extends Bloc { //=====================---------- timer ---------------------------------------- - void _setCounterValue( - SetCounterValue event, Emitter emit) async { + void _setCounterValue(SetCounterValue event, Emitter emit) async { emit(LoadingNewSate(whModel: deviceStatus)); int seconds = 0; try { seconds = event.duration.inSeconds; final response = await DevicesAPI.controlDevice( - DeviceControlModel( - deviceId: whId, code: event.deviceCode, value: seconds), - whId); + DeviceControlModel(deviceId: whId, code: event.deviceCode, value: seconds), whId); if (response['success'] ?? false) { if (event.deviceCode == 'countdown_1') { @@ -173,8 +160,7 @@ class WaterHeaterBloc extends Bloc { } } - void _getCounterValue( - GetCounterEvent event, Emitter emit) async { + void _getCounterValue(GetCounterEvent event, Emitter emit) async { emit(WHLoadingState()); try { var response = await DevicesAPI.getDeviceStatus(whId); @@ -264,8 +250,7 @@ class WaterHeaterBloc extends Bloc { deviceId: whId, ); List jsonData = response; - listSchedule = - jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); + listSchedule = jsonData.map((item) => ScheduleModel.fromJson(item)).toList(); emit(WHInitialState()); } on DioException catch (e) { final errorData = e.response!.data; @@ -276,13 +261,12 @@ class WaterHeaterBloc extends Bloc { int? getTimeStampWithoutSeconds(DateTime? dateTime) { if (dateTime == null) return null; - DateTime dateTimeWithoutSeconds = DateTime(dateTime.year, dateTime.month, - dateTime.day, dateTime.hour, dateTime.minute); + DateTime dateTimeWithoutSeconds = + DateTime(dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute); return dateTimeWithoutSeconds.millisecondsSinceEpoch ~/ 1000; } - Future toggleChange( - ToggleScheduleEvent event, Emitter emit) async { + Future toggleChange(ToggleScheduleEvent event, Emitter emit) async { try { emit(WHLoadingState()); final response = await DevicesAPI.changeSchedule( @@ -300,8 +284,7 @@ class WaterHeaterBloc extends Bloc { } } - Future deleteSchedule( - DeleteScheduleEvent event, Emitter emit) async { + Future deleteSchedule(DeleteScheduleEvent event, Emitter emit) async { try { emit(WHLoadingState()); final response = await DevicesAPI.deleteSchedule( @@ -320,8 +303,7 @@ class WaterHeaterBloc extends Bloc { } } - void _toggleCreateCirculate( - ToggleCreateCirculate event, Emitter emit) { + void _toggleCreateCirculate(ToggleCreateCirculate event, Emitter emit) { emit(WHLoadingState()); createCirculate = !createCirculate; selectedDays.clear(); @@ -329,15 +311,13 @@ class WaterHeaterBloc extends Bloc { emit(UpdateCreateScheduleState(createCirculate)); } - void toggleSelectedIndex( - ToggleSelectedEvent event, Emitter emit) { + void toggleSelectedIndex(ToggleSelectedEvent event, Emitter emit) { emit(WHLoadingState()); selectedTabIndex = event.index; emit(ChangeSlidingSegmentState(value: selectedTabIndex)); } - void toggleCreateSchedule( - ToggleCreateScheduleEvent event, Emitter emit) { + void toggleCreateSchedule(ToggleCreateScheduleEvent event, Emitter emit) { emit(WHLoadingState()); createSchedule = !createSchedule; selectedDays.clear(); @@ -386,8 +366,8 @@ class WaterHeaterBloc extends Bloc { List groupWaterHeaterList = []; bool allSwitchesOn = true; - void _changeFirstWizardSwitch(ChangeFirstWizardSwitchStatusEvent event, - Emitter emit) async { + void _changeFirstWizardSwitch( + ChangeFirstWizardSwitchStatusEvent event, Emitter emit) async { emit(LoadingNewSate(whModel: deviceStatus)); try { bool allSwitchesValue = true; @@ -399,8 +379,7 @@ class WaterHeaterBloc extends Bloc { allSwitchesValue = false; } }); - emit(UpdateGroupState( - twoGangList: groupWaterHeaterList, allSwitches: allSwitchesValue)); + emit(UpdateGroupState(twoGangList: groupWaterHeaterList, allSwitches: allSwitchesValue)); final response = await DevicesAPI.deviceBatchController( code: 'switch_1', @@ -415,8 +394,7 @@ class WaterHeaterBloc extends Bloc { } } - void _fetchWHWizardStatus( - InitialWizardEvent event, Emitter emit) async { + void _fetchWHWizardStatus(InitialWizardEvent event, Emitter emit) async { emit(WHLoadingState()); try { devicesList = []; @@ -426,8 +404,7 @@ class WaterHeaterBloc extends Bloc { HomeCubit.getInstance().selectedSpace?.id ?? '', 'WH'); for (int i = 0; i < devicesList.length; i++) { - var response = - await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); + var response = await DevicesAPI.getDeviceStatus(devicesList[i].uuid ?? ''); List statusModelList = []; for (var status in response['status']) { statusModelList.add(StatusModel.fromJson(status)); @@ -449,27 +426,23 @@ class WaterHeaterBloc extends Bloc { return true; }); } - emit(UpdateGroupState( - twoGangList: groupWaterHeaterList, allSwitches: allSwitchesOn)); + emit(UpdateGroupState(twoGangList: groupWaterHeaterList, allSwitches: allSwitchesOn)); } catch (e) { // emit(FailedState(error: e.toString())); return; } } - void _groupAllOn( - GroupAllOnEvent event, Emitter emit) async { + void _groupAllOn(GroupAllOnEvent event, Emitter emit) async { emit(LoadingNewSate(whModel: deviceStatus)); try { for (int i = 0; i < groupWaterHeaterList.length; i++) { groupWaterHeaterList[i].firstSwitch = true; } - emit(UpdateGroupState( - twoGangList: groupWaterHeaterList, allSwitches: true)); + emit(UpdateGroupState(twoGangList: groupWaterHeaterList, allSwitches: true)); - List allDeviceIds = - groupWaterHeaterList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupWaterHeaterList.map((device) => device.deviceId).toList(); final response = await DevicesAPI.deviceBatchController( code: 'switch_1', @@ -487,18 +460,15 @@ class WaterHeaterBloc extends Bloc { } } - void _groupAllOff( - GroupAllOffEvent event, Emitter emit) async { + void _groupAllOff(GroupAllOffEvent event, Emitter emit) async { emit(LoadingNewSate(whModel: deviceStatus)); try { for (int i = 0; i < groupWaterHeaterList.length; i++) { groupWaterHeaterList[i].firstSwitch = false; } - emit(UpdateGroupState( - twoGangList: groupWaterHeaterList, allSwitches: false)); + emit(UpdateGroupState(twoGangList: groupWaterHeaterList, allSwitches: false)); - List allDeviceIds = - groupWaterHeaterList.map((device) => device.deviceId).toList(); + List allDeviceIds = groupWaterHeaterList.map((device) => device.deviceId).toList(); final response = await DevicesAPI.deviceBatchController( code: 'switch_1', diff --git a/lib/features/devices/bloc/water_leak_bloc/water_leak_bloc.dart b/lib/features/devices/bloc/water_leak_bloc/water_leak_bloc.dart index 300c4f4..9e50f69 100644 --- a/lib/features/devices/bloc/water_leak_bloc/water_leak_bloc.dart +++ b/lib/features/devices/bloc/water_leak_bloc/water_leak_bloc.dart @@ -25,11 +25,9 @@ class WaterLeakBloc extends Bloc { bool lowBattery = false; bool closingReminder = false; bool waterAlarm = false; - WaterLeakModel deviceStatus = - WaterLeakModel(waterContactState: 'normal', batteryPercentage: 0); + WaterLeakModel deviceStatus = WaterLeakModel(waterContactState: 'normal', batteryPercentage: 0); - void _fetchStatus( - WaterLeakInitial event, Emitter emit) async { + void _fetchStatus(WaterLeakInitial event, Emitter emit) async { emit(WaterLeakLoadingState()); try { var response = await DevicesAPI.getDeviceStatus(WLId); @@ -43,15 +41,14 @@ class WaterLeakBloc extends Bloc { emit(UpdateState(waterSensor: deviceStatus)); Future.delayed(const Duration(milliseconds: 500)); - // _listenToChanges(); + _listenToChanges(); } catch (e) { emit(WaterLeakFailedState(errorMessage: e.toString())); return; } } - void _toggleLowBattery( - ToggleLowBatteryEvent event, Emitter emit) async { + void _toggleLowBattery(ToggleLowBatteryEvent event, Emitter emit) async { emit(LoadingNewSate(waterSensor: deviceStatus)); try { lowBattery = event.isLowBatteryEnabled; @@ -90,8 +87,7 @@ class WaterLeakBloc extends Bloc { } } - void _toggleWaterLeakAlarm( - ToggleWaterLeakAlarmEvent event, Emitter emit) async { + void _toggleWaterLeakAlarm(ToggleWaterLeakAlarmEvent event, Emitter emit) async { emit(LoadingNewSate(waterSensor: deviceStatus)); try { waterAlarm = event.isWaterLeakAlarmEnabled; @@ -109,11 +105,9 @@ class WaterLeakBloc extends Bloc { } } - DeviceReport recordGroups = - DeviceReport(startTime: '0', endTime: '0', data: []); + DeviceReport recordGroups = DeviceReport(startTime: '0', endTime: '0', data: []); - Future fetchLogsForLastMonth( - ReportLogsInitial event, Emitter emit) async { + Future fetchLogsForLastMonth(ReportLogsInitial event, Emitter emit) async { DateTime now = DateTime.now(); DateTime lastMonth = DateTime(now.year, now.month - 1, now.day); int startTime = lastMonth.millisecondsSinceEpoch; @@ -137,16 +131,14 @@ class WaterLeakBloc extends Bloc { _listenToChanges() { try { - DatabaseReference ref = - FirebaseDatabase.instance.ref('device-status/$WLId'); + DatabaseReference ref = FirebaseDatabase.instance.ref('device-status/$WLId'); Stream stream = ref.onValue; stream.listen((DatabaseEvent event) async { if (_timer != null) { await Future.delayed(const Duration(seconds: 2)); } - Map usersMap = - event.snapshot.value as Map; + Map usersMap = event.snapshot.value as Map; List statusList = []; usersMap['status'].forEach((element) { diff --git a/pubspec.yaml b/pubspec.yaml index 7a9778c..a79ba67 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: This is the mobile application project, developed with Flutter for # pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 1.0.5+33 +version: 1.0.5+34 environment: sdk: ">=3.0.6 <4.0.0"