diff --git a/assets/icons/refresh_status_icon.svg b/assets/icons/refresh_status_icon.svg new file mode 100644 index 0000000..eb375bd --- /dev/null +++ b/assets/icons/refresh_status_icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/lib/features/devices/bloc/device_manager_bloc/device_manager_bloc.dart b/lib/features/devices/bloc/device_manager_bloc/device_manager_bloc.dart index 20b936e..9d6b95e 100644 --- a/lib/features/devices/bloc/device_manager_bloc/device_manager_bloc.dart +++ b/lib/features/devices/bloc/device_manager_bloc/device_manager_bloc.dart @@ -178,7 +178,8 @@ class DeviceManagerBloc extends Bloc { DeviceType.CeilingSensor, DeviceType.ThreeGang, DeviceType.OneGang, - DeviceType.TwoGang + DeviceType.TwoGang, + DeviceType.WH }; return devices diff --git a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart index 17a5b51..a96c7ce 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart @@ -159,6 +159,7 @@ class CreateSceneBloc extends Bloc // Add new element if it doesn't exist in either list if (!updated) { var newElement = SceneStaticFunction( + deviceType: event.deviceType, operationName: event.operation, deviceName: event.deviceName, icon: event.icon, @@ -192,6 +193,7 @@ class CreateSceneBloc extends Bloc if (element.code == event.deviceControlModel.code) { // Update the existing function with new values var updatedElement = element.copyWith( + deviceType: element.deviceType, operationName: event.operation, deviceName: event.deviceName, icon: event.icon, @@ -217,6 +219,7 @@ class CreateSceneBloc extends Bloc } if (!updated) { var newElement = SceneStaticFunction( + deviceType: event.deviceType, operationName: event.operation, deviceName: event.deviceName, icon: event.icon, diff --git a/lib/features/scene/bloc/create_scene/create_scene_event.dart b/lib/features/scene/bloc/create_scene/create_scene_event.dart index 2b79f6d..fbaaa39 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_event.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_event.dart @@ -24,6 +24,7 @@ class TempHoldSceneTasksEvent extends CreateSceneEvent { final String uniqueId; final bool? isAutomation; final OperationDialogType operationType; + final String deviceType; const TempHoldSceneTasksEvent({ required this.deviceControlModel, @@ -34,6 +35,7 @@ class TempHoldSceneTasksEvent extends CreateSceneEvent { required this.uniqueId, this.isAutomation, required this.operationType, + required this.deviceType, }); @override @@ -46,6 +48,7 @@ class TempHoldSceneTasksEvent extends CreateSceneEvent { uniqueId, deviceName, icon, + deviceType ]; } @@ -149,7 +152,8 @@ class FetchSceneTasksEvent extends CreateSceneEvent { final String sceneId; final bool isAutomation; - const FetchSceneTasksEvent({this.isAutomation = false, required this.sceneId}); + const FetchSceneTasksEvent( + {this.isAutomation = false, required this.sceneId}); @override List get props => [sceneId, isAutomation]; diff --git a/lib/features/scene/bloc/smart_scene/smart_scene_select_dart_bloc.dart b/lib/features/scene/bloc/smart_scene/smart_scene_select_dart_bloc.dart index a6370d8..e7e3179 100644 --- a/lib/features/scene/bloc/smart_scene/smart_scene_select_dart_bloc.dart +++ b/lib/features/scene/bloc/smart_scene/smart_scene_select_dart_bloc.dart @@ -41,6 +41,7 @@ class SmartSceneSelectBloc .read(); createSceneBloc.add(TempHoldSceneTasksEvent( + deviceType: '', deviceControlModel: DeviceControlModel( deviceId: smartSceneEnable?.entityId ?? '', code: CreateSceneEnum.smartSceneSelect.name, diff --git a/lib/features/scene/helper/functions_per_device/one_gang_functions.dart b/lib/features/scene/helper/functions_per_device/one_gang_functions.dart index a8a8b4f..7283919 100644 --- a/lib/features/scene/helper/functions_per_device/one_gang_functions.dart +++ b/lib/features/scene/helper/functions_per_device/one_gang_functions.dart @@ -7,6 +7,7 @@ class OneGangHelperFunctions { String deviceId, String deviceName, functionValue) { return [ SceneStaticFunction( + deviceType: '1G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -22,6 +23,7 @@ class OneGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '1G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -40,6 +42,7 @@ class OneGangHelperFunctions { String deviceId, String deviceName, functionValue) { return [ SceneStaticFunction( + deviceType: '1G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -55,6 +58,7 @@ class OneGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '1G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, diff --git a/lib/features/scene/helper/functions_per_device/three_gang_functions.dart b/lib/features/scene/helper/functions_per_device/three_gang_functions.dart index 9a72c8e..19ac469 100644 --- a/lib/features/scene/helper/functions_per_device/three_gang_functions.dart +++ b/lib/features/scene/helper/functions_per_device/three_gang_functions.dart @@ -7,6 +7,7 @@ class ThreeGangHelperFunctions { String deviceId, String deviceName, functionValue) { return [ SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -22,6 +23,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -34,6 +36,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -49,6 +52,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -61,6 +65,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -76,6 +81,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -94,6 +100,7 @@ class ThreeGangHelperFunctions { String deviceId, String deviceName, functionValue) { return [ SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -109,6 +116,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -128,6 +136,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -143,6 +152,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, @@ -162,6 +172,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsAcPower, @@ -177,6 +188,7 @@ class ThreeGangHelperFunctions { ], ), SceneStaticFunction( + deviceType: '3G', deviceId: deviceId, deviceName: deviceName, icon: Assets.assetsLightCountdown, diff --git a/lib/features/scene/helper/functions_per_device/water_heater_functions.dart b/lib/features/scene/helper/functions_per_device/water_heater_functions.dart new file mode 100644 index 0000000..80cdd89 --- /dev/null +++ b/lib/features/scene/helper/functions_per_device/water_heater_functions.dart @@ -0,0 +1,124 @@ +import 'package:syncrow_app/features/scene/enum/operation_dialog_type.dart'; +import 'package:syncrow_app/features/scene/model/scene_static_function.dart'; +import 'package:syncrow_app/generated/assets.dart'; + +class WaterHeaterFunctionsHelper { + static List waterHeaterHelperFunctions( + String deviceId, String deviceName, functionValue) { + return [ + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.assetsAcPower, + operationName: 'Reverse Switch', + code: 'switch_1', + functionValue: functionValue, + operationDialogType: OperationDialogType.onOff, + operationalValues: [ + SceneOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "Power OFF", + value: false), + SceneOperationalValue( + icon: Assets.assetsAcPower, + description: "Power ON", + value: true, + ), + ], + ), + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.assetsLightCountdown, + operationName: 'CountDown', + code: 'countdown_1', + functionValue: functionValue, + operationDialogType: OperationDialogType.countdown, + operationalValues: [ + SceneOperationalValue(icon: '', value: 0), + ], + ), + ]; + } + + static List waterHeaterAutomationFunctions( + String deviceId, String deviceName, functionValue) { + return [ + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.refreshStatusIcon, + operationName: 'Restart Status', + code: 'relay_status', + functionValue: functionValue, + operationDialogType: OperationDialogType.none, + operationalValues: [ + SceneOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "Power OFF", + value: 'off', + ), + SceneOperationalValue( + icon: Assets.assetsAcPower, + description: "Power ON", + value: 'on', + ), + SceneOperationalValue( + icon: Assets.refreshStatusIcon, + description: "Restart Memory", + value: 'memory', + ), + ], + ), + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.assetsAcPower, + operationName: 'Switch', + code: 'switch_1', + functionValue: functionValue, + operationDialogType: OperationDialogType.onOff, + operationalValues: [ + SceneOperationalValue( + icon: Assets.assetsAcPower, description: "ON", value: true), + SceneOperationalValue( + icon: Assets.assetsAcPowerOFF, description: "OFF", value: false), + ], + ), + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.assetsLightCountdown, + operationName: 'CountDown', + code: 'countdown_1', + functionValue: functionValue, + operationDialogType: OperationDialogType.integerSteps, + operationalValues: [ + SceneOperationalValue( + icon: '', + description: "sec", + value: 0.0, + minValue: 0, + maxValue: 43200, + stepValue: 1, + ), + ], + ), + SceneStaticFunction( + deviceId: deviceId, + deviceName: deviceName, + icon: Assets.assetsIndicator, + operationName: 'Backlight Switch', + code: 'switch_backlight', + functionValue: functionValue, + operationDialogType: OperationDialogType.onOff, + operationalValues: [ + SceneOperationalValue( + icon: Assets.assetsAcPower, description: "ON", value: true), + SceneOperationalValue( + icon: Assets.assetsAcPowerOFF, description: "OFF", value: false), + ], + ), + ]; + } +} diff --git a/lib/features/scene/helper/scene_operations_data_helper.dart b/lib/features/scene/helper/scene_operations_data_helper.dart index 2c0d6ef..a259c4a 100644 --- a/lib/features/scene/helper/scene_operations_data_helper.dart +++ b/lib/features/scene/helper/scene_operations_data_helper.dart @@ -10,6 +10,7 @@ import 'package:syncrow_app/features/scene/helper/functions_per_device/one_gang_ import 'package:syncrow_app/features/scene/helper/functions_per_device/presence_sensor.dart'; import 'package:syncrow_app/features/scene/helper/functions_per_device/three_gang_functions.dart'; import 'package:syncrow_app/features/scene/helper/functions_per_device/tow_gang_helper_functions.dart'; +import 'package:syncrow_app/features/scene/helper/functions_per_device/water_heater_functions.dart'; import 'package:syncrow_app/features/scene/model/scene_details_model.dart'; import 'package:syncrow_app/features/scene/model/scene_static_function.dart'; import 'package:syncrow_app/generated/assets.dart'; @@ -29,6 +30,7 @@ mixin SceneOperationsDataHelper { DeviceType.Gateway: gatewayFunctions, DeviceType.OneGang: oneGangFunctions, DeviceType.TwoGang: towGangFunctions, + DeviceType.WH: waterHeaterFunctions, }; final Map _titleMap = { @@ -42,8 +44,23 @@ mixin SceneOperationsDataHelper { DeviceType.Gateway: 'Gateway Functions', DeviceType.OneGang: '1G Light Switch Conditions', DeviceType.TwoGang: '2G Light Switch Conditions', + DeviceType.WH: 'Water Heater Conditions', }; + static List waterHeaterFunctions( + List functions, + String deviceId, + String deviceName, + dynamic functionValue, + bool isAutomation) { + if (isAutomation) { + return WaterHeaterFunctionsHelper.waterHeaterAutomationFunctions( + deviceId, deviceName, functionValue); + } + return WaterHeaterFunctionsHelper.waterHeaterHelperFunctions( + deviceId, deviceName, functionValue); + } + //one gang functions static List oneGangFunctions( List functions, @@ -201,6 +218,7 @@ mixin SceneOperationsDataHelper { if (action.entityId == 'delay') { functions.add( SceneStaticFunction( + deviceType: action.productType, deviceId: action.entityId, deviceName: 'delay', deviceIcon: Assets.delay, @@ -222,6 +240,7 @@ mixin SceneOperationsDataHelper { // Handle smart scenes functions.add( SceneStaticFunction( + deviceType: action.productType, deviceId: action.entityId, deviceName: action.name.toString(), deviceIcon: action.type == 'automation' @@ -328,6 +347,8 @@ mixin SceneOperationsDataHelper { 'switch_alarm_sound': _createSwitchAlarmSoundFunction, 'master_state': _createMasterStateFunction, 'factory_reset': _createFactoryResetFunction, + 'switch_backlight': _createSwitchFunction, + 'relay_status': _relayStatusSwitchFunction, }; final functionCode = executorProperty?.functionCode ?? ''; @@ -339,7 +360,7 @@ mixin SceneOperationsDataHelper { } } - SceneStaticFunction _createSceneFunction( + static SceneStaticFunction _createSceneFunction( Action action, String deviceName, String icon, @@ -350,8 +371,11 @@ mixin SceneOperationsDataHelper { String? comparator, String? uniqueCustomId, ]) { + final productType = action.productType; + final functionValue = action.executorProperty?.functionValue; return SceneStaticFunction( + deviceType: productType, uniqueCustomId: uniqueCustomId, deviceId: action.entityId, deviceName: deviceName, @@ -422,7 +446,7 @@ mixin SceneOperationsDataHelper { ); } - List _createOnOffOptions() { + static List _createOnOffOptions() { return [ SceneOperationalValue( icon: Assets.assetsAcPower, @@ -744,7 +768,7 @@ mixin SceneOperationsDataHelper { return _createSceneFunction( action, action.deviceName, - Assets.assetsIconsAC, + Assets.waterHeaterIcon, 'Power', OperationDialogType.onOff, _createOnOffOptions(), @@ -754,6 +778,21 @@ mixin SceneOperationsDataHelper { ); } + SceneStaticFunction _relayStatusSwitchFunction(Action action, + bool isAutomation, String? comparator, String? uniqueCustomId) { + return _createSceneFunction( + action, + action.deviceName, + Assets.waterHeaterIcon, + 'Restart Status', + OperationDialogType.none, + _createRelayStatusOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); + } + SceneStaticFunction _createTempSetFunction(Action action, bool isAutomation, String? comparator, String? uniqueCustomId) { return _createSceneFunction( @@ -833,9 +872,22 @@ mixin SceneOperationsDataHelper { ); } - SceneStaticFunction _createSwitch1Function(Action action, bool isAutomation, - String? comparator, String? uniqueCustomId) { + static SceneStaticFunction _createSwitch1Function(Action action, + bool isAutomation, String? comparator, String? uniqueCustomId) { switch (action.productType) { + case "WH": + return _createSceneFunction( + action, + action.deviceName, + Assets.waterHeaterIcon, + 'Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); + case "3G": return _createSceneFunction( action, @@ -872,6 +924,30 @@ mixin SceneOperationsDataHelper { comparator, uniqueCustomId, ); + case "TwoGang": + return _createSceneFunction( + action, + action.deviceName, + Assets.twoGang, + 'L - Light Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); + case "ThreeGang": + return _createSceneFunction( + action, + action.deviceName, + Assets.twoGang, + 'L - Light Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); default: return _createSceneFunction( action, @@ -914,6 +990,30 @@ mixin SceneOperationsDataHelper { comparator, uniqueCustomId, ); + case "TwoGang": + return _createSceneFunction( + action, + action.deviceName, + Assets.twoGang, + 'R - Light Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); + case "ThreeGang": + return _createSceneFunction( + action, + action.deviceName, + Assets.twoGang, + 'M - Light Switch', + OperationDialogType.onOff, + _createOnOffOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); default: return _createSceneFunction( action, @@ -979,12 +1079,28 @@ mixin SceneOperationsDataHelper { comparator, uniqueCustomId, ); + case "WH": + return _createSceneFunction( + action, + action.deviceName, + Assets.waterHeaterIcon, + 'CountDown', + isAutomation + ? OperationDialogType.integerSteps + : OperationDialogType.countdown, + isAutomation + ? _createAutomationCountDownOptions() + : _createCountdownOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); default: return _createSceneFunction( action, action.deviceName, Assets.oneGang, - 'Light CountDown', + 'CountDown', isAutomation ? OperationDialogType.integerSteps : OperationDialogType.countdown, @@ -1033,6 +1149,22 @@ mixin SceneOperationsDataHelper { comparator, uniqueCustomId, ); + case "ThreeGang": + return _createSceneFunction( + action, + action.deviceName, + Assets.twoGang, + 'R - Light CountDown', + isAutomation + ? OperationDialogType.integerSteps + : OperationDialogType.countdown, + isAutomation + ? _createAutomationCountDownOptions() + : _createCountdownOptions(), + isAutomation, + comparator, + uniqueCustomId, + ); default: return _createSceneFunction( action, @@ -1395,6 +1527,7 @@ mixin SceneOperationsDataHelper { if (deviceId.contains('delay')) { return [ SceneStaticFunction( + deviceType: taskItem.deviceType, uniqueCustomId: taskItem.uniqueCustomId, deviceId: taskItem.deviceId, deviceName: 'delay', @@ -1417,6 +1550,7 @@ mixin SceneOperationsDataHelper { if (taskItem.code == CreateSceneEnum.smartSceneSelect.name) { return [ SceneStaticFunction( + deviceType: taskItem.deviceType, uniqueCustomId: taskItem.uniqueCustomId, deviceId: taskItem.deviceId, deviceName: taskItem.deviceName.toString(), @@ -1449,7 +1583,7 @@ mixin SceneOperationsDataHelper { _mapExecutorPropertyToSceneFunction( Action( deviceName: taskItem.deviceName, - productType: '', + productType: taskItem.deviceType!, entityId: deviceId, executorProperty: ExecutorProperty( functionCode: taskItem.code, @@ -1476,4 +1610,24 @@ mixin SceneOperationsDataHelper { ), ]; } + + List _createRelayStatusOptions() { + return [ + SceneOperationalValue( + icon: Assets.assetsAcPower, + description: "Power ON", + value: 'on', + ), + SceneOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "Power OFF", + value: 'off', + ), + SceneOperationalValue( + icon: Assets.refreshStatusIcon, + description: "Restart Memory", + value: 'memory', + ), + ]; + } } diff --git a/lib/features/scene/model/scene_static_function.dart b/lib/features/scene/model/scene_static_function.dart index 8644f88..0c47e73 100644 --- a/lib/features/scene/model/scene_static_function.dart +++ b/lib/features/scene/model/scene_static_function.dart @@ -16,6 +16,7 @@ class SceneStaticFunction { final String? deviceIcon; final OperationDialogType operationDialogType; final String? comparator; + final String? deviceType; SceneStaticFunction({ required this.icon, @@ -28,6 +29,7 @@ class SceneStaticFunction { this.deviceIcon, required this.operationDialogType, this.comparator, + this.deviceType, String? uniqueCustomId, }) : uniqueCustomId = uniqueCustomId ?? const Uuid().v4(); @@ -44,6 +46,7 @@ class SceneStaticFunction { OperationDialogType? operationDialogType, String? comparator, String? uniqueCustomId, + String? deviceType, }) { return SceneStaticFunction( icon: icon ?? this.icon, @@ -57,6 +60,7 @@ class SceneStaticFunction { operationDialogType: operationDialogType ?? this.operationDialogType, comparator: comparator ?? this.comparator, uniqueCustomId: uniqueCustomId ?? const Uuid().v4(), + deviceType: deviceType ?? this.deviceType, ); } @@ -73,6 +77,7 @@ class SceneStaticFunction { 'operationDialogType': operationDialogType.name, 'comparator': comparator, 'uniqueCustomId': uniqueCustomId, + 'deviceType': deviceType, }; } @@ -93,6 +98,7 @@ class SceneStaticFunction { : OperationDialogType.none, comparator: map['comparator'], uniqueCustomId: map['uniqueCustomId'] ?? const Uuid().v4(), + deviceType: map['deviceType'] ?? '', ); } @@ -103,7 +109,7 @@ class SceneStaticFunction { @override String toString() { - return 'SceneStaticFunction(icon: $icon, name: $deviceName, code: $code, operationalValues: $operationalValues, deviceId: $deviceId, operationName: $operationName, functionValue: $functionValue, deviceIcon: $deviceIcon, operationDialogType: $operationDialogType, comparator: $comparator, uniqueCustomId: $uniqueCustomId)'; + return 'SceneStaticFunction(icon: $icon, name: $deviceName, code: $code, operationalValues: $operationalValues, deviceId: $deviceId, operationName: $operationName, functionValue: $functionValue, deviceIcon: $deviceIcon, operationDialogType: $operationDialogType, comparator: $comparator, uniqueCustomId: $uniqueCustomId, deviceType: $deviceType)'; } @override @@ -121,7 +127,7 @@ class SceneStaticFunction { other.uniqueCustomId == uniqueCustomId && other.operationDialogType == operationDialogType && listEquals(other.operationalValues, operationalValues) && - other.deviceId == deviceId; + other.deviceId == deviceId && other.deviceType == deviceType; } @override @@ -136,7 +142,7 @@ class SceneStaticFunction { comparator.hashCode ^ uniqueCustomId.hashCode ^ operationDialogType.hashCode ^ - operationalValues.hashCode; + operationalValues.hashCode ^ deviceType.hashCode; } } diff --git a/lib/features/scene/view/device_functions_view.dart b/lib/features/scene/view/device_functions_view.dart index 367c9f0..c857a7c 100644 --- a/lib/features/scene/view/device_functions_view.dart +++ b/lib/features/scene/view/device_functions_view.dart @@ -257,6 +257,7 @@ class DeviceFunctionsView extends StatelessWidget deviceName: device.name ?? '', uniqueId: function.uniqueCustomId!, operationType: function.operationDialogType, + deviceType: '', )); Navigator.pop(context); }, @@ -297,6 +298,7 @@ class DeviceFunctionsView extends StatelessWidget return; } context.read().add(TempHoldSceneTasksEvent( + deviceType: device.productType!.name, deviceControlModel: DeviceControlModel( deviceId: device.uuid, code: function.code, diff --git a/lib/features/scene/widgets/bottom_sheet_widget.dart b/lib/features/scene/widgets/bottom_sheet_widget.dart index 7722498..3d592dd 100644 --- a/lib/features/scene/widgets/bottom_sheet_widget.dart +++ b/lib/features/scene/widgets/bottom_sheet_widget.dart @@ -70,7 +70,8 @@ class CustomBottomSheetWidget extends StatelessWidget { color: ColorsManager.greyColor, ), onPressed: () { - Navigator.pushNamed(context, Routes.smartAutomationSelectRoute, arguments: sceneId); + Navigator.pushNamed(context, Routes.smartAutomationSelectRoute, + arguments: sceneId); }, ), SceneListTile( @@ -92,7 +93,8 @@ class CustomBottomSheetWidget extends StatelessWidget { } void _onDelayActionPressed(BuildContext context) { - final functionValues = context.read().selectedValues['delay']; + final functionValues = + context.read().selectedValues['delay']; final functions = [ SceneStaticFunction( deviceId: 'delay', @@ -115,8 +117,10 @@ class CustomBottomSheetWidget extends StatelessWidget { ), title: functions[0].operationName, onConfirm: () { - final selectedValue = context.read().selectedValues['delay']; + final selectedValue = + context.read().selectedValues['delay']; context.read().add(TempHoldSceneTasksEvent( + deviceType: '', deviceControlModel: DeviceControlModel( deviceId: '', code: '', @@ -138,7 +142,9 @@ class CustomBottomSheetWidget extends StatelessWidget { for (var element in tempTaskList) { if (element.code == functions[0].code) { - context.read().add(RemoveTempTaskByIdEvent(code: functions[0].code)); + context + .read() + .add(RemoveTempTaskByIdEvent(code: functions[0].code)); context .read() .add(RemoveFromSelectedValueById(code: functions[0].code)); diff --git a/lib/generated/assets.dart b/lib/generated/assets.dart index 1bcce2f..29aef40 100644 --- a/lib/generated/assets.dart +++ b/lib/generated/assets.dart @@ -1140,11 +1140,12 @@ class Assets { static const String parlour = 'assets/icons/parlour.svg'; static const String grid = 'assets/images/grid.svg'; - static const String toggleSwitchSmall = 'assets/icons/toggleSwitchSmall.svg'; - static const String offToggleSwitchSmall = 'assets/icons/offToggleSwitchSmall.svg'; - static const String saveRoutinesIcon = 'assets/icons/save_routines_icon.svg'; - static const String cancelIcon = 'assets/icons/cancel_icon.svg'; - - + static const String toggleSwitchSmall = 'assets/icons/toggleSwitchSmall.svg'; + static const String offToggleSwitchSmall = + 'assets/icons/offToggleSwitchSmall.svg'; + static const String saveRoutinesIcon = 'assets/icons/save_routines_icon.svg'; + static const String cancelIcon = 'assets/icons/cancel_icon.svg'; + static const String refreshStatusIcon = + 'assets/icons/refresh_status_icon.svg'; }