commit last changes

This commit is contained in:
ashrafzarkanisala
2024-07-01 22:31:50 +03:00
parent bf05f94586
commit 75fe80e72a
7 changed files with 60 additions and 53 deletions

View File

@ -158,8 +158,8 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
try { try {
final response = await SceneApi.getSceneDetails(event.sceneId); final response = await SceneApi.getSceneDetails(event.sceneId);
if (response.id.isNotEmpty) { if (response.id.isNotEmpty) {
tasksList = List<SceneStaticFunction>.from(getTaskListFunctionsFromApi( tasksList = List<SceneStaticFunction>.from(
actions: response.actions, deviceId: response.id)); getTaskListFunctionsFromApi(actions: response.actions));
emit(AddSceneTask( emit(AddSceneTask(
tasksList: tasksList, tasksList: tasksList,
)); ));

View File

@ -51,8 +51,8 @@ mixin SceneLogicHelper {
actionExecutor: 'delay', actionExecutor: 'delay',
executorProperty: CreateSceneExecutorProperty( executorProperty: CreateSceneExecutorProperty(
functionCode: '', functionCode: '',
functionValue: task.operationalValues.first.value, functionValue: '',
delaySeconds: 0, delaySeconds: task.operationalValues.first.value,
), ),
); );
} }

View File

@ -458,11 +458,6 @@ mixin SceneOperationsDataHelper {
icon: Assets.assetsAcPower, description: "ON", value: true), icon: Assets.assetsAcPower, description: "ON", value: true),
SceneOperationalValue( SceneOperationalValue(
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false), icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
SceneOperationalValue(
icon: Assets.assetsSceneRefresh,
description: "Reverse Switch",
value: null,
),
], ],
), ),
SceneStaticFunction( SceneStaticFunction(
@ -477,11 +472,6 @@ mixin SceneOperationsDataHelper {
icon: Assets.assetsAcPower, description: "ON", value: true), icon: Assets.assetsAcPower, description: "ON", value: true),
SceneOperationalValue( SceneOperationalValue(
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false), icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
SceneOperationalValue(
icon: Assets.assetsSceneRefresh,
description: "Reverse Switch",
value: null,
),
], ],
), ),
SceneStaticFunction( SceneStaticFunction(
@ -496,11 +486,6 @@ mixin SceneOperationsDataHelper {
icon: Assets.assetsAcPower, description: "ON", value: true), icon: Assets.assetsAcPower, description: "ON", value: true),
SceneOperationalValue( SceneOperationalValue(
icon: Assets.assetsAcPowerOFF, description: "OFF", value: false), icon: Assets.assetsAcPowerOFF, description: "OFF", value: false),
SceneOperationalValue(
icon: Assets.assetsSceneRefresh,
description: "Reverse Switch",
value: null,
),
], ],
), ),
SceneStaticFunction( SceneStaticFunction(
@ -665,18 +650,37 @@ mixin SceneOperationsDataHelper {
/// ///
List<SceneStaticFunction> getTaskListFunctionsFromApi({ List<SceneStaticFunction> getTaskListFunctionsFromApi({
required List<Action> actions, required List<Action> actions,
required String deviceId,
}) { }) {
List<SceneStaticFunction> functions = []; List<SceneStaticFunction> functions = [];
for (var action in actions) { for (var action in actions) {
if (action.entityId == 'delay') {
functions.add(
SceneStaticFunction(
deviceId: action.entityId,
deviceName: 'delay',
deviceIcon: Assets.delay,
icon: Assets.delay,
operationName: 'delay',
functionValue: action.executorProperty.delaySeconds,
code: '',
operationalValues: [
SceneOperationalValue(
icon: '',
description: "",
value: action.executorProperty.delaySeconds,
),
],
),
);
}
ExecutorProperty executorProperty = action.executorProperty; ExecutorProperty executorProperty = action.executorProperty;
switch (executorProperty.functionCode) { switch (executorProperty.functionCode) {
case 'sensitivity': case 'sensitivity':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Presence Sensor', deviceName: 'Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsSensitivityFunction, icon: Assets.assetsSensitivityFunction,
@ -741,7 +745,7 @@ mixin SceneOperationsDataHelper {
case 'normal_open_switch': case 'normal_open_switch':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'WIFI LOCK PRO', deviceName: 'WIFI LOCK PRO',
deviceIcon: Assets.assetsIconsDoorLock, deviceIcon: Assets.assetsIconsDoorLock,
icon: Assets.assetsIconsDoorLock, icon: Assets.assetsIconsDoorLock,
@ -763,7 +767,7 @@ mixin SceneOperationsDataHelper {
case 'far_detection': case 'far_detection':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Human Presence Sensor', deviceName: 'Human Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsFarDetection, icon: Assets.assetsFarDetection,
@ -826,7 +830,7 @@ mixin SceneOperationsDataHelper {
case 'motion_sensitivity_value': case 'motion_sensitivity_value':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Human Presence Sensor', deviceName: 'Human Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsMotionDetection, icon: Assets.assetsMotionDetection,
@ -866,7 +870,7 @@ mixin SceneOperationsDataHelper {
case 'motionless_sensitivity': case 'motionless_sensitivity':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Human Presence Sensor', deviceName: 'Human Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsMotionlessDetection, icon: Assets.assetsMotionlessDetection,
@ -911,7 +915,7 @@ mixin SceneOperationsDataHelper {
case 'indicator': case 'indicator':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Human Presence Sensor', deviceName: 'Human Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsIndicator, icon: Assets.assetsIndicator,
@ -933,7 +937,7 @@ mixin SceneOperationsDataHelper {
case 'presence_time': case 'presence_time':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Human Presence Sensor', deviceName: 'Human Presence Sensor',
deviceIcon: Assets.assetsIconsSensors, deviceIcon: Assets.assetsIconsSensors,
icon: Assets.assetsNobodyTime, icon: Assets.assetsNobodyTime,
@ -949,7 +953,7 @@ mixin SceneOperationsDataHelper {
case 'switch_alarm_sound': case 'switch_alarm_sound':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Multi-Mode Gateway Z-W-B', deviceName: 'Multi-Mode Gateway Z-W-B',
deviceIcon: Assets.assetsIconsGateway, deviceIcon: Assets.assetsIconsGateway,
icon: Assets.assetsSwitchAlarmSound, icon: Assets.assetsSwitchAlarmSound,
@ -973,7 +977,7 @@ mixin SceneOperationsDataHelper {
case 'master_state': case 'master_state':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Multi-Mode Gateway Z-W-B', deviceName: 'Multi-Mode Gateway Z-W-B',
deviceIcon: Assets.assetsIconsGateway, deviceIcon: Assets.assetsIconsGateway,
icon: Assets.assetsMasterState, icon: Assets.assetsMasterState,
@ -998,7 +1002,7 @@ mixin SceneOperationsDataHelper {
case 'factory_reset': case 'factory_reset':
functions.add( functions.add(
SceneStaticFunction( SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Multi-Mode Gateway Z-W-B', deviceName: 'Multi-Mode Gateway Z-W-B',
deviceIcon: Assets.assetsIconsGateway, deviceIcon: Assets.assetsIconsGateway,
icon: Assets.assetsFactoryReset, icon: Assets.assetsFactoryReset,
@ -1021,7 +1025,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'switch_1': case 'switch_1':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsAcPower, icon: Assets.assetsAcPower,
@ -1048,7 +1052,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'switch_2': case 'switch_2':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsAcPower, icon: Assets.assetsAcPower,
@ -1072,7 +1076,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'switch_3': case 'switch_3':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsAcPower, icon: Assets.assetsAcPower,
@ -1096,7 +1100,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'countdown_1': case 'countdown_1':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsLightCountdown, icon: Assets.assetsLightCountdown,
@ -1110,7 +1114,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'countdown_2': case 'countdown_2':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsLightCountdown, icon: Assets.assetsLightCountdown,
@ -1124,7 +1128,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'countdown_3': case 'countdown_3':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: '3 Gang Button Switch L-L', deviceName: '3 Gang Button Switch L-L',
deviceIcon: Assets.assetsIcons3GangSwitch, deviceIcon: Assets.assetsIcons3GangSwitch,
icon: Assets.assetsLightCountdown, icon: Assets.assetsLightCountdown,
@ -1138,7 +1142,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'switch': case 'switch':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Smart AC Thermostat - Grey - Model A', deviceName: 'Smart AC Thermostat - Grey - Model A',
deviceIcon: Assets.assetsIconsAC, deviceIcon: Assets.assetsIconsAC,
icon: Assets.assetsAcPower, icon: Assets.assetsAcPower,
@ -1161,14 +1165,14 @@ mixin SceneOperationsDataHelper {
break; break;
case 'temp_set': case 'temp_set':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Smart AC Thermostat - Grey - Model A', deviceName: 'Smart AC Thermostat - Grey - Model A',
deviceIcon: Assets.assetsIconsAC, deviceIcon: Assets.assetsIconsAC,
icon: Assets.assetsTempreture, icon: Assets.assetsTempreture,
operationName: 'Set Temperature', operationName: 'Set Temperature',
code: 'temp_set', code: 'temp_set',
functionValue: executorProperty.functionValue != null functionValue: executorProperty.functionValue != null
? ((executorProperty.functionValue / 10) as double).toInt() ? ((executorProperty.functionValue! / 10) as double).toInt()
: null, : null,
operationalValues: [ operationalValues: [
SceneOperationalValue( SceneOperationalValue(
@ -1181,7 +1185,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'mode': case 'mode':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Smart AC Thermostat - Grey - Model A', deviceName: 'Smart AC Thermostat - Grey - Model A',
deviceIcon: Assets.assetsIconsAC, deviceIcon: Assets.assetsIconsAC,
icon: Assets.assetsFreezing, icon: Assets.assetsFreezing,
@ -1209,7 +1213,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'level': case 'level':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Smart AC Thermostat - Grey - Model A', deviceName: 'Smart AC Thermostat - Grey - Model A',
deviceIcon: Assets.assetsIconsAC, deviceIcon: Assets.assetsIconsAC,
icon: Assets.assetsFanSpeed, icon: Assets.assetsFanSpeed,
@ -1242,7 +1246,7 @@ mixin SceneOperationsDataHelper {
break; break;
case 'child_lock': case 'child_lock':
functions.add(SceneStaticFunction( functions.add(SceneStaticFunction(
deviceId: deviceId, deviceId: action.entityId,
deviceName: 'Smart AC Thermostat - Grey - Model A', deviceName: 'Smart AC Thermostat - Grey - Model A',
deviceIcon: Assets.assetsIconsAC, deviceIcon: Assets.assetsIconsAC,
icon: Assets.assetsChildLock, icon: Assets.assetsChildLock,

View File

@ -183,9 +183,9 @@ class CreateSceneExecutorProperty {
Map<String, dynamic> toMap() { Map<String, dynamic> toMap() {
return { return {
'functionCode': functionCode, if (functionCode.isNotEmpty == true) 'functionCode': functionCode,
'functionValue': functionValue, if (functionValue != '') 'functionValue': functionValue,
'delaySeconds': delaySeconds, if (delaySeconds > 0) 'delaySeconds': delaySeconds,
}; };
} }

View File

@ -81,8 +81,8 @@ class ExecutorProperty {
factory ExecutorProperty.fromJson(Map<String, dynamic> json) => factory ExecutorProperty.fromJson(Map<String, dynamic> json) =>
ExecutorProperty( ExecutorProperty(
functionCode: json["functionCode"] ?? '', functionCode: json["functionCode"] ?? '',
functionValue: json["functionValue"], functionValue: json["functionValue"] ?? '',
delaySeconds: json["delaySeconds"], delaySeconds: json["delaySeconds"] ?? 0,
); );
Map<String, dynamic> toJson() => { Map<String, dynamic> toJson() => {

View File

@ -33,11 +33,14 @@ class SceneTasksView extends StatelessWidget {
SizedBox( SizedBox(
width: 40, width: 40,
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: sceneSettings.sceneName.isEmpty
context.customBottomSheet( ? null
child: DeleteBottomSheetContent(sceneId: sceneSettings.sceneId), : () {
); context.customBottomSheet(
}, child: DeleteBottomSheetContent(
sceneId: sceneSettings.sceneId),
);
},
child: SvgPicture.asset( child: SvgPicture.asset(
Assets.assetsIconsSettings, Assets.assetsIconsSettings,
colorFilter: const ColorFilter.mode( colorFilter: const ColorFilter.mode(

View File

@ -122,7 +122,7 @@ class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton>
), ),
isLoading: state is CreateSceneLoading, isLoading: state is CreateSceneLoading,
child: BodyLarge( child: BodyLarge(
text: 'Save', text: widget.sceneName.isNotEmpty ? 'Update' : 'Save',
style: context.bodyLarge.copyWith(color: Colors.white), style: context.bodyLarge.copyWith(color: Colors.white),
), ),
); );