mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
add listener to batch
This commit is contained in:
@ -253,6 +253,37 @@ class CurtainModuleBloc extends Bloc<CurtainModuleEvent, CurtainModuleState> {
|
||||
emit(CurtainModuleStatusLoaded(
|
||||
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) {
|
||||
emit(CurtainModuleError(message: e.toString()));
|
||||
}
|
||||
|
Reference in New Issue
Block a user