Bug fixes

This commit is contained in:
Abdullah Alassaf
2024-11-12 00:15:26 +03:00
parent faf294bb10
commit b547a126ed
23 changed files with 342 additions and 510 deletions
@@ -10,8 +10,7 @@ import 'package:syncrow_app/navigation/routing_constants.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class DeleteRoutineButton extends StatelessWidget {
const DeleteRoutineButton(
{super.key, required this.sceneId, required this.isAutomation});
const DeleteRoutineButton({super.key, required this.sceneId, required this.isAutomation});
final String sceneId;
final bool isAutomation;
@@ -23,10 +22,10 @@ class DeleteRoutineButton extends StatelessWidget {
if (state is DeleteSceneSuccess) {
if (state.success) {
navigateToRoute(context, Routes.homeRoute);
BlocProvider.of<SceneBloc>(context).add(LoadScenes(
HomeCubit.getInstance().selectedSpace!.id, HomeCubit.getInstance().selectedSpace!));
BlocProvider.of<SceneBloc>(context)
.add(LoadScenes(HomeCubit.getInstance().selectedSpace!.id!,HomeCubit.getInstance().selectedSpace!));
BlocProvider.of<SceneBloc>(context).add(
LoadAutomation(HomeCubit.getInstance().selectedSpace!.id!));
.add(LoadAutomation(HomeCubit.getInstance().selectedSpace!.id));
}
}
},
@@ -43,8 +42,7 @@ class DeleteRoutineButton extends StatelessWidget {
confirmTab: () {
context.read<CreateSceneBloc>().add(DeleteSceneEvent(
sceneId: sceneId,
unitUuid:
HomeCubit.getInstance().selectedSpace!.id!,
unitUuid: HomeCubit.getInstance().selectedSpace!.id,
));
Navigator.of(context).pop();
},
@@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:syncrow_app/features/devices/bloc/device_manager_bloc/device_manager_bloc.dart';
import 'package:syncrow_app/features/devices/bloc/device_manager_bloc/device_manager_state.dart';
import 'package:syncrow_app/features/devices/model/room_model.dart';
import 'package:syncrow_app/features/devices/model/subspace_model.dart';
import 'package:syncrow_app/features/scene/bloc/tab_change/tab_change_bloc.dart';
import 'package:syncrow_app/features/scene/bloc/tab_change/tab_change_state.dart';
@@ -29,11 +28,9 @@ class SceneDevicesBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isAutomationDeviceStatus = ((ModalRoute.of(context)
?.settings
.arguments as SceneSettingsRouteArguments?)
?.sceneType ==
CreateSceneEnum.deviceStatusChanges.name);
final isAutomationDeviceStatus =
((ModalRoute.of(context)?.settings.arguments as SceneSettingsRouteArguments?)?.sceneType ==
CreateSceneEnum.deviceStatusChanges.name);
return BlocBuilder<TabBarBloc, TabBarState>(
builder: (context, tabState) {
return Column(
@@ -49,8 +46,7 @@ class SceneDevicesBody extends StatelessWidget {
text: e.name ?? '',
textAlign: TextAlign.start,
style: context.bodyLarge.copyWith(
color: (tabState is TabSelected) &&
tabState.roomId == e.id
color: (tabState is TabSelected) && tabState.roomId == e.id
? ColorsManager.textPrimaryColor
: ColorsManager.textPrimaryColor.withOpacity(0.2),
),
@@ -64,10 +60,8 @@ class SceneDevicesBody extends StatelessWidget {
child: TabBarView(
controller: _tabController,
physics: const NeverScrollableScrollPhysics(),
children: rooms!
.map((e) =>
_buildRoomTab(e, context, isAutomationDeviceStatus))
.toList(),
children:
rooms!.map((e) => _buildRoomTab(e, context, isAutomationDeviceStatus)).toList(),
),
),
],
@@ -76,8 +70,7 @@ class SceneDevicesBody extends StatelessWidget {
);
}
Widget _buildRoomTab(
SubSpaceModel room, BuildContext context, bool isAutomationDeviceStatus) {
Widget _buildRoomTab(SubSpaceModel room, BuildContext context, bool isAutomationDeviceStatus) {
return BlocBuilder<DeviceManagerBloc, DeviceManagerState>(
builder: (context, state) {
if (state.loading && state.devices == null) {
@@ -38,8 +38,8 @@ class SceneItem extends StatelessWidget {
onTap: () {
context.read<SmartSceneSelectBloc>().add(const SmartSceneClearEvent());
if (disablePlayButton == false) {
BlocProvider.of<CreateSceneBloc>(context).add(
FetchSceneTasksEvent(sceneId: scene.id, isAutomation: false));
BlocProvider.of<CreateSceneBloc>(context)
.add(FetchSceneTasksEvent(sceneId: scene.id, isAutomation: false));
/// the state to set the scene type must be after the fetch
BlocProvider.of<CreateSceneBloc>(context)
@@ -73,19 +73,16 @@ class SceneItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
if (!disablePlayButton && scene.iconInBytes != null && scene.iconInBytes.isNotEmpty)
if (!disablePlayButton && scene.iconInBytes.isNotEmpty)
Image.memory(
scene.iconInBytes,
height: 32,
width: 32,
fit: BoxFit.fill,
errorBuilder: (context, error, stackTrace) => Image.asset(
Assets.assetsIconsLogo,
height: 32,
width: 32,
fit: BoxFit.fill),
errorBuilder: (context, error, stackTrace) =>
Image.asset(Assets.assetsIconsLogo, height: 32, width: 32, fit: BoxFit.fill),
),
if (disablePlayButton || scene.iconInBytes == null || scene.iconInBytes.isEmpty)
if (disablePlayButton || scene.iconInBytes.isEmpty)
SvgPicture.asset(
Assets.automationIcon,
height: 32,
@@ -96,9 +93,7 @@ class SceneItem extends StatelessWidget {
? IconButton(
padding: EdgeInsets.zero,
onPressed: () {
context
.read<SceneBloc>()
.add(SceneTrigger(scene.id, scene.name));
context.read<SceneBloc>().add(SceneTrigger(scene.id, scene.name));
},
icon: isLoading
? const Center(
@@ -120,15 +115,11 @@ class SceneItem extends StatelessWidget {
activeColor: ColorsManager.primaryColor,
value: scene.status == 'enable' ? true : false,
onChanged: (value) {
context.read<SceneBloc>().add(
UpdateAutomationStatus(
automationStatusUpdate:
AutomationStatusUpdate(
isEnable: value,
spaceUuid: HomeCubit.getInstance()
.selectedSpace!
.id!),
automationId: scene.id));
context.read<SceneBloc>().add(UpdateAutomationStatus(
automationStatusUpdate: AutomationStatusUpdate(
isEnable: value,
spaceUuid: HomeCubit.getInstance().selectedSpace!.id),
automationId: scene.id));
},
),
],