diff --git a/assets/icons/automation_ic.svg b/assets/icons/automation_ic.svg
new file mode 100644
index 0000000..a655eb5
--- /dev/null
+++ b/assets/icons/automation_ic.svg
@@ -0,0 +1,23 @@
+
diff --git a/lib/features/app_layout/bloc/home_cubit.dart b/lib/features/app_layout/bloc/home_cubit.dart
index 3e85cdc..29773da 100644
--- a/lib/features/app_layout/bloc/home_cubit.dart
+++ b/lib/features/app_layout/bloc/home_cubit.dart
@@ -370,6 +370,9 @@ class HomeCubit extends Cubit {
.add(const SmartSceneClearEvent());
BlocProvider.of(NavigationService.navigatorKey.currentState!.context)
.add(ResetEffectivePeriod());
+ NavigationService.navigatorKey.currentContext!
+ .read()
+ .add(const ClearTabToRunSetting());
},
),
IconButton(
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