mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2026-10-26 04:17:55 +00:00
Bug fixes
This commit is contained in:
@@ -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));
|
||||
},
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user