mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-11-27 05:04:55 +00:00
commit last changes
This commit is contained in:
@ -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,
|
||||||
));
|
));
|
||||||
|
|||||||
@ -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,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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() => {
|
||||||
|
|||||||
@ -33,9 +33,12 @@ class SceneTasksView extends StatelessWidget {
|
|||||||
SizedBox(
|
SizedBox(
|
||||||
width: 40,
|
width: 40,
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () {
|
onTap: sceneSettings.sceneName.isEmpty
|
||||||
|
? null
|
||||||
|
: () {
|
||||||
context.customBottomSheet(
|
context.customBottomSheet(
|
||||||
child: DeleteBottomSheetContent(sceneId: sceneSettings.sceneId),
|
child: DeleteBottomSheetContent(
|
||||||
|
sceneId: sceneSettings.sceneId),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: SvgPicture.asset(
|
child: SvgPicture.asset(
|
||||||
|
|||||||
@ -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),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user