mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
Refactor FlushMountedPresenceSensorBloc to streamline device control logic and remove redundant code
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:developer';
|
|
||||||
|
|
||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
@ -110,41 +109,16 @@ class FlushMountedPresenceSensorBloc
|
|||||||
Emitter<FlushMountedPresenceSensorState> emit,
|
Emitter<FlushMountedPresenceSensorState> emit,
|
||||||
) async {
|
) async {
|
||||||
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
||||||
switch (event.code) {
|
_updateDeviceFunctionFromCode(event.code, event.value);
|
||||||
case FlushMountedPresenceSensorModel.codeFarDetection:
|
|
||||||
deviceStatus.farDetection = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeSensitivity:
|
|
||||||
log('updated sensitivity: ${deviceStatus.sensitivity}-${event.value}');
|
|
||||||
deviceStatus.sensitivity = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeNoneDelay:
|
|
||||||
log('updated none delay: ${deviceStatus.noneDelay}-${event.value}');
|
|
||||||
deviceStatus.noneDelay = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codePresenceDelay:
|
|
||||||
deviceStatus.presenceDelay = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeNearDetection:
|
|
||||||
deviceStatus.nearDetection = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeOccurDistReduce:
|
|
||||||
deviceStatus.occurDistReduce = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeSensiReduce:
|
|
||||||
deviceStatus.sensiReduce = event.value;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
emit(FlushMountedPresenceSensorUpdateState(model: deviceStatus));
|
emit(FlushMountedPresenceSensorUpdateState(model: deviceStatus));
|
||||||
await _controlDevice(
|
try {
|
||||||
deviceId: deviceId,
|
await controlDeviceService.controlDevice(
|
||||||
code: event.code,
|
deviceUuid: deviceId,
|
||||||
value: event.value,
|
status: Status(code: event.code, value: event.value),
|
||||||
isBatch: false,
|
);
|
||||||
emit: emit,
|
} catch (_) {
|
||||||
);
|
await _reloadDeviceStatus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _onFlushMountedPresenceSensorBatchControlEvent(
|
Future<void> _onFlushMountedPresenceSensorBatchControlEvent(
|
||||||
@ -152,67 +126,54 @@ class FlushMountedPresenceSensorBloc
|
|||||||
Emitter<FlushMountedPresenceSensorState> emit,
|
Emitter<FlushMountedPresenceSensorState> emit,
|
||||||
) async {
|
) async {
|
||||||
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
emit(FlushMountedPresenceSensorLoadingNewSate(model: deviceStatus));
|
||||||
switch (event.code) {
|
_updateDeviceFunctionFromCode(event.code, event.value);
|
||||||
case FlushMountedPresenceSensorModel.codeFarDetection:
|
|
||||||
deviceStatus.farDetection = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeSensitivity:
|
|
||||||
deviceStatus.sensitivity = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeNoneDelay:
|
|
||||||
deviceStatus.noneDelay = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codePresenceDelay:
|
|
||||||
deviceStatus.presenceDelay = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeNearDetection:
|
|
||||||
deviceStatus.nearDetection = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeOccurDistReduce:
|
|
||||||
deviceStatus.occurDistReduce = event.value;
|
|
||||||
break;
|
|
||||||
case FlushMountedPresenceSensorModel.codeSensiReduce:
|
|
||||||
deviceStatus.sensiReduce = event.value;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
emit(FlushMountedPresenceSensorUpdateState(model: deviceStatus));
|
emit(FlushMountedPresenceSensorUpdateState(model: deviceStatus));
|
||||||
await _controlDevice(
|
|
||||||
deviceId: event.deviceIds,
|
try {
|
||||||
code: event.code,
|
await batchControlDevicesService.batchControlDevices(
|
||||||
value: event.value,
|
uuids: event.deviceIds,
|
||||||
emit: emit,
|
code: event.code,
|
||||||
isBatch: true,
|
value: event.value,
|
||||||
);
|
);
|
||||||
|
} catch (_) {
|
||||||
|
await _reloadDeviceStatus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _controlDevice({
|
void _updateDeviceFunctionFromCode(String code, int value) {
|
||||||
required dynamic deviceId,
|
switch (code) {
|
||||||
required String code,
|
case FlushMountedPresenceSensorModel.codeFarDetection:
|
||||||
required dynamic value,
|
deviceStatus.farDetection = value;
|
||||||
required Emitter<FlushMountedPresenceSensorState> emit,
|
break;
|
||||||
required bool isBatch,
|
case FlushMountedPresenceSensorModel.codeSensitivity:
|
||||||
}) async {
|
deviceStatus.sensitivity = value;
|
||||||
try {
|
break;
|
||||||
if (isBatch) {
|
case FlushMountedPresenceSensorModel.codeNoneDelay:
|
||||||
await batchControlDevicesService.batchControlDevices(
|
deviceStatus.noneDelay = value;
|
||||||
uuids: deviceId,
|
break;
|
||||||
code: code,
|
case FlushMountedPresenceSensorModel.codePresenceDelay:
|
||||||
value: value,
|
deviceStatus.presenceDelay = value;
|
||||||
);
|
break;
|
||||||
} else {
|
case FlushMountedPresenceSensorModel.codeNearDetection:
|
||||||
await controlDeviceService.controlDevice(
|
deviceStatus.nearDetection = value;
|
||||||
deviceUuid: deviceId,
|
break;
|
||||||
status: Status(code: code, value: value),
|
case FlushMountedPresenceSensorModel.codeOccurDistReduce:
|
||||||
);
|
deviceStatus.occurDistReduce = value;
|
||||||
}
|
break;
|
||||||
} catch (_) {
|
case FlushMountedPresenceSensorModel.codeSensiReduce:
|
||||||
await Future.delayed(const Duration(milliseconds: 500));
|
deviceStatus.sensiReduce = value;
|
||||||
add(FlushMountedPresenceSensorFetchStatusEvent());
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _reloadDeviceStatus() async {
|
||||||
|
await Future.delayed(const Duration(milliseconds: 500), () {
|
||||||
|
add(FlushMountedPresenceSensorFetchStatusEvent());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _onFlushMountedPresenceSensorGetDeviceReportsEvent(
|
Future<void> _onFlushMountedPresenceSensorGetDeviceReportsEvent(
|
||||||
FlushMountedPresenceSensorGetDeviceReportsEvent event,
|
FlushMountedPresenceSensorGetDeviceReportsEvent event,
|
||||||
Emitter<FlushMountedPresenceSensorState> emit,
|
Emitter<FlushMountedPresenceSensorState> emit,
|
||||||
|
Reference in New Issue
Block a user