push automation details and update automation

This commit is contained in:
ashrafzarkanisala
2024-07-25 00:25:48 +03:00
parent 56024ba3a3
commit 8a4c5af2e7
23 changed files with 1271 additions and 709 deletions
@@ -62,7 +62,7 @@ class _AlertDialogSliderStepsState extends State<AlertDialogSliderSteps> {
double _normalizeValue(dynamic value) {
if (widget.taskItem.code == "temp_set" ||
widget.taskItem.code == "temp_current") {
return (value as double) / 10;
return (value) / 10;
}
return value.toDouble();
}
@@ -83,8 +83,12 @@ class IFDefaultContainer extends StatelessWidget {
BlocBuilder<CreateSceneBloc, CreateSceneState>(
builder: (context, state) {
String conditionText = "When any condition is met";
if (state is ConditionSelectedState) {
conditionText = state.condition;
if (state is AddSceneTask) {
if (state.condition == 'or') {
conditionText = "When any condition is met";
} else {
conditionText = "When all conditions are met";
}
}
return SizedBox(
width: context.width * 0.6,
@@ -1,21 +1,22 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/features/scene/model/scenes_model.dart';
import 'package:syncrow_app/features/scene/widgets/scene_view_widget/scene_item.dart';
class SceneGrid extends StatelessWidget {
final List<ScenesModel> scenes;
final List<dynamic> scenes;
final String? loadingSceneId;
final bool disablePLayButton;
const SceneGrid({
required this.scenes,
required this.loadingSceneId,
super.key,
required this.disablePLayButton,
});
@override
Widget build(BuildContext context) {
return
GridView.builder(
return GridView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisSpacing: 12,
@@ -26,7 +27,10 @@ class SceneGrid extends StatelessWidget {
itemBuilder: (context, index) {
final scene = scenes[index];
final isLoading = loadingSceneId == scene.id;
return SceneItem(scene: scene, isLoading: isLoading);
return SceneItem(
scene: scene,
isLoading: isLoading,
disablePLayButton: disablePLayButton);
},
);
}
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/title_medium.dart';
import 'package:syncrow_app/utils/resource_manager/strings_manager.dart';
@@ -20,10 +19,10 @@ class SceneHeader extends StatelessWidget {
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 20),
BodySmall(
text: StringsManager.tapToRunRoutine,
),
// SizedBox(height: 20),
// BodySmall(
// text: StringsManager.tapToRunRoutine,
// ),
],
);
}
@@ -16,11 +16,13 @@ import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class SceneItem extends StatelessWidget {
final ScenesModel scene;
final bool isLoading;
final bool disablePLayButton;
const SceneItem({
required this.scene,
required this.isLoading,
super.key,
required this.disablePLayButton,
});
@override
@@ -31,16 +33,28 @@ class SceneItem extends StatelessWidget {
context,
Routes.sceneTasksRoute,
arguments: SceneSettingsRouteArguments(
sceneType: CreateSceneEnum.tabToRun.name,
sceneType: disablePLayButton == false
? CreateSceneEnum.tabToRun.name
: CreateSceneEnum.deviceStatusChanges.name,
sceneId: scene.id,
sceneName: scene.name,
),
);
BlocProvider.of<CreateSceneBloc>(context)
.add(FetchSceneTasksEvent(sceneId: scene.id));
if (disablePLayButton == false) {
BlocProvider.of<CreateSceneBloc>(context)
.add(const SceneTypeEvent(CreateSceneEnum.tabToRun));
BlocProvider.of<CreateSceneBloc>(context).add(
FetchSceneTasksEvent(sceneId: scene.id, isAutomation: false));
} else {
BlocProvider.of<CreateSceneBloc>(context)
.add(const SceneTypeEvent(CreateSceneEnum.deviceStatusChanges));
BlocProvider.of<CreateSceneBloc>(context)
.add(FetchSceneTasksEvent(sceneId: scene.id, isAutomation: true));
}
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
@@ -52,22 +66,25 @@ class SceneItem extends StatelessWidget {
Assets.assetsIconsLogo,
fit: BoxFit.fill,
),
IconButton(
padding: EdgeInsets.zero,
onPressed: () {
context
.read<SceneBloc>()
.add(SceneTrigger(scene.id, scene.name));
},
icon: isLoading
? const Center(
child: CircularProgressIndicator(),
)
: const Icon(
Icons.play_circle,
size: 40,
color: ColorsManager.greyColor,
),
Visibility(
visible: disablePLayButton == false,
child: IconButton(
padding: EdgeInsets.zero,
onPressed: () {
context
.read<SceneBloc>()
.add(SceneTrigger(scene.id, scene.name));
},
icon: isLoading
? const Center(
child: CircularProgressIndicator(),
)
: const Icon(
Icons.play_circle,
size: 40,
color: ColorsManager.greyColor,
),
),
),
],
),