diff --git a/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart b/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart index 0259855..18d7b9f 100644 --- a/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart +++ b/lib/features/devices/bloc/smart_door_bloc/smart_door_bloc.dart @@ -147,6 +147,7 @@ class SmartDoorBloc extends Bloc { final TimeOfDay? timePicked = await showTimePicker( context: event.context, initialTime: TimeOfDay.now(), + ); if (timePicked != null) { final selectedDateTime = DateTime( @@ -156,23 +157,28 @@ class SmartDoorBloc extends Bloc { timePicked.hour, timePicked.minute, ); + // Convert selectedDateTime to a timestamp without seconds and milliseconds + final selectedTimestamp = DateTime( + selectedDateTime.year, + selectedDateTime.month, + selectedDateTime.day, + selectedDateTime.hour, + selectedDateTime.minute, + ).millisecondsSinceEpoch ~/ 1000; // Divide by 1000 to remove milliseconds if (event.isEffective) { if (expirationTimeTimeStamp != null && - selectedDateTime.millisecondsSinceEpoch > - expirationTimeTimeStamp!) { + selectedTimestamp > expirationTimeTimeStamp!) { CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.'); } else { - effectiveTime = selectedDateTime.toString(); - effectiveTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch; + effectiveTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds + effectiveTimeTimeStamp = selectedTimestamp; } } else { - if (effectiveTimeTimeStamp != null && - selectedDateTime.millisecondsSinceEpoch < - effectiveTimeTimeStamp!) { + if (effectiveTimeTimeStamp != null && selectedTimestamp < effectiveTimeTimeStamp!) { CustomSnackBar.displaySnackBar('Expiration Time cannot be earlier than Effective Time.'); } else { - expirationTime = selectedDateTime.toString(); - expirationTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch; + expirationTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds + expirationTimeTimeStamp = selectedTimestamp; } } emit(TimeSelectedState()); diff --git a/lib/features/devices/view/widgets/smart_door/create_temporary_password.dart b/lib/features/devices/view/widgets/smart_door/create_temporary_password.dart index fd2af90..d3628cf 100644 --- a/lib/features/devices/view/widgets/smart_door/create_temporary_password.dart +++ b/lib/features/devices/view/widgets/smart_door/create_temporary_password.dart @@ -146,11 +146,10 @@ class CreateTemporaryPassword extends StatelessWidget { child: TextFormField( controller: BlocProvider.of(context).passwordNameController, - decoration: const InputDecoration( - labelText: 'Enter The Name'), + decoration: const InputDecoration(hintText: 'Enter The Name'), )), ), - const Divider(color:Color(0xffEBEBEB),), + const Divider(color:ColorsManager.graysColor,), ListTile( contentPadding: EdgeInsets.zero, leading: const BodyMedium( @@ -169,7 +168,7 @@ class CreateTemporaryPassword extends StatelessWidget { ), )), ), - const Divider(color:Color(0xffEBEBEB),), + const Divider(color:ColorsManager.graysColor,), ListTile( contentPadding: EdgeInsets.zero, leading: const BodyMedium( @@ -183,9 +182,6 @@ class CreateTemporaryPassword extends StatelessWidget { child: InkWell( onTap: () { BlocProvider.of(context)..add(SelectTimeEvent(context: context, isEffective: false)); - // BlocProvider.of(context) - // .selectTime(context, - // isEffective: false); }, child: Text( BlocProvider.of(context) @@ -239,60 +235,56 @@ class CreateTemporaryPassword extends StatelessWidget { onTap: () { BlocProvider.of(context).add(const SetStartEndTimeEvent(val: true)); }, - child: BodyMedium(text: 'Start',fontColor:BlocProvider.of(context).isStartEndTime==false? Colors.black:Colors.blue,fontSize: 18,), + child: BodyMedium(text: 'Start', + fontColor: BlocProvider.of(context).isStartEndTime==false? + Colors.black:Colors.blue,fontSize: 18,), ), - InkWell( onTap: () { BlocProvider.of(context).add(const SetStartEndTimeEvent(val: false)); - - }, - child: BodyMedium(text: 'End',fontColor:BlocProvider.of(context).isStartEndTime? Colors.black:Colors.blue,fontSize: 18,), + }, + child:BodyMedium(text: 'End', + fontColor:BlocProvider.of(context).isStartEndTime? + Colors.black:Colors.blue,fontSize: 18,), ) ], ), ), - const Divider(color:Color(0xffEBEBEB),), + const Divider(color:ColorsManager.graysColor,), Container( - height: 80, - child: - Container( - height: 90, - child:BlocProvider.of(context).isStartEndTime? TimePickerSpinner( - time: - BlocProvider.of(context).startTime, + height: 110, + child:BlocProvider.of(context).isStartEndTime? + TimePickerSpinner( + time: BlocProvider.of(context).startTime, + is24HourMode: false, + itemHeight: 40, + normalTextStyle: const TextStyle( + color: Colors.grey, + fontSize: 24, + ), + highlightedTextStyle: const TextStyle( + fontSize: 30, color: Colors.blue), + onTimeChange: (time) { + BlocProvider.of(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of(context).isStartEndTime)); + }, + ): Container( + child: TimePickerSpinner( + time: BlocProvider.of(context).endTime, is24HourMode: false, itemHeight: 40, normalTextStyle: const TextStyle( + color: Colors.grey, fontSize: 24, ), highlightedTextStyle: const TextStyle( fontSize: 30, color: Colors.blue), onTimeChange: (time) { - - // BlocProvider.of(context).changeTime(time, BlocProvider.of(context).isStartEndTime); BlocProvider.of(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of(context).isStartEndTime)); - }, - ): Container( - child: TimePickerSpinner( - time: BlocProvider.of(context).endTime, - is24HourMode: false, - itemHeight: 40, - normalTextStyle: const TextStyle( - fontSize: 24, - ), - highlightedTextStyle: const TextStyle( - fontSize: 30, color: Colors.blue), - onTimeChange: (time) { - BlocProvider.of(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of(context).isStartEndTime)); - - // BlocProvider.of(context).changeTime(time, BlocProvider.of(context).isStartEndTime); - }, - ), + }, ), - ) + ), ), - const Divider(color:Color(0xffEBEBEB),), + const Divider(color:ColorsManager.graysColor,), const SizedBox(height: 20), SelectWeekDays( width: MediaQuery.of(context).size.width / 1, diff --git a/lib/features/devices/view/widgets/smart_door/temporary_password_page.dart b/lib/features/devices/view/widgets/smart_door/temporary_password_page.dart index ae9ad6b..3b9718f 100644 --- a/lib/features/devices/view/widgets/smart_door/temporary_password_page.dart +++ b/lib/features/devices/view/widgets/smart_door/temporary_password_page.dart @@ -96,7 +96,7 @@ class TemporaryPasswordPage extends StatelessWidget { ), ), - const Divider( ), + const Divider(color:ColorsManager.graysColor,), ListTile( contentPadding: EdgeInsets.zero, leading: SvgPicture.asset( diff --git a/lib/utils/resource_manager/color_manager.dart b/lib/utils/resource_manager/color_manager.dart index 7815e27..3e16f78 100644 --- a/lib/utils/resource_manager/color_manager.dart +++ b/lib/utils/resource_manager/color_manager.dart @@ -22,4 +22,5 @@ abstract class ColorsManager { static const Color blackColor = Color(0xFF000000); static const Color lightGreen = Color(0xFF00FF0A); static const Color grayColor = Color(0xFF999999); + static const Color graysColor = Color(0xffEBEBEB); }