mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2026-03-10 20:41:45 +00:00
garage door Schedule
This commit is contained in:
@ -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,
|
||||
));
|
||||
|
||||
Reference in New Issue
Block a user