push factory reset logic and call for all devices

This commit is contained in:
ashrafzarkanisala
2024-09-22 21:56:17 +03:00
parent 3a28f0ef9a
commit 2955533209
31 changed files with 481 additions and 35 deletions

View File

@ -20,14 +20,15 @@ class CeilingSensorBloc extends Bloc<CeilingSensorEvent, CeilingSensorState> {
on<GetCeilingDeviceReportsEvent>(_getDeviceReports);
on<ShowCeilingDescriptionEvent>(_showDescription);
on<BackToCeilingGridViewEvent>(_backToGridView);
on<CeilingFactoryResetEvent>(_onFactoryReset);
}
void _fetchCeilingSensorStatus(
CeilingInitialEvent event, Emitter<CeilingSensorState> emit) async {
emit(CeilingLoadingInitialState());
try {
var response = await DevicesManagementApi()
.getDeviceStatus(event.deviceId);
var response =
await DevicesManagementApi().getDeviceStatus(event.deviceId);
deviceStatus = CeilingSensorModel.fromJson(response.status);
emit(CeilingUpdateState(ceilingSensorModel: deviceStatus));
// _listenToChanges();
@ -188,4 +189,22 @@ class CeilingSensorBloc extends Bloc<CeilingSensorEvent, CeilingSensorState> {
return;
}
}
FutureOr<void> _onFactoryReset(
CeilingFactoryResetEvent event, Emitter<CeilingSensorState> emit) async {
emit(CeilingLoadingNewSate(ceilingSensorModel: deviceStatus));
try {
final response = await DevicesManagementApi().factoryReset(
event.factoryResetModel,
event.devicesId,
);
if (!response) {
emit(const CeilingFailedState(error: 'Failed'));
} else {
emit(CeilingUpdateState(ceilingSensorModel: deviceStatus));
}
} catch (e) {
emit(CeilingFailedState(error: e.toString()));
}
}
}

View File

@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/factory_reset_model.dart';
abstract class CeilingSensorEvent extends Equatable {
const CeilingSensorEvent();
@ -69,3 +70,16 @@ class ShowCeilingDescriptionEvent extends CeilingSensorEvent {
}
class BackToCeilingGridViewEvent extends CeilingSensorEvent {}
class CeilingFactoryResetEvent extends CeilingSensorEvent {
final String devicesId;
final FactoryResetModel factoryResetModel;
const CeilingFactoryResetEvent({
required this.devicesId,
required this.factoryResetModel,
});
@override
List<Object> get props => [devicesId, factoryResetModel];
}

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/factory_reset_model.dart';
import 'package:syncrow_web/pages/device_managment/ceiling_sensor/bloc/bloc.dart';
import 'package:syncrow_web/pages/device_managment/ceiling_sensor/bloc/event.dart';
import 'package:syncrow_web/pages/device_managment/ceiling_sensor/bloc/state.dart';
@ -112,7 +113,17 @@ class CeilingSensorBatchControlView extends StatelessWidget
),
),
FirmwareUpdateWidget(deviceId: devicesIds.first, version: 4),
FactoryResetWidget(deviceId: devicesIds.first),
FactoryResetWidget(
callFactoryReset: () {
context.read<CeilingSensorBloc>().add(
CeilingFactoryResetEvent(
devicesId: devicesIds.first,
factoryResetModel:
FactoryResetModel(devicesUuid: devicesIds),
),
);
},
),
],
);
}