diff --git a/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart b/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart index da4048e..6cc0515 100644 --- a/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart +++ b/lib/features/devices/bloc/water_heater_bloc/water_heater_bloc.dart @@ -11,6 +11,7 @@ import 'package:syncrow_app/features/devices/model/status_model.dart'; import 'package:syncrow_app/features/devices/model/water_heater.dart'; import 'package:syncrow_app/services/api/devices_api.dart'; import 'package:syncrow_app/utils/helpers/snack_bar.dart'; +import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class WaterHeaterBloc extends Bloc { final String whId; @@ -48,6 +49,7 @@ class WaterHeaterBloc extends Bloc { on(deleteSchedule); on(_onTickTimer); on(_onClose); + on(showTime); } void _fetchWaterHeaterStatus(WaterHeaterInitial event, Emitter emit) async { @@ -309,26 +311,26 @@ class WaterHeaterBloc extends Bloc { emit(ChangeSlidingSegmentState(value: selectedTabIndex)); } - // showTime(){ - // final TimeOfDay? timePicked = await showTimePicker( - // context: event.context, - // initialTime: TimeOfDay.now(), - // builder: (context, child) { - // return Theme( - // data: ThemeData.light().copyWith( - // colorScheme: const ColorScheme.light( - // primary: ColorsManager.primaryColor, - // onSurface: Colors.black, - // ), - // buttonTheme: const ButtonThemeData( - // colorScheme: ColorScheme.light( - // primary: Colors.green, - // ), - // ), - // ), - // child: child!, - // ); - // }, - // ); - // } + showTime(SelectTimeEvent event, Emitter emit) async { + final TimeOfDay? timePicked = await showTimePicker( + context: event.context, + initialTime: TimeOfDay.now(), + builder: (context, child) { + return Theme( + data: ThemeData.light().copyWith( + colorScheme: const ColorScheme.light( + primary: ColorsManager.primaryColor, + onSurface: Colors.black, + ), + buttonTheme: const ButtonThemeData( + colorScheme: ColorScheme.light( + primary: Colors.green, + ), + ), + ), + child: child!, + ); + }, + ); + } } diff --git a/lib/features/devices/bloc/water_heater_bloc/water_heater_event.dart b/lib/features/devices/bloc/water_heater_bloc/water_heater_event.dart index c19c04e..67524f6 100644 --- a/lib/features/devices/bloc/water_heater_bloc/water_heater_event.dart +++ b/lib/features/devices/bloc/water_heater_bloc/water_heater_event.dart @@ -1,4 +1,5 @@ import 'package:equatable/equatable.dart'; +import 'package:flutter/material.dart'; import 'package:syncrow_app/utils/resource_manager/constants.dart'; abstract class WaterHeaterEvent extends Equatable { @@ -91,3 +92,11 @@ class DeleteScheduleEvent extends WaterHeaterEvent { @override List get props => [id]; } + +class SelectTimeEvent extends WaterHeaterEvent { + final BuildContext context; + final bool isEffective; + const SelectTimeEvent({required this.context, required this.isEffective}); + @override + List get props => [context, isEffective]; +} \ No newline at end of file diff --git a/lib/features/devices/view/widgets/water_heater/circulate_widget.dart b/lib/features/devices/view/widgets/water_heater/circulate_widget.dart index d93f24b..78a00b1 100644 --- a/lib/features/devices/view/widgets/water_heater/circulate_widget.dart +++ b/lib/features/devices/view/widgets/water_heater/circulate_widget.dart @@ -18,7 +18,8 @@ class CirculateWidget extends StatelessWidget { final Function(bool) onToggleStartEndTime; final Function(DateTime, bool) onTimeChanged; final Function(String) onDaySelected; - + final Function()? endDuration; + final Function()? startDuration; const CirculateWidget({ Key? key, required this.isStartEndTime, @@ -29,6 +30,8 @@ class CirculateWidget extends StatelessWidget { required this.onToggleStartEndTime, required this.onTimeChanged, required this.onDaySelected, + required this.endDuration, + required this.startDuration, }) : super(key: key); @override @@ -130,9 +133,7 @@ class CirculateWidget extends StatelessWidget { Column( children: [ InkWell( - onTap: () { - - }, + onTap: startDuration, child: const Padding( padding: EdgeInsets.all(8.0), child: Row( @@ -150,9 +151,7 @@ class CirculateWidget extends StatelessWidget { ), const Divider(color: ColorsManager.graysColor,), InkWell( - onTap: () { - - }, + onTap: endDuration, child: const Padding( padding: EdgeInsets.all(8.0), child: Row( diff --git a/lib/features/devices/view/widgets/water_heater/wh_timer_schedule_screen.dart b/lib/features/devices/view/widgets/water_heater/wh_timer_schedule_screen.dart index 29ac828..674509b 100644 --- a/lib/features/devices/view/widgets/water_heater/wh_timer_schedule_screen.dart +++ b/lib/features/devices/view/widgets/water_heater/wh_timer_schedule_screen.dart @@ -364,13 +364,21 @@ class WHTimerScheduleScreen extends StatelessWidget { waterHeaterBloc.createCirculate == true ? CirculateWidget( + endDuration: () { + waterHeaterBloc.add(SelectTimeEvent(context: context, isEffective: false)); + }, + startDuration: () { + waterHeaterBloc.add(SelectTimeEvent(context: context, isEffective: false)); + + }, isStartEndTime: true, startTime: DateTime.now(), endTime: DateTime.now(), days: waterHeaterBloc.days, selectedDays: [], onToggleStartEndTime: (c) {}, - onTimeChanged: (x, f) {}, + onTimeChanged: (x, f) { + }, onDaySelected: (p0) {}, ):CirculateListView( listSchedule: waterHeaterBloc.listSchedule, // Pass the schedule list here