mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-11-26 18:24:54 +00:00
Bug fixes in the doorlock real time
This commit is contained in:
@ -54,6 +54,7 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
|
|||||||
bool isStartEndTime = true;
|
bool isStartEndTime = true;
|
||||||
DateTime? startTime;
|
DateTime? startTime;
|
||||||
DateTime? endTime;
|
DateTime? endTime;
|
||||||
|
int unlockRequest = 0;
|
||||||
List<TemporaryPassword>? temporaryPasswords = [];
|
List<TemporaryPassword>? temporaryPasswords = [];
|
||||||
List<OfflinePasswordModel>? oneTimePasswords = [];
|
List<OfflinePasswordModel>? oneTimePasswords = [];
|
||||||
List<OfflinePasswordModel>? timeLimitPasswords = [];
|
List<OfflinePasswordModel>? timeLimitPasswords = [];
|
||||||
@ -128,6 +129,7 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_doorLockUpdated(DoorLockUpdated event, Emitter<SmartDoorState> emit) {
|
_doorLockUpdated(DoorLockUpdated event, Emitter<SmartDoorState> emit) {
|
||||||
|
unlockRequest = deviceStatus.unlockRequest;
|
||||||
emit(UpdateState(smartDoorModel: deviceStatus));
|
emit(UpdateState(smartDoorModel: deviceStatus));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,47 +31,36 @@ class _DoorLockButtonState extends State<DoorLockButton> with SingleTickerProvid
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
_animationController = AnimationController(
|
_animationController = AnimationController(
|
||||||
vsync: this,
|
vsync: this,
|
||||||
value: smartDoorModel.unlockRequest > 0 ? 1 : 0,
|
value: context.read<SmartDoorBloc>().unlockRequest > 0 ? 1 : 0,
|
||||||
duration: Duration(seconds: smartDoorModel.unlockRequest),
|
duration: Duration(seconds: context.read<SmartDoorBloc>().unlockRequest),
|
||||||
);
|
);
|
||||||
if (smartDoorModel.unlockRequest > 0) {
|
if (context.read<SmartDoorBloc>().unlockRequest > 0) {
|
||||||
_animationController.reverse();
|
_animationController.reverse();
|
||||||
}
|
}
|
||||||
|
|
||||||
_animation = Tween<double>(begin: 0, end: 1).animate(_animationController)
|
_animation = Tween<double>(begin: 0, end: 1).animate(_animationController)
|
||||||
..addListener(() {
|
..addListener(() {
|
||||||
// if (_animation.status == AnimationStatus.completed) {
|
|
||||||
// if (widget.doorLock.status
|
|
||||||
// .firstWhere((element) => element.code == 'normal_open_switch')
|
|
||||||
// .value !=
|
|
||||||
// true) {
|
|
||||||
// DevicesCubit.getInstance().deviceControl(
|
|
||||||
// DeviceControlModel(
|
|
||||||
// deviceId: widget.doorLock.uuid, code: 'normal_open_switch', value: true),
|
|
||||||
// widget.doorLock.uuid ?? "");
|
|
||||||
// }
|
|
||||||
// BlocProvider.of<SmartDoorBloc>(context)
|
|
||||||
// .add(UpdateLockEvent(value: smartDoorModel.normalOpenSwitch));
|
|
||||||
// _animationController.reverse();
|
|
||||||
// }
|
|
||||||
// } else if (_animation.status == AnimationStatus.dismissed) {
|
|
||||||
// // if (widget.doorLock.status
|
|
||||||
// // .firstWhere((element) => element.code == 'normal_open_switch')
|
|
||||||
// // .value !=
|
|
||||||
// // false) {
|
|
||||||
// DevicesCubit.getInstance().deviceControl(
|
|
||||||
// DeviceControlModel(
|
|
||||||
// deviceId: widget.doorLock.uuid, code: 'normal_open_switch', value: false),
|
|
||||||
// widget.doorLock.uuid ?? "");
|
|
||||||
// // }
|
|
||||||
// _animationController.forward();
|
|
||||||
// }
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(DoorLockButton oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (_animationController.status == AnimationStatus.dismissed) {
|
||||||
|
if (context.read<SmartDoorBloc>().unlockRequest > 0) {
|
||||||
|
_animationController.value = 1;
|
||||||
|
_animationController.duration =
|
||||||
|
Duration(seconds: context.read<SmartDoorBloc>().unlockRequest);
|
||||||
|
_animationController.reverse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_animationController.dispose();
|
_animationController.dispose();
|
||||||
@ -100,7 +89,7 @@ class _DoorLockButtonState extends State<DoorLockButton> with SingleTickerProvid
|
|||||||
// } else if (_animationController.status == AnimationStatus.reverse) {
|
// } else if (_animationController.status == AnimationStatus.reverse) {
|
||||||
// _animationController.forward();
|
// _animationController.forward();
|
||||||
// }
|
// }
|
||||||
if (smartDoorModel.unlockRequest > 0) {
|
if (context.read<SmartDoorBloc>().unlockRequest > 0) {
|
||||||
BlocProvider.of<SmartDoorBloc>(context)
|
BlocProvider.of<SmartDoorBloc>(context)
|
||||||
.add(UpdateLockEvent(value: smartDoorModel.normalOpenSwitch));
|
.add(UpdateLockEvent(value: smartDoorModel.normalOpenSwitch));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user