fix bugs on create password

This commit is contained in:
mohammad
2024-06-30 23:04:28 +03:00
parent 288ea6a1e2
commit 0fa6693c6c
4 changed files with 50 additions and 51 deletions

View File

@ -147,6 +147,7 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
final TimeOfDay? timePicked = await showTimePicker( final TimeOfDay? timePicked = await showTimePicker(
context: event.context, context: event.context,
initialTime: TimeOfDay.now(), initialTime: TimeOfDay.now(),
); );
if (timePicked != null) { if (timePicked != null) {
final selectedDateTime = DateTime( final selectedDateTime = DateTime(
@ -156,23 +157,28 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
timePicked.hour, timePicked.hour,
timePicked.minute, 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 (event.isEffective) {
if (expirationTimeTimeStamp != null && if (expirationTimeTimeStamp != null &&
selectedDateTime.millisecondsSinceEpoch > selectedTimestamp > expirationTimeTimeStamp!) {
expirationTimeTimeStamp!) {
CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.'); CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.');
} else { } else {
effectiveTime = selectedDateTime.toString(); effectiveTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds
effectiveTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch; effectiveTimeTimeStamp = selectedTimestamp;
} }
} else { } else {
if (effectiveTimeTimeStamp != null && if (effectiveTimeTimeStamp != null && selectedTimestamp < effectiveTimeTimeStamp!) {
selectedDateTime.millisecondsSinceEpoch <
effectiveTimeTimeStamp!) {
CustomSnackBar.displaySnackBar('Expiration Time cannot be earlier than Effective Time.'); CustomSnackBar.displaySnackBar('Expiration Time cannot be earlier than Effective Time.');
} else { } else {
expirationTime = selectedDateTime.toString(); expirationTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds
expirationTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch; expirationTimeTimeStamp = selectedTimestamp;
} }
} }
emit(TimeSelectedState()); emit(TimeSelectedState());

View File

@ -146,11 +146,10 @@ class CreateTemporaryPassword extends StatelessWidget {
child: TextFormField( child: TextFormField(
controller: controller:
BlocProvider.of<SmartDoorBloc>(context).passwordNameController, BlocProvider.of<SmartDoorBloc>(context).passwordNameController,
decoration: const InputDecoration( decoration: const InputDecoration(hintText: 'Enter The Name'),
labelText: 'Enter The Name'),
)), )),
), ),
const Divider(color:Color(0xffEBEBEB),), const Divider(color:ColorsManager.graysColor,),
ListTile( ListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
leading: const BodyMedium( leading: const BodyMedium(
@ -169,7 +168,7 @@ class CreateTemporaryPassword extends StatelessWidget {
), ),
)), )),
), ),
const Divider(color:Color(0xffEBEBEB),), const Divider(color:ColorsManager.graysColor,),
ListTile( ListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
leading: const BodyMedium( leading: const BodyMedium(
@ -183,9 +182,6 @@ class CreateTemporaryPassword extends StatelessWidget {
child: InkWell( child: InkWell(
onTap: () { onTap: () {
BlocProvider.of<SmartDoorBloc>(context)..add(SelectTimeEvent(context: context, isEffective: false)); BlocProvider.of<SmartDoorBloc>(context)..add(SelectTimeEvent(context: context, isEffective: false));
// BlocProvider.of<SmartDoorBloc>(context)
// .selectTime(context,
// isEffective: false);
}, },
child: Text( child: Text(
BlocProvider.of<SmartDoorBloc>(context) BlocProvider.of<SmartDoorBloc>(context)
@ -239,38 +235,36 @@ class CreateTemporaryPassword extends StatelessWidget {
onTap: () { onTap: () {
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: true)); BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: true));
}, },
child: BodyMedium(text: 'Start',fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime==false? Colors.black:Colors.blue,fontSize: 18,), child: BodyMedium(text: 'Start',
fontColor: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime==false?
Colors.black:Colors.blue,fontSize: 18,),
), ),
InkWell( InkWell(
onTap: () { onTap: () {
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: false)); BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: false));
}, },
child: BodyMedium(text: 'End',fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime? Colors.black:Colors.blue,fontSize: 18,), child:BodyMedium(text: 'End',
fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime?
Colors.black:Colors.blue,fontSize: 18,),
) )
], ],
), ),
), ),
const Divider(color:Color(0xffEBEBEB),), const Divider(color:ColorsManager.graysColor,),
Container( Container(
height: 80, height: 110,
child: child:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime?
Container( TimePickerSpinner(
height: 90, time: BlocProvider.of<SmartDoorBloc>(context).startTime,
child:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime? TimePickerSpinner(
time:
BlocProvider.of<SmartDoorBloc>(context).startTime,
is24HourMode: false, is24HourMode: false,
itemHeight: 40, itemHeight: 40,
normalTextStyle: const TextStyle( normalTextStyle: const TextStyle(
color: Colors.grey,
fontSize: 24, fontSize: 24,
), ),
highlightedTextStyle: const TextStyle( highlightedTextStyle: const TextStyle(
fontSize: 30, color: Colors.blue), fontSize: 30, color: Colors.blue),
onTimeChange: (time) { onTimeChange: (time) {
// BlocProvider.of<SmartDoorBloc>(context).changeTime(time, BlocProvider.of<SmartDoorBloc>(context).isStartEndTime);
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime)); BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
}, },
): Container( ): Container(
@ -279,20 +273,18 @@ class CreateTemporaryPassword extends StatelessWidget {
is24HourMode: false, is24HourMode: false,
itemHeight: 40, itemHeight: 40,
normalTextStyle: const TextStyle( normalTextStyle: const TextStyle(
color: Colors.grey,
fontSize: 24, fontSize: 24,
), ),
highlightedTextStyle: const TextStyle( highlightedTextStyle: const TextStyle(
fontSize: 30, color: Colors.blue), fontSize: 30, color: Colors.blue),
onTimeChange: (time) { onTimeChange: (time) {
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime)); BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
// BlocProvider.of<SmartDoorBloc>(context).changeTime(time, BlocProvider.of<SmartDoorBloc>(context).isStartEndTime);
}, },
), ),
), ),
)
), ),
const Divider(color:Color(0xffEBEBEB),), const Divider(color:ColorsManager.graysColor,),
const SizedBox(height: 20), const SizedBox(height: 20),
SelectWeekDays( SelectWeekDays(
width: MediaQuery.of(context).size.width / 1, width: MediaQuery.of(context).size.width / 1,

View File

@ -96,7 +96,7 @@ class TemporaryPasswordPage extends StatelessWidget {
), ),
), ),
const Divider( ), const Divider(color:ColorsManager.graysColor,),
ListTile( ListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
leading: SvgPicture.asset( leading: SvgPicture.asset(

View File

@ -22,4 +22,5 @@ abstract class ColorsManager {
static const Color blackColor = Color(0xFF000000); static const Color blackColor = Color(0xFF000000);
static const Color lightGreen = Color(0xFF00FF0A); static const Color lightGreen = Color(0xFF00FF0A);
static const Color grayColor = Color(0xFF999999); static const Color grayColor = Color(0xFF999999);
static const Color graysColor = Color(0xffEBEBEB);
} }