garage door Schedule

This commit is contained in:
mohammad
2024-10-08 10:17:32 +03:00
parent c8e0aa2aa8
commit 4916961d49

View File

@ -18,7 +18,10 @@ class TimerScheduleScreen extends StatelessWidget {
final String deviceCode;
final String switchCode;
const TimerScheduleScreen(
{required this.device, required this.deviceCode, required this.switchCode, super.key});
{required this.device,
required this.deviceCode,
required this.switchCode,
super.key});
@override
Widget build(BuildContext context) {
@ -28,21 +31,11 @@ class TimerScheduleScreen extends StatelessWidget {
statusBarIconBrightness: Brightness.light,
),
child: BlocProvider(
create: (context) => GarageDoorBloc(GDId: device.uuid ?? '')..add(GetScheduleEvent()),
create: (context) =>
GarageDoorBloc(GDId: device.uuid ?? '')..add(GetScheduleEvent()),
child: BlocBuilder<GarageDoorBloc, GarageDoorSensorState>(
builder: (context, state) {
final garageBloc = BlocProvider.of<GarageDoorBloc>(context);
// Duration duration = Duration.zero;
// int countNum = 0;
// if (state is UpdateTimerState) {
// countNum = state.seconds;
// } else if (state is TimerRunInProgress) {
// countNum = state.remainingTime;
// } else if (state is TimerRunComplete) {
// countNum = 0;
// } else if (state is LoadingNewSate) {
// countNum = 0;
// }
return PopScope(
canPop: false,
onPopInvoked: (didPop) {
@ -71,13 +64,15 @@ class TimerScheduleScreen extends StatelessWidget {
child: const Text('Save'))
: IconButton(
onPressed: () {
garageBloc.add(const ToggleCreateScheduleEvent(index: 1));
garageBloc.add(
const ToggleCreateScheduleEvent(
index: 1));
},
icon: const Icon(Icons.add),
)
],
),
child: state is GarageDoorLoading
child: state is GarageDoorLoadingState
? const Center(child: CircularProgressIndicator())
: Column(
children: [
@ -86,7 +81,8 @@ class TimerScheduleScreen extends StatelessWidget {
decoration: const ShapeDecoration(
color: ColorsManager.onPrimaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(30)),
borderRadius:
BorderRadius.all(Radius.circular(30)),
),
),
),
@ -97,25 +93,37 @@ class TimerScheduleScreen extends StatelessWidget {
onToggleChanged: (bool value) {
garageBloc.toggleSchedule = value;
},
onDateTimeChanged: (DateTime dateTime) {
garageBloc.selectedTime = dateTime;
onDateTimeChanged:
(DateTime dateTime) {
garageBloc.selectedTime =
dateTime;
},
days: garageBloc.days,
selectDays: (List<String> selectedDays) {
garageBloc.selectedDays = selectedDays;
selectDays:
(List<String> selectedDays) {
garageBloc.selectedDays =
selectedDays;
},
)
: Padding(
padding: const EdgeInsets.only(top: 10),
padding:
const EdgeInsets.only(top: 10),
child: ScheduleListView(
listSchedule: garageBloc.listSchedule,
listSchedule:
garageBloc.listSchedule,
onDismissed: (scheduleId) {
garageBloc.listSchedule.removeWhere((schedule) =>
schedule.scheduleId == scheduleId);
garageBloc.add(DeleteScheduleEvent(id: scheduleId));
garageBloc.listSchedule
.removeWhere((schedule) =>
schedule.scheduleId ==
scheduleId);
garageBloc.add(
DeleteScheduleEvent(
id: scheduleId));
},
onToggleSchedule: (scheduleId, isEnabled) {
garageBloc.add(ToggleScheduleEvent(
onToggleSchedule:
(scheduleId, isEnabled) {
garageBloc
.add(ToggleScheduleEvent(
id: scheduleId,
toggle: isEnabled,
));