From 6f3dfb607ef10f4562593de447798f4b456e86cb Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Mon, 2 Jun 2025 10:11:23 +0300 Subject: [PATCH] Extracted single/batch control services creation into a factory for ease of reusablility for the sake of this migration. --- .../device_bloc_dependencies_factory.dart | 18 ++++++++++++++++++ ...h_mounted_presence_sensor_bloc_factory.dart | 11 +++-------- 2 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 lib/pages/device_managment/factories/device_bloc_dependencies_factory.dart diff --git a/lib/pages/device_managment/factories/device_bloc_dependencies_factory.dart b/lib/pages/device_managment/factories/device_bloc_dependencies_factory.dart new file mode 100644 index 00000000..1c75c38b --- /dev/null +++ b/lib/pages/device_managment/factories/device_bloc_dependencies_factory.dart @@ -0,0 +1,18 @@ +import 'package:syncrow_web/services/batch_control_devices_service.dart'; +import 'package:syncrow_web/services/control_device_service.dart'; + +abstract final class DeviceBlocDependenciesFactory { + const DeviceBlocDependenciesFactory._(); + + static ControlDeviceService createControlDeviceService() { + return DebouncedControlDeviceService( + decoratee: RemoteControlDeviceService(), + ); + } + + static BatchControlDevicesService createBatchControlDevicesService() { + return DebouncedBatchControlDevicesService( + decoratee: RemoteBatchControlDevicesService(), + ); + } +} diff --git a/lib/pages/device_managment/flush_mounted_presence_sensor/factories/flush_mounted_presence_sensor_bloc_factory.dart b/lib/pages/device_managment/flush_mounted_presence_sensor/factories/flush_mounted_presence_sensor_bloc_factory.dart index 49fb517f..e842f36b 100644 --- a/lib/pages/device_managment/flush_mounted_presence_sensor/factories/flush_mounted_presence_sensor_bloc_factory.dart +++ b/lib/pages/device_managment/flush_mounted_presence_sensor/factories/flush_mounted_presence_sensor_bloc_factory.dart @@ -1,6 +1,5 @@ +import 'package:syncrow_web/pages/device_managment/factories/device_bloc_dependencies_factory.dart'; import 'package:syncrow_web/pages/device_managment/flush_mounted_presence_sensor/bloc/flush_mounted_presence_sensor_bloc.dart'; -import 'package:syncrow_web/services/batch_control_devices_service.dart'; -import 'package:syncrow_web/services/control_device_service.dart'; abstract final class FlushMountedPresenceSensorBlocFactory { const FlushMountedPresenceSensorBlocFactory._(); @@ -10,12 +9,8 @@ abstract final class FlushMountedPresenceSensorBlocFactory { }) { return FlushMountedPresenceSensorBloc( deviceId: deviceId, - controlDeviceService: DebouncedControlDeviceService( - decoratee: RemoteControlDeviceService(), - ), - batchControlDevicesService: DebouncedBatchControlDevicesService( - decoratee: RemoteBatchControlDevicesService(), - ), + controlDeviceService: DeviceBlocDependenciesFactory.createControlDeviceService(), + batchControlDevicesService: DeviceBlocDependenciesFactory.createBatchControlDevicesService(), ); } }