water leak

This commit is contained in:
mohammad
2024-10-08 10:11:08 +03:00
parent 754d869fac
commit 75b3036e03
10 changed files with 264 additions and 249 deletions
@@ -28,7 +28,7 @@ class WaterLeakBloc extends Bloc<WaterLeakEvent, WaterLeakState> {
bool closingReminder = false;
bool waterAlarm = false;
WaterLeakModel deviceStatus =
WaterLeakModel(waterContactState: false, batteryPercentage: 0);
WaterLeakModel(waterContactState: 'normal', batteryPercentage: 0);
void _fetchStatus(
WaterLeakInitial event, Emitter<WaterLeakState> emit) async {
@@ -43,6 +43,7 @@ class WaterLeakBloc extends Bloc<WaterLeakEvent, WaterLeakState> {
statusModelList,
);
emit(UpdateState(waterSensor: deviceStatus));
Future.delayed(const Duration(milliseconds: 500));
_listenToChanges();
} catch (e) {
@@ -115,39 +116,32 @@ class WaterLeakBloc extends Bloc<WaterLeakEvent, WaterLeakState> {
}
}
DeviceReport recordGroups = DeviceReport(
startTime: '0',
endTime: '0',
data: [DeviceEvent(code: '111', eventTime: 23456789, value: 'tyuio')]);
DeviceReport recordGroups =
DeviceReport(startTime: '0', endTime: '0', data: []);
Future<void> fetchLogsForLastMonth(
ReportLogsInitial event, Emitter<WaterLeakState> emit) async {
// Get the current date and time
DateTime now = DateTime.now();
// Calculate the date one month ago
DateTime lastMonth = DateTime(now.year, now.month - 1, now.day);
// Convert the date to milliseconds since epoch (Unix timestamp in milliseconds)
int startTime = lastMonth.millisecondsSinceEpoch;
int endTime = now.millisecondsSinceEpoch;
try {
emit(WaterLeakLoadingState());
// var response = await DevicesAPI.getReportLogs(
// startTime:
// startTime.toString(), // Convert to String if the API expects it
// endTime: endTime.toString(), // Convert to String if the API expects it
// deviceUuid: WLId,
// code: 'watercontact_state',
// );
// print('response======${response}');
// recordGroups = response;
// Process response here
var response = await DevicesAPI.getReportLogs(
startTime: startTime.toString(),
endTime: endTime.toString(),
deviceUuid: WLId,
code: 'watercontact_state',
);
recordGroups = response;
emit(UpdateState(waterSensor: deviceStatus));
} on DioException catch (e) {
final errorData = e.response!.data;
String errorMessage = errorData['message'];
// Handle error
emit(WaterLeakFailedState(errorMessage: errorMessage));
print('Error fetching logs: ${errorMessage}');
}
}
@@ -10,7 +10,7 @@ abstract class WaterLeakEvent extends Equatable {
class WaterLeakLoading extends WaterLeakEvent {}
class WaterLeakSwitch extends WaterLeakEvent {
final bool switchD;
final String switchD;
final String deviceId;
final String productId;
const WaterLeakSwitch({required this.switchD, this.deviceId = '', this.productId = ''});