mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
Fix deviceId assignment in FlushMountedPresenceSensorBlocFactory and update _listenToChanges method for async handling
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
@ -80,28 +81,31 @@ class FlushMountedPresenceSensorBloc
|
||||
}
|
||||
}
|
||||
|
||||
void _listenToChanges(
|
||||
Future<void> _listenToChanges(
|
||||
Emitter<FlushMountedPresenceSensorState> emit,
|
||||
String deviceId,
|
||||
) {
|
||||
try {
|
||||
final ref = FirebaseDatabase.instance.ref(
|
||||
'device-status/$deviceId',
|
||||
);
|
||||
) async {
|
||||
final ref = FirebaseDatabase.instance.ref(
|
||||
'device-status/$deviceId',
|
||||
);
|
||||
|
||||
ref.onValue.listen((DatabaseEvent event) {
|
||||
await ref.onValue.listen(
|
||||
(DatabaseEvent event) async {
|
||||
Map<dynamic, dynamic> usersMap =
|
||||
event.snapshot.value as Map<dynamic, dynamic>;
|
||||
List<Status> statusList = [];
|
||||
|
||||
usersMap['status'].forEach((element) {
|
||||
|
||||
(usersMap['status'] as List<dynamic>?)?.forEach((element) {
|
||||
statusList.add(Status(code: element['code'], value: element['value']));
|
||||
});
|
||||
|
||||
|
||||
deviceStatus = FlushMountedPresenceSensorModel.fromJson(statusList);
|
||||
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
||||
});
|
||||
} catch (_) {}
|
||||
if (!emit.isDone) {
|
||||
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
||||
}
|
||||
},
|
||||
onError: (error) => log(error.toString(), name: 'FirebaseDatabaseError'),
|
||||
).asFuture();
|
||||
}
|
||||
|
||||
void _onFlushMountedPresenceSensorChangeValueEvent(
|
||||
|
@ -9,7 +9,7 @@ abstract final class FlushMountedPresenceSensorBlocFactory {
|
||||
required String deviceId,
|
||||
}) {
|
||||
return FlushMountedPresenceSensorBloc(
|
||||
deviceId: '',
|
||||
deviceId: deviceId,
|
||||
controlDeviceService: DebouncedControlDeviceService(
|
||||
decoratee: RemoteControlDeviceService(),
|
||||
),
|
||||
|
Reference in New Issue
Block a user