fix the open close states when curtain module

This commit is contained in:
Rafeek-Khoudare
2025-06-29 10:42:18 +03:00
parent 32208c1e81
commit b96f65d2c2
4 changed files with 34 additions and 11 deletions

View File

@ -64,7 +64,7 @@ class CurtainModuleItems extends StatelessWidget with HelperResponsiveLayout {
deviceUuid: deviceId, deviceUuid: deviceId,
category: 'CUR_2', category: 'CUR_2',
code: 'control', code: 'control',
value: 'open',
), ),
)); ));
}, },

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_status.dart';
import 'package:syncrow_web/pages/device_managment/schedule_device/bloc/schedule_bloc.dart'; import 'package:syncrow_web/pages/device_managment/schedule_device/bloc/schedule_bloc.dart';
import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/count_down_button.dart'; import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/count_down_button.dart';
import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/count_down_inching_view.dart'; import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/count_down_inching_view.dart';
@ -9,6 +10,7 @@ import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widg
import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/schedule_mode_buttons.dart'; import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/schedule_mode_buttons.dart';
import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/schedule_mode_selector.dart'; import 'package:syncrow_web/pages/device_managment/schedule_device/schedule_widgets/schedule_mode_selector.dart';
import 'package:syncrow_web/pages/device_managment/water_heater/helper/add_schedule_dialog_helper.dart'; import 'package:syncrow_web/pages/device_managment/water_heater/helper/add_schedule_dialog_helper.dart';
import 'package:syncrow_web/pages/device_managment/water_heater/models/schedule_entry.dart';
import 'package:syncrow_web/pages/device_managment/water_heater/models/water_heater_status_model.dart'; import 'package:syncrow_web/pages/device_managment/water_heater/models/water_heater_status_model.dart';
class BuildScheduleView extends StatelessWidget { class BuildScheduleView extends StatelessWidget {
@ -17,12 +19,10 @@ class BuildScheduleView extends StatelessWidget {
required this.deviceUuid, required this.deviceUuid,
required this.category, required this.category,
this.code, this.code,
this.value,
}); });
final String deviceUuid; final String deviceUuid;
final String category; final String category;
final String? code; final String? code;
final String? value;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -64,15 +64,20 @@ class BuildScheduleView extends StatelessWidget {
final entry = await ScheduleDialogHelper final entry = await ScheduleDialogHelper
.showAddScheduleDialog( .showAddScheduleDialog(
context, context,
schedule: null, schedule: ScheduleEntry(
category: category,
time: '',
function: Status(
code: code.toString(), value: null),
days: [],
),
isEdit: false, isEdit: false,
code: code, code: code,
value: value,
); );
if (entry != null) { if (entry != null) {
context.read<ScheduleBloc>().add( context.read<ScheduleBloc>().add(
ScheduleAddEvent( ScheduleAddEvent(
category: entry.category, category: category,
code: entry.function.code, code: entry.function.code,
time: entry.time, time: entry.time,
functionOn: entry.function.value, functionOn: entry.function.value,

View File

@ -162,11 +162,18 @@ class _ScheduleTableView extends StatelessWidget {
child: GestureDetector( child: GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: () { onTap: () {
bool temp;
if (schedule.category == 'CUR_2') {
temp = schedule.function.value == 'open' ? true : false;
} else {
temp = schedule.function.value as bool;
}
context.read<ScheduleBloc>().add( context.read<ScheduleBloc>().add(
ScheduleUpdateEntryEvent( ScheduleUpdateEntryEvent(
category: schedule.category, category: schedule.category,
scheduleId: schedule.scheduleId, scheduleId: schedule.scheduleId,
functionOn: schedule.function.value, functionOn: temp,
// schedule.function.value,
enable: !schedule.enable, enable: !schedule.enable,
), ),
); );
@ -188,7 +195,10 @@ class _ScheduleTableView extends StatelessWidget {
child: Text(_getSelectedDays( child: Text(_getSelectedDays(
ScheduleModel.parseSelectedDays(schedule.days)))), ScheduleModel.parseSelectedDays(schedule.days)))),
Center(child: Text(formatIsoStringToTime(schedule.time, context))), Center(child: Text(formatIsoStringToTime(schedule.time, context))),
Center(child: Text(schedule.function.value ? 'On' : 'Off')), schedule.category == 'CUR_2'
? Center(
child: Text(schedule.function.value == true ? 'open' : 'close'))
: Center(child: Text(schedule.function.value ? 'On' : 'Off')),
Center( Center(
child: Wrap( child: Wrap(
runAlignment: WrapAlignment.center, runAlignment: WrapAlignment.center,

View File

@ -18,7 +18,6 @@ class ScheduleDialogHelper {
ScheduleEntry? schedule, ScheduleEntry? schedule,
bool isEdit = false, bool isEdit = false,
String? code, String? code,
String? value,
}) { }) {
final initialTime = schedule != null final initialTime = schedule != null
? _convertStringToTimeOfDay(schedule.time) ? _convertStringToTimeOfDay(schedule.time)
@ -117,12 +116,21 @@ class ScheduleDialogHelper {
width: 100, width: 100,
child: ElevatedButton( child: ElevatedButton(
onPressed: () { onPressed: () {
dynamic temp;
if (schedule?.category == 'CUR_2') {
temp = functionOn! ? 'open' : 'close';
} else {
temp = functionOn;
}
print(temp);
final entry = ScheduleEntry( final entry = ScheduleEntry(
category: schedule?.category ?? 'switch_1', category: schedule?.category ?? 'switch_1',
time: _formatTimeOfDayToISO(selectedTime), time: _formatTimeOfDayToISO(selectedTime),
function: Status( function: Status(
code: code ?? 'switch_1', code: code ?? 'switch_1',
value: value ?? functionOn), value: temp,
// functionOn,
),
days: _convertSelectedDaysToStrings(selectedDays), days: _convertSelectedDaysToStrings(selectedDays),
scheduleId: schedule?.scheduleId, scheduleId: schedule?.scheduleId,
); );