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 369a482..0c8fec8 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart @@ -87,12 +87,14 @@ class CreateSceneBloc extends Bloc } emit(TempHoldSceneTask(tempTasksList: tempTasksList)); + emit(AddSceneTask(tasksList: tasksList)); } FutureOr _selectedValue( SelectedValueEvent event, Emitter emit) { selectedValues[event.code] = event.value; emit(SelectedTaskValueState(value: event.value)); + emit(AddSceneTask(tasksList: tasksList)); } FutureOr _removeTaskById( @@ -116,6 +118,8 @@ class CreateSceneBloc extends Bloc tempTasksList.remove(element); emit(TempHoldSceneTask(tempTasksList: tempTasksList)); + emit(AddSceneTask(tasksList: tasksList)); + break; } } @@ -172,6 +176,7 @@ class CreateSceneBloc extends Bloc tempTasksList.clear(); selectedValues.clear(); emit(TempHoldSceneTask(tempTasksList: tempTasksList)); + emit(AddSceneTask(tasksList: tempTasksList)); } FutureOr _removeFromSelectedValueById( @@ -179,6 +184,7 @@ class CreateSceneBloc extends Bloc if (selectedValues.containsKey(event.code)) { selectedValues.remove(event.code); emit(const SelectedTaskValueState(value: null)); + emit(AddSceneTask(tasksList: tasksList)); } } 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 a5af5eb..79f72e1 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_event.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_event.dart @@ -8,8 +8,6 @@ sealed class CreateSceneEvent extends Equatable { } class AddTaskEvent extends CreateSceneEvent { - final bool updateTaskListFromTemp; - const AddTaskEvent({required this.updateTaskListFromTemp}); @override List get props => []; } diff --git a/lib/features/scene/helper/scene_operations_data_helper.dart b/lib/features/scene/helper/scene_operations_data_helper.dart index 0f0c1e8..c1e2079 100644 --- a/lib/features/scene/helper/scene_operations_data_helper.dart +++ b/lib/features/scene/helper/scene_operations_data_helper.dart @@ -660,6 +660,9 @@ mixin SceneOperationsDataHelper { ]; } +///////&************ END of get function with icons for device *************&&//////// + /// + /// List getTaskListFunctionsFromApi({ required List actions, required String deviceId, @@ -1267,6 +1270,11 @@ mixin SceneOperationsDataHelper { return functions; } + ///// END of get fucntion for once device based on the CODE ***** /////// + /// + /// + /// + List getOperationsForOneFunction({ required String deviceId, required SceneStaticFunction taskItem, diff --git a/lib/features/scene/view/device_functions_view.dart b/lib/features/scene/view/device_functions_view.dart index c43af8a..5ad9974 100644 --- a/lib/features/scene/view/device_functions_view.dart +++ b/lib/features/scene/view/device_functions_view.dart @@ -48,7 +48,7 @@ class DeviceFunctionsView extends StatelessWidget onPressed: () { context .read() - .add(const AddTaskEvent(updateTaskListFromTemp: true)); + .add( AddTaskEvent()); Navigator.popUntil(context, (route) { return route.settings.name == Routes.sceneTasksRoute; }); @@ -62,7 +62,19 @@ class DeviceFunctionsView extends StatelessWidget ], leading: TextButton( onPressed: () { - context.read().add(const ClearTaskListEvent()); + final selectedValue = + context.read().selectedValues; + for (var element in device.functions) { + if (selectedValue.containsKey(element.code)) { + context + .read() + .add(RemoveTempTaskByIdEvent(code: element.code!)); + context + .read() + .add(RemoveFromSelectedValueById(code: element.code!)); + } + } + Navigator.pop(context); }, child: BodyMedium( @@ -174,22 +186,22 @@ class DeviceFunctionsView extends StatelessWidget final tempTaskList = context .read() .tempTasksList; - if (tempTaskList.isEmpty) { - context - .read() - .add(const ClearTempTaskListEvent()); - } else { - for (var element in tempTaskList) { - if (element.code == functions[index].code) { - context.read().add( - RemoveTempTaskByIdEvent( - code: functions[index].code)); - context.read().add( - RemoveFromSelectedValueById( - code: functions[index].code)); - } + // if (tempTaskList.isEmpty) { + // context + // .read() + // .add(const ClearTempTaskListEvent()); + // } else { + for (var element in tempTaskList) { + if (element.code == functions[index].code) { + context.read().add( + RemoveTempTaskByIdEvent( + code: functions[index].code)); + context.read().add( + RemoveFromSelectedValueById( + code: functions[index].code)); } } + //} Navigator.pop(context); }, ); diff --git a/lib/features/scene/widgets/alert_dialogs/alert_dialog_functions_body.dart b/lib/features/scene/widgets/alert_dialogs/alert_dialog_functions_body.dart index 7af1ec0..9c71ef5 100644 --- a/lib/features/scene/widgets/alert_dialogs/alert_dialog_functions_body.dart +++ b/lib/features/scene/widgets/alert_dialogs/alert_dialog_functions_body.dart @@ -29,9 +29,10 @@ class _AlertDialogFunctionsOperationsBodyState didChangeDependencies() { super.didChangeDependencies(); final tempTaskList = context.read().tempTasksList; - if (tempTaskList.isEmpty) { - context.read().add(const ClearTempTaskListEvent()); - } else if (tempTaskList.isNotEmpty) { + // if (tempTaskList.isEmpty) { + // context.read().add(const ClearTempTaskListEvent()); + // } else + if (tempTaskList.isNotEmpty) { for (var element in tempTaskList) { if (element.code == widget.functions[widget.index].code) { groupValue = element.functionValue; diff --git a/lib/features/scene/widgets/bottom_sheet_widget.dart b/lib/features/scene/widgets/bottom_sheet_widget.dart index 7700fbb..872e1eb 100644 --- a/lib/features/scene/widgets/bottom_sheet_widget.dart +++ b/lib/features/scene/widgets/bottom_sheet_widget.dart @@ -124,27 +124,25 @@ class CustomBottomSheetWidget extends StatelessWidget { deviceName: 'Delay The Action', uniqueId: functions[0].uniqueCustomId, )); - context - .read() - .add(const AddTaskEvent(updateTaskListFromTemp: true)); + context.read().add(AddTaskEvent()); Navigator.pop(context); }, onDismiss: () { final tempTaskList = context.read().tempTasksList; - if (tempTaskList.isEmpty) { - context.read().add(const ClearTempTaskListEvent()); - } else { - for (var element in tempTaskList) { - if (element.code == functions[0].code) { - context - .read() - .add(RemoveTempTaskByIdEvent(code: functions[0].code)); - context - .read() - .add(RemoveFromSelectedValueById(code: functions[0].code)); - } + // if (tempTaskList.isNotEmpty) { + // context.read().add(const ClearTempTaskListEvent()); + // } else { + for (var element in tempTaskList) { + if (element.code == functions[0].code) { + context + .read() + .add(RemoveTempTaskByIdEvent(code: functions[0].code)); + context + .read() + .add(RemoveFromSelectedValueById(code: functions[0].code)); } } + // } Navigator.pop(context); }, ); diff --git a/lib/features/scene/widgets/if_then_containers/then_container.dart b/lib/features/scene/widgets/if_then_containers/then_container.dart index 47bc900..3c36709 100644 --- a/lib/features/scene/widgets/if_then_containers/then_container.dart +++ b/lib/features/scene/widgets/if_then_containers/then_container.dart @@ -55,6 +55,7 @@ class ThenDefaultContainer extends StatelessWidget { if (state is CreateSceneLoading) { return const Center(child: LinearProgressIndicator()); } + if (state is AddSceneTask) { final taskLists = state.tasksList; if (taskLists.isNotEmpty) {