fixes bugs and re add checkboxes theme

This commit is contained in:
ashrafzarkanisala
2024-08-29 12:55:37 +03:00
parent 5f8957c9c1
commit 95b1e2c932
15 changed files with 133 additions and 45 deletions

View File

@ -10,6 +10,7 @@ class CeilingSensorModel {
String bodyMovement;
String noBodyTime;
int maxDistance;
String spaceType;
CeilingSensorModel({
required this.presenceState,
@ -20,6 +21,7 @@ class CeilingSensorModel {
required this.bodyMovement,
required this.noBodyTime,
required this.maxDistance,
required this.spaceType,
});
factory CeilingSensorModel.fromJson(List<Status> jsonList) {
@ -31,6 +33,7 @@ class CeilingSensorModel {
String _bodyMovement = 'none';
String _noBodyTime = 'none';
int _maxDis = 0;
String _spaceType = 'none';
try {
for (var status in jsonList) {
@ -38,17 +41,26 @@ class CeilingSensorModel {
case 'presence_state':
_presenceState = status.value ?? 'none';
break;
case 'scene':
_spaceType = status.value ?? 'none';
break;
case 'sensitivity':
_sensitivity = status.value is int ? status.value : int.tryParse(status.value ?? '1') ?? 1;
_sensitivity = status.value is int
? status.value
: int.tryParse(status.value ?? '1') ?? 1;
break;
case 'checking_result':
_checkingResult = status.value ?? '';
break;
case 'presence_range':
_presenceRange = status.value is int ? status.value : int.tryParse(status.value ?? '0') ?? 0;
_presenceRange = status.value is int
? status.value
: int.tryParse(status.value ?? '0') ?? 0;
break;
case 'sports_para':
_sportsPara = status.value is int ? status.value : int.tryParse(status.value ?? '0') ?? 0;
_sportsPara = status.value is int
? status.value
: int.tryParse(status.value ?? '0') ?? 0;
break;
case 'body_movement':
_bodyMovement = status.value ?? '';
@ -57,7 +69,9 @@ class CeilingSensorModel {
_noBodyTime = status.value ?? 'none';
break;
case 'moving_max_dis':
_maxDis = status.value is int ? status.value : int.tryParse(status.value ?? '0') ?? 0;
_maxDis = status.value is int
? status.value
: int.tryParse(status.value ?? '0') ?? 0;
break;
}
}
@ -74,6 +88,7 @@ class CeilingSensorModel {
bodyMovement: _bodyMovement,
noBodyTime: _noBodyTime,
maxDistance: _maxDis,
spaceType: _spaceType,
);
}
}

View File

@ -24,6 +24,7 @@ class CeilingSensorControls extends StatelessWidget
@override
Widget build(BuildContext context) {
final isExtraLarge = isExtraLargeScreenSize(context);
final isLarge = isLargeScreenSize(context);
final isMedium = isMediumScreenSize(context);
return BlocProvider(
@ -35,8 +36,8 @@ class CeilingSensorControls extends StatelessWidget
state is CeilingReportsLoadingState) {
return const Center(child: CircularProgressIndicator());
} else if (state is CeilingUpdateState) {
return _buildGridView(
context, state.ceilingSensorModel, isLarge, isMedium);
return _buildGridView(context, state.ceilingSensorModel,
isExtraLarge, isLarge, isMedium);
} else if (state is CeilingReportsState) {
return ReportsTable(
report: state.deviceReport,
@ -58,7 +59,8 @@ class CeilingSensorControls extends StatelessWidget
);
} else if (state is CeilingReportsFailedState) {
final model = context.read<CeilingSensorBloc>().deviceStatus;
return _buildGridView(context, model, isLarge, isMedium);
return _buildGridView(
context, model, isExtraLarge, isLarge, isMedium);
}
return const Center(child: Text('Error fetching status'));
},
@ -67,13 +69,13 @@ class CeilingSensorControls extends StatelessWidget
}
Widget _buildGridView(BuildContext context, CeilingSensorModel model,
bool isLarge, bool isMedium) {
bool isExtraLarge, bool isLarge, bool isMedium) {
return GridView(
padding: const EdgeInsets.symmetric(horizontal: 50),
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: isLarge
crossAxisCount: isLarge || isExtraLarge
? 3
: isMedium
? 2
@ -96,8 +98,8 @@ class CeilingSensorControls extends StatelessWidget
postfix: 'm',
description: 'Detection Range',
),
const PresenceSpaceType(
listOfIcons: [
PresenceSpaceType(
listOfIcons: const [
Assets.office,
Assets.parlour,
Assets.dyi,
@ -105,6 +107,7 @@ class CeilingSensorControls extends StatelessWidget
Assets.bedroom,
],
description: 'Space Type',
value: model.spaceType,
),
PresenceUpdateData(
value: model.sensitivity.toDouble(),
@ -138,7 +141,7 @@ class CeilingSensorControls extends StatelessWidget
PresenceNoBodyTime(
value: model.noBodyTime,
title: 'Nobody Time:',
// description: 'hr',
description: '',
action: (String value) => context.read<CeilingSensorBloc>().add(
CeilingChangeValueEvent(
code: 'nobody_time',