add listener to batch

This commit is contained in:
Rafeek-Khoudare
2025-06-27 16:53:40 +03:00
parent 396ce3dad8
commit 812c51400b

View File

@ -253,6 +253,37 @@ class CurtainModuleBloc extends Bloc<CurtainModuleEvent, CurtainModuleState> {
emit(CurtainModuleStatusLoaded( emit(CurtainModuleStatusLoaded(
curtainModuleStatus: CurtainModuleStatusModel.fromJson(result), curtainModuleStatus: CurtainModuleStatusModel.fromJson(result),
)); ));
Map<String, dynamic> statusMap = {};
final ref = FirebaseDatabase.instance
.ref('device-status/${event.devicesIds.first}');
final stream = ref.onValue;
stream.listen((DatabaseEvent DatabaseEvent) async {
if (DatabaseEvent.snapshot.value == null) return;
Map<dynamic, dynamic> usersMap =
DatabaseEvent.snapshot.value as Map<dynamic, dynamic>;
List<Status> statusList = [];
usersMap['status'].forEach((element) {
statusList
.add(Status(code: element['code'], value: element['value']));
});
statusMap = {
for (final element in statusList) element.code: element.value,
};
if (!isClosed) {
add(
ChangeCurtainModuleStatusEvent(
deviceId: event.devicesIds.first,
status: CurtainModuleStatusModel.fromJson(statusMap),
),
);
}
});
} catch (e) { } catch (e) {
emit(CurtainModuleError(message: e.toString())); emit(CurtainModuleError(message: e.toString()));
} }