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 {
final response = await SceneApi.getSceneDetails(event.sceneId);
if (response.id.isNotEmpty) {
tasksList = List<SceneStaticFunction>.from(getTaskListFunctionsFromApi(
actions: response.actions, deviceId: response.id));
tasksList = List<SceneStaticFunction>.from(
getTaskListFunctionsFromApi(actions: response.actions));
emit(AddSceneTask(
tasksList: tasksList,
));

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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