diff --git a/assets/icons/functions_icons/factory_reset.svg b/assets/icons/functions_icons/factory_reset.svg
new file mode 100644
index 0000000..7a47f24
--- /dev/null
+++ b/assets/icons/functions_icons/factory_reset.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/functions_icons/far_detection.svg b/assets/icons/functions_icons/far_detection.svg
new file mode 100644
index 0000000..2827d94
--- /dev/null
+++ b/assets/icons/functions_icons/far_detection.svg
@@ -0,0 +1,16 @@
+
diff --git a/assets/icons/functions_icons/far_detection_function.svg b/assets/icons/functions_icons/far_detection_function.svg
new file mode 100644
index 0000000..894b84e
--- /dev/null
+++ b/assets/icons/functions_icons/far_detection_function.svg
@@ -0,0 +1,17 @@
+
diff --git a/assets/icons/functions_icons/indicator.svg b/assets/icons/functions_icons/indicator.svg
new file mode 100644
index 0000000..b58a976
--- /dev/null
+++ b/assets/icons/functions_icons/indicator.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/functions_icons/master_state.svg b/assets/icons/functions_icons/master_state.svg
new file mode 100644
index 0000000..0aafae1
--- /dev/null
+++ b/assets/icons/functions_icons/master_state.svg
@@ -0,0 +1,18 @@
+
diff --git a/assets/icons/functions_icons/motion_detection.svg b/assets/icons/functions_icons/motion_detection.svg
new file mode 100644
index 0000000..a9b2d68
--- /dev/null
+++ b/assets/icons/functions_icons/motion_detection.svg
@@ -0,0 +1,21 @@
+
diff --git a/assets/icons/functions_icons/motionless_detection.svg b/assets/icons/functions_icons/motionless_detection.svg
new file mode 100644
index 0000000..25a767c
--- /dev/null
+++ b/assets/icons/functions_icons/motionless_detection.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/functions_icons/nobody_time.svg b/assets/icons/functions_icons/nobody_time.svg
new file mode 100644
index 0000000..df80b51
--- /dev/null
+++ b/assets/icons/functions_icons/nobody_time.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/functions_icons/reset_off.svg b/assets/icons/functions_icons/reset_off.svg
new file mode 100644
index 0000000..eac88f2
--- /dev/null
+++ b/assets/icons/functions_icons/reset_off.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/functions_icons/switch_alarm_sound.svg b/assets/icons/functions_icons/switch_alarm_sound.svg
new file mode 100644
index 0000000..db64533
--- /dev/null
+++ b/assets/icons/functions_icons/switch_alarm_sound.svg
@@ -0,0 +1,10 @@
+
diff --git a/lib/features/scene/bloc/scene_bloc/scene_bloc.dart b/lib/features/scene/bloc/scene_bloc/scene_bloc.dart
index 81d04d3..d573d0a 100644
--- a/lib/features/scene/bloc/scene_bloc/scene_bloc.dart
+++ b/lib/features/scene/bloc/scene_bloc/scene_bloc.dart
@@ -11,38 +11,37 @@ part 'scene_state.dart';
class SceneBloc extends Bloc {
SceneBloc() : super(SceneInitial()) {
on(_onLoadScenes);
- on(_sceneTrigger);
+ on(_onSceneTrigger);
}
- FutureOr _onLoadScenes(
- LoadScenes event, Emitter emit) async {
+ Future _onLoadScenes(LoadScenes event, Emitter emit) async {
emit(SceneLoading());
try {
final scenes = await SceneApi.getScenesByUnitId(event.unitId);
- if (scenes.isNotEmpty) {
- emit(SceneLoaded(scenes));
- } else {
- emit(SceneTriggerError(message: 'Something went wrong'));
- }
+ emit(SceneLoaded(scenes));
} catch (e) {
emit(SceneError(message: e.toString()));
}
}
- FutureOr _sceneTrigger(
+ Future _onSceneTrigger(
SceneTrigger event, Emitter emit) async {
- emit(SceneTriggerLoading());
+ final currentState = state;
+ if (currentState is SceneLoaded) {
+ emit(SceneLoaded(currentState.scenes, loadingSceneId: event.sceneId));
- try {
- final success = await SceneApi.triggerScene(event.sceneId);
- if (success) {
- emit(SceneTriggerState(success: true));
- } else {
- emit(SceneTriggerError(message: 'Something went wrong'));
+ try {
+ final success = await SceneApi.triggerScene(event.sceneId);
+ if (success) {
+ emit(SceneTriggerSuccess(event.name));
+ emit(SceneLoaded(currentState.scenes));
+ } else {
+ emit(const SceneError(message: 'Something went wrong'));
+ }
+ } catch (e) {
+ emit(SceneError(message: e.toString()));
}
- } catch (e) {
- emit(SceneTriggerError(message: e.toString()));
}
}
}
diff --git a/lib/features/scene/bloc/scene_bloc/scene_event.dart b/lib/features/scene/bloc/scene_bloc/scene_event.dart
index 8c05921..7412afc 100644
--- a/lib/features/scene/bloc/scene_bloc/scene_event.dart
+++ b/lib/features/scene/bloc/scene_bloc/scene_event.dart
@@ -1,6 +1,8 @@
import 'package:equatable/equatable.dart';
abstract class SceneEvent extends Equatable {
+ const SceneEvent();
+
@override
List