feat:新增首次配锁后,静止开锁页面 2 秒防止锁设备未修改完成状态

This commit is contained in:
anfe 2024-05-23 18:38:02 +08:00
parent a097f882e2
commit a937d0a68b

View File

@ -8,7 +8,9 @@ import 'package:get/get.dart';
import 'package:star_lock/blue/io_protocol/io_changeAdministratorPassword.dart'; import 'package:star_lock/blue/io_protocol/io_changeAdministratorPassword.dart';
import 'package:star_lock/blue/io_protocol/io_senderCustomPasswords.dart'; import 'package:star_lock/blue/io_protocol/io_senderCustomPasswords.dart';
import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/blue/io_type.dart';
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_logic.dart';
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
import 'package:star_lock/mine/addLock/saveLock/entity/SaveLockEntity.dart';
import 'package:star_lock/tools/commonDataManage.dart'; import 'package:star_lock/tools/commonDataManage.dart';
import '../../../app_settings/app_settings.dart'; import '../../../app_settings/app_settings.dart';
@ -33,7 +35,7 @@ class SaveLockLogic extends BaseGetXController {
void _initReplySubscription() { void _initReplySubscription() {
_replySubscription = _replySubscription =
EventBusManager().eventBus!.on<Reply>().listen((reply) { EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
if (reply is AddUserReply && state.ifCurrentScreen.value == true) { if (reply is AddUserReply && state.ifCurrentScreen.value == true) {
_replyAddUserKey(reply); _replyAddUserKey(reply);
} }
@ -50,16 +52,16 @@ class SaveLockLogic extends BaseGetXController {
// //
Future<void> _replyAddUserKey(Reply reply) async { Future<void> _replyAddUserKey(Reply reply) async {
var token = reply.data.sublist(42, 46); final List<int> token = reply.data.sublist(42, 46);
List<String> strTokenList = changeIntListToStringList(token); final List<String> strTokenList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, strTokenList); Storage.setStringList(saveBlueToken, strTokenList);
int status = reply.data[46]; final int status = reply.data[46];
switch (status) { switch (status) {
case 0x00: case 0x00:
// //
state.lockUserNo = listChangInt(reply.data.sublist(47, 49)); state.lockUserNo = listChangInt(reply.data.sublist(47, 49));
AppLog.log("state.lockUserNo:${state.lockUserNo}"); AppLog.log('state.lockUserNo:${state.lockUserNo}');
// //
cancelBlueConnetctToastTimer(); cancelBlueConnetctToastTimer();
@ -67,16 +69,20 @@ class SaveLockLogic extends BaseGetXController {
break; break;
case 0x06: case 0x06:
// //
var privateKey = await Storage.getStringList(saveBluePrivateKey); final List<String>? privateKey =
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!); await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList =
changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey); final List<String>? publicKey =
List<int> publicKeyDataList = changeStringListToIntList(publicKey!); await Storage.getStringList(saveBluePublicKey);
final List<int> publicKeyDataList =
changeStringListToIntList(publicKey!);
IoSenderManage.senderAddUser( IoSenderManage.senderAddUser(
lockID: BlueManage().connectDeviceName, lockID: BlueManage().connectDeviceName,
authUserID: await Storage.getUid(), authUserID: await Storage.getUid(),
keyID: "1", keyID: '1',
userID: await Storage.getUid(), userID: await Storage.getUid(),
openMode: 1, openMode: 1,
keyType: 1, keyType: 1,
@ -216,21 +222,25 @@ class SaveLockLogic extends BaseGetXController {
(BluetoothConnectionState deviceConnectionState) async { (BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) { if (deviceConnectionState == BluetoothConnectionState.connected) {
// //
var privateKey = await Storage.getStringList(saveBluePrivateKey); final List<String>? privateKey =
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!); await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList =
changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey); final List<String>? publicKey =
List<int> publicKeyDataList = changeStringListToIntList(publicKey!); await Storage.getStringList(saveBluePublicKey);
final List<int> publicKeyDataList =
changeStringListToIntList(publicKey!);
var token = await Storage.getStringList(saveBlueToken); final List<String>? token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = [0, 0, 0, 0]; List<int> getTokenList = <int>[0, 0, 0, 0];
if (token != null) { if (token != null) {
getTokenList = changeStringListToIntList(token); getTokenList = changeStringListToIntList(token);
} }
IoSenderManage.senderAddUser( IoSenderManage.senderAddUser(
lockID: BlueManage().connectDeviceName, lockID: BlueManage().connectDeviceName,
authUserID: await Storage.getUid(), authUserID: await Storage.getUid(),
keyID: "1", keyID: '1',
userID: await Storage.getUid(), userID: await Storage.getUid(),
openMode: 1, openMode: 1,
keyType: 1, keyType: 1,
@ -356,35 +366,37 @@ class SaveLockLogic extends BaseGetXController {
// } // }
void bindBlueAdmin() async { void bindBlueAdmin() async {
state.lockInfo["adminPwd"] = state.adminPassword; state.lockInfo['adminPwd'] = state.adminPassword;
var positionMap = {}; final Map<String, dynamic> positionMap = <String, dynamic>{};
positionMap['longitude'] = state.addressInfo["longitude"]; positionMap['longitude'] = state.addressInfo['longitude'];
positionMap['latitude'] = state.addressInfo["latitude"]; positionMap['latitude'] = state.addressInfo['latitude'];
positionMap['country'] = state.addressInfo["country"]; positionMap['country'] = state.addressInfo['country'];
positionMap['province'] = state.addressInfo["province"]; positionMap['province'] = state.addressInfo['province'];
positionMap['city'] = state.addressInfo["city"]; positionMap['city'] = state.addressInfo['city'];
positionMap['district'] = state.addressInfo["district"]; positionMap['district'] = state.addressInfo['district'];
positionMap['township'] = state.addressInfo["street"]; positionMap['township'] = state.addressInfo['street'];
positionMap['address'] = state.addressInfo["address"]; positionMap['address'] = state.addressInfo['address'];
var bluetooth = {}; final Map<String, dynamic> bluetooth = <String, dynamic>{};
bluetooth['bluetoothDeviceId'] = BlueManage().connectDeviceMacAddress; bluetooth['bluetoothDeviceId'] = BlueManage().connectDeviceMacAddress;
bluetooth['bluetoothDeviceName'] = BlueManage().connectDeviceName; bluetooth['bluetoothDeviceName'] = BlueManage().connectDeviceName;
var publicKey = await Storage.getStringList(saveBluePublicKey); final List<String>? publicKey =
List<int> publicKeyDataList = changeStringListToIntList(publicKey!); await Storage.getStringList(saveBluePublicKey);
final List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
bluetooth['publicKey'] = publicKeyDataList; bluetooth['publicKey'] = publicKeyDataList;
var privateKey = await Storage.getStringList(saveBluePrivateKey); final List<String>? privateKey =
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!); await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
bluetooth['privateKey'] = getPrivateKeyList; bluetooth['privateKey'] = getPrivateKeyList;
var signKey = await Storage.getStringList(saveBlueSignKey); final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!); final List<int> signKeyDataList = changeStringListToIntList(signKey!);
bluetooth['signKey'] = signKeyDataList; bluetooth['signKey'] = signKeyDataList;
var entity = await ApiRepository.to.bindingBlueAdmin( final SaveLockEntity entity = await ApiRepository.to.bindingBlueAdmin(
lockAlias: state.aliName.value, lockAlias: state.aliName.value,
position: positionMap, position: positionMap,
bluetooth: bluetooth, bluetooth: bluetooth,
@ -464,11 +476,18 @@ class SaveLockLogic extends BaseGetXController {
eventBus.fire(RefreshLockListInfoDataEvent(clearScanDevices: true)); eventBus.fire(RefreshLockListInfoDataEvent(clearScanDevices: true));
BlueManage().disconnect(); BlueManage().disconnect();
Get.close(state.isFromMap == 1 ? 5 : 6); Get.close(state.isFromMap == 1 ? 5 : 6);
// 2
Future<void>.delayed(const Duration(milliseconds: 200), () {
if (Get.isRegistered<LockDetailLogic>()) {
Get.find<LockDetailLogic>()
.functionBlocker
.countdownProhibited(duration: const Duration(seconds: 2));
}
});
} }
@override @override
void onReady() { void onReady() {
// TODO: implement onReady
super.onReady(); super.onReady();
_initReplySubscription(); _initReplySubscription();
@ -476,13 +495,11 @@ class SaveLockLogic extends BaseGetXController {
@override @override
void onInit() { void onInit() {
// TODO: implement onInit
super.onInit(); super.onInit();
} }
@override @override
void onClose() { void onClose() {
// TODO: implement onClose
_replySubscription.cancel(); _replySubscription.cancel();
super.onClose(); super.onClose();
} }