mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
add listener to batch
This commit is contained in:
@ -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()));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user