提交修复卡、指纹模块bug
This commit is contained in:
parent
4041c9dd83
commit
f618546d86
@ -5,6 +5,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
|
import '../../../../network/api_repository.dart';
|
||||||
import '../../../../tools/toast.dart';
|
import '../../../../tools/toast.dart';
|
||||||
import 'addCardType_state.dart';
|
import 'addCardType_state.dart';
|
||||||
|
|
||||||
@ -89,7 +90,16 @@ class AddCardTypeLogic extends BaseGetXController{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验卡名字是否重复
|
||||||
|
void checkCardNameDuplicated(String cardName) async{
|
||||||
|
var entity = await ApiRepository.to.checkCardNameDuplicatedData(
|
||||||
|
lockId: state.lockId.value.toString(),
|
||||||
|
cardName: cardName,
|
||||||
|
);
|
||||||
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
|
addCardData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
|
|||||||
@ -200,7 +200,7 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logic.addCardData();
|
logic.checkCardNameDuplicated(state.nameController.text);
|
||||||
} else {
|
} else {
|
||||||
// Get.toNamed(Routers.seletLockTypePage);
|
// Get.toNamed(Routers.seletLockTypePage);
|
||||||
Toast.show(msg: "演示模式");
|
Toast.show(msg: "演示模式");
|
||||||
|
|||||||
@ -214,8 +214,13 @@ class AddICCardLogic extends BaseGetXController{
|
|||||||
|
|
||||||
// 添加卡片
|
// 添加卡片
|
||||||
Future<void> senderAddICCard() async {
|
Future<void> senderAddICCard() async {
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
print("没有任何响应");
|
||||||
|
Get.close(1);
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
@ -241,8 +246,11 @@ class AddICCardLogic extends BaseGetXController{
|
|||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
} else if (deviceConnectionState == DeviceConnectionState.disconnected){
|
} else if (deviceConnectionState == DeviceConnectionState.disconnected){
|
||||||
showBlueConnetctToast();
|
if(state.ifCurrentScreen.value == true){
|
||||||
Get.close(2);
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
Get.close(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import '../../../../tools/titleAppBar.dart';
|
import '../../../../tools/titleAppBar.dart';
|
||||||
import '../../../../translations/trans_lib.dart';
|
import '../../../../translations/trans_lib.dart';
|
||||||
import 'addICCard_logic.dart';
|
import 'addICCard_logic.dart';
|
||||||
@ -15,7 +17,7 @@ class AddICCardPage extends StatefulWidget {
|
|||||||
State<AddICCardPage> createState() => _AddICCardPageState();
|
State<AddICCardPage> createState() => _AddICCardPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AddICCardPageState extends State<AddICCardPage> {
|
class _AddICCardPageState extends State<AddICCardPage> with RouteAware {
|
||||||
final logic = Get.put(AddICCardLogic());
|
final logic = Get.put(AddICCardLogic());
|
||||||
final state = Get.find<AddICCardLogic>().state;
|
final state = Get.find<AddICCardLogic>().state;
|
||||||
|
|
||||||
@ -29,16 +31,18 @@ class _AddICCardPageState extends State<AddICCardPage> {
|
|||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
),
|
),
|
||||||
body: Column(
|
body: ListView(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 200.h),
|
SizedBox(height: 200.h),
|
||||||
Image.asset(
|
Center(
|
||||||
'images/main/icon_addCard.png',
|
child: Image.asset(
|
||||||
width: 234.w,
|
'images/main/icon_addCard.png',
|
||||||
height: 211.h,
|
width: 234.w,
|
||||||
fit: BoxFit.cover,
|
height: 211.h,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 90.h),
|
SizedBox(height: 90.h),
|
||||||
CupertinoActivityIndicator(
|
CupertinoActivityIndicator(
|
||||||
@ -67,4 +71,59 @@ class _AddICCardPageState extends State<AddICCardPage> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
|
||||||
|
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,8 @@ import 'package:get/get.dart';
|
|||||||
|
|
||||||
class AddICCardState{
|
class AddICCardState{
|
||||||
var ifConnectScuess = false.obs;
|
var ifConnectScuess = false.obs;
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
|
||||||
var addFingerprintProcessNumber = 0.obs;
|
var addFingerprintProcessNumber = 0.obs;
|
||||||
final lockId = 0.obs;
|
final lockId = 0.obs;
|
||||||
final endDate = "".obs;
|
final endDate = "".obs;
|
||||||
|
|||||||
@ -40,6 +40,7 @@ class CardDetailLogic extends BaseGetXController{
|
|||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
print("${reply.commandType!.typeValue} 数据解析成功");
|
print("${reply.commandType!.typeValue} 数据解析成功");
|
||||||
|
dismissEasyLoading();
|
||||||
deletICCardData();
|
deletICCardData();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
@ -88,6 +89,16 @@ class CardDetailLogic extends BaseGetXController{
|
|||||||
|
|
||||||
// 删除卡片
|
// 删除卡片
|
||||||
Future<void> senderAddICCard() async {
|
Future<void> senderAddICCard() async {
|
||||||
|
if(state.sureBtnState.value == 1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
state.sureBtnState.value = 1;
|
||||||
|
|
||||||
|
showEasyLoading();
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
dismissEasyLoading();
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
@ -113,6 +124,13 @@ class CardDetailLogic extends BaseGetXController{
|
|||||||
privateKey:getPrivateKeyList,
|
privateKey:getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
|
} else if (deviceConnectionState == DeviceConnectionState.disconnected) {
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
if(state.ifCurrentScreen.value == true){
|
||||||
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import '../../../../tools/commonItem.dart';
|
import '../../../../tools/commonItem.dart';
|
||||||
import '../../../../tools/dateTool.dart';
|
import '../../../../tools/dateTool.dart';
|
||||||
import '../../../../tools/showIosTipView.dart';
|
import '../../../../tools/showIosTipView.dart';
|
||||||
@ -24,7 +27,7 @@ class CardDetailPage extends StatefulWidget {
|
|||||||
State<CardDetailPage> createState() => _CardDetailPageState();
|
State<CardDetailPage> createState() => _CardDetailPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CardDetailPageState extends State<CardDetailPage> {
|
class _CardDetailPageState extends State<CardDetailPage> with RouteAware {
|
||||||
final logic = Get.put(CardDetailLogic());
|
final logic = Get.put(CardDetailLogic());
|
||||||
final state = Get.find<CardDetailLogic>().state;
|
final state = Get.find<CardDetailLogic>().state;
|
||||||
|
|
||||||
@ -33,7 +36,7 @@ class _CardDetailPageState extends State<CardDetailPage> {
|
|||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(
|
appBar: TitleAppBar(
|
||||||
barTitle: "${TranslationLoader.lanKeys!.card!.tr}${TranslationLoader.lanKeys!.number!.tr}",
|
barTitle: "卡详情",
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
// actionsList: [
|
// actionsList: [
|
||||||
@ -359,4 +362,61 @@ class _CardDetailPageState extends State<CardDetailPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,9 @@ class CardDetailState{
|
|||||||
|
|
||||||
final TextEditingController changeNameController = TextEditingController();
|
final TextEditingController changeNameController = TextEditingController();
|
||||||
|
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||||
|
|
||||||
final typeNumber = "".obs;// 指纹号
|
final typeNumber = "".obs;// 指纹号
|
||||||
final typeName = "".obs;// 指纹名字
|
final typeName = "".obs;// 指纹名字
|
||||||
var effectiveDateTime = 0.obs;// 生效时间
|
var effectiveDateTime = 0.obs;// 生效时间
|
||||||
|
|||||||
@ -260,6 +260,10 @@ class CardListLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 删除卡片
|
// 删除卡片
|
||||||
Future<void> senderAddICCard() async {
|
Future<void> senderAddICCard() async {
|
||||||
|
showEasyLoading();
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
dismissEasyLoading();
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
@ -284,6 +288,12 @@ class CardListLogic extends BaseGetXController {
|
|||||||
privateKey:getPrivateKeyList,
|
privateKey:getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
|
} else if (deviceConnectionState == DeviceConnectionState.disconnected) {
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
if(state.ifCurrentScreen.value == true){
|
||||||
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -364,7 +374,8 @@ class CardListLogic extends BaseGetXController {
|
|||||||
if(isDemoMode == false) {
|
if(isDemoMode == false) {
|
||||||
// senderQueryingFingerprintStatus();
|
// senderQueryingFingerprintStatus();
|
||||||
// senderCheckingCardStatus();
|
// senderCheckingCardStatus();
|
||||||
senderCheckingUserInfoCount();
|
|
||||||
|
// senderCheckingUserInfoCount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,14 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import '../../../../tools/dateTool.dart';
|
import '../../../../tools/dateTool.dart';
|
||||||
import '../../../../tools/keySearchWidget.dart';
|
import '../../../../tools/keySearchWidget.dart';
|
||||||
import '../../../../tools/left_slide_actions.dart';
|
import '../../../../tools/left_slide_actions.dart';
|
||||||
@ -27,7 +30,7 @@ class CardListPage extends StatefulWidget {
|
|||||||
State<CardListPage> createState() => _CardListPageState();
|
State<CardListPage> createState() => _CardListPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CardListPageState extends State<CardListPage> {
|
class _CardListPageState extends State<CardListPage> with RouteAware {
|
||||||
final logic = Get.put(CardListLogic());
|
final logic = Get.put(CardListLogic());
|
||||||
final state = Get.find<CardListLogic>().state;
|
final state = Get.find<CardListLogic>().state;
|
||||||
|
|
||||||
@ -248,7 +251,7 @@ class _CardListPageState extends State<CardListPage> {
|
|||||||
builder: (context) {
|
builder: (context) {
|
||||||
return CupertinoAlertDialog(
|
return CupertinoAlertDialog(
|
||||||
title: const Text("提示"),
|
title: const Text("提示"),
|
||||||
content: const Text('重置后信息都会清除哦,确认要重置吗?'),
|
content: const Text('重置后该锁的卡都将被删除哦,确认要重置吗?'),
|
||||||
actions: [
|
actions: [
|
||||||
CupertinoDialogAction(
|
CupertinoDialogAction(
|
||||||
child: Text(TranslationLoader.lanKeys!.cancel!.tr),
|
child: Text(TranslationLoader.lanKeys!.cancel!.tr),
|
||||||
@ -273,4 +276,59 @@ class _CardListPageState extends State<CardListPage> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,8 @@ class CardListState {
|
|||||||
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
||||||
final TextEditingController searchController = TextEditingController();
|
final TextEditingController searchController = TextEditingController();
|
||||||
|
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
|
||||||
CardListState() {
|
CardListState() {
|
||||||
Map map = Get.arguments;
|
Map map = Get.arguments;
|
||||||
lockId.value = map["lockId"];
|
lockId.value = map["lockId"];
|
||||||
|
|||||||
@ -59,6 +59,10 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
//成功
|
//成功
|
||||||
print("${reply.commandType!.typeValue} 数据解析成功");
|
print("${reply.commandType!.typeValue} 数据解析成功");
|
||||||
state.ifConnectScuess.value = true;
|
state.ifConnectScuess.value = true;
|
||||||
|
|
||||||
|
// 最大图片数
|
||||||
|
state.maxRegCount.value = reply.data[10];
|
||||||
|
|
||||||
// state.fingerprintNumber.value = reply.data.last.toString();
|
// state.fingerprintNumber.value = reply.data.last.toString();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
@ -122,8 +126,11 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
Toast.show(msg: "添加失败");
|
Toast.show(msg: "添加失败");
|
||||||
Get.close(2);
|
Get.close(2);
|
||||||
}else{
|
}else{
|
||||||
state.addFingerprintProcessNumber.value++;
|
// state.addFingerprintProcessNumber.value++;
|
||||||
print("state.addFingerprintProcessNumber.value:${state.addFingerprintProcessNumber.value}");
|
|
||||||
|
// 当前注册数
|
||||||
|
state.regIndex.value = reply.data[6];
|
||||||
|
print("state.addFingerprintProcessNumber.value:${state.regIndex.value}");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
@ -252,9 +259,12 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 添加指纹开始
|
// 添加指纹开始
|
||||||
Future<void> senderAddFingerprint() async {
|
Future<void> senderAddFingerprint() async {
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
Get.close(1);
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
// print("66666666:$deviceConnectionState");
|
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
@ -280,8 +290,11 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
}else if (deviceConnectionState == DeviceConnectionState.disconnected){
|
}else if (deviceConnectionState == DeviceConnectionState.disconnected){
|
||||||
showBlueConnetctToast();
|
if(state.ifCurrentScreen.value == true){
|
||||||
Get.close(2);
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
Get.close(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,11 +3,11 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../../appRouters.dart';
|
|
||||||
import '../../../../../app_settings/app_colors.dart';
|
import '../../../../../app_settings/app_colors.dart';
|
||||||
import '../../../../../tools/submitBtn.dart';
|
|
||||||
import '../../../../../tools/titleAppBar.dart';
|
import '../../../../../tools/titleAppBar.dart';
|
||||||
import '../../../../../translations/trans_lib.dart';
|
import '../../../../../translations/trans_lib.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import 'addFingerprint_logic.dart';
|
import 'addFingerprint_logic.dart';
|
||||||
|
|
||||||
class AddFingerprintPage extends StatefulWidget {
|
class AddFingerprintPage extends StatefulWidget {
|
||||||
@ -17,7 +17,7 @@ class AddFingerprintPage extends StatefulWidget {
|
|||||||
State<AddFingerprintPage> createState() => _AddFingerprintPageState();
|
State<AddFingerprintPage> createState() => _AddFingerprintPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AddFingerprintPageState extends State<AddFingerprintPage> {
|
class _AddFingerprintPageState extends State<AddFingerprintPage> with RouteAware {
|
||||||
final logic = Get.put(AddFingerprintLogic());
|
final logic = Get.put(AddFingerprintLogic());
|
||||||
final state = Get.find<AddFingerprintLogic>().state;
|
final state = Get.find<AddFingerprintLogic>().state;
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ class _AddFingerprintPageState extends State<AddFingerprintPage> {
|
|||||||
),
|
),
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
Text(
|
Text(
|
||||||
"(${state.addFingerprintProcessNumber.value}/4)",
|
"(${state.regIndex.value}/${state.maxRegCount.value})",
|
||||||
// TranslationLoader.lanKeys!.lightTouchScreenTip!.tr,
|
// TranslationLoader.lanKeys!.lightTouchScreenTip!.tr,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
maxLines:null,
|
maxLines:null,
|
||||||
@ -89,7 +89,7 @@ class _AddFingerprintPageState extends State<AddFingerprintPage> {
|
|||||||
height: 100.h,
|
height: 100.h,
|
||||||
),
|
),
|
||||||
Obx(() => Image.asset(
|
Obx(() => Image.asset(
|
||||||
getIconNumber(state.addFingerprintProcessNumber.value),
|
getIconNumber(state.regIndex.value),
|
||||||
width: 185.w,
|
width: 185.w,
|
||||||
height: 295.h,
|
height: 295.h,
|
||||||
),),
|
),),
|
||||||
@ -138,4 +138,59 @@ class _AddFingerprintPageState extends State<AddFingerprintPage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
|
||||||
|
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,12 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
class AddFingerprintState{
|
class AddFingerprintState{
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
|
||||||
var ifConnectScuess = false.obs;
|
var ifConnectScuess = false.obs;
|
||||||
var addFingerprintProcessNumber = 0.obs;
|
var maxRegCount = 0.obs;// 最大注册次数
|
||||||
|
var regIndex = 0.obs;// 当前注册次数
|
||||||
|
|
||||||
final lockId = 0.obs;
|
final lockId = 0.obs;
|
||||||
final endDate = "".obs;
|
final endDate = "".obs;
|
||||||
final addType = "".obs;
|
final addType = "".obs;
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
|
import '../../../../network/api_repository.dart';
|
||||||
import '../../../../tools/toast.dart';
|
import '../../../../tools/toast.dart';
|
||||||
import 'addFingerprintType_state.dart';
|
import 'addFingerprintType_state.dart';
|
||||||
|
|
||||||
@ -87,4 +88,15 @@ class AddFingerprintTypeLogic extends BaseGetXController{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验指纹名字是否重复
|
||||||
|
void checkFingerprintNameDuplicated(String fingerprintName) async{
|
||||||
|
var entity = await ApiRepository.to.checkFingerprintNameDuplicatedData(
|
||||||
|
lockId: state.lockId.value.toString(),
|
||||||
|
fingerprintName: fingerprintName,
|
||||||
|
);
|
||||||
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
|
addFingerprintsData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -201,8 +201,7 @@ class _AddFingerprintTypePageState extends State<AddFingerprintTypePage> {
|
|||||||
Toast.show(msg: "请输入姓名");
|
Toast.show(msg: "请输入姓名");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
logic.checkFingerprintNameDuplicated(state.nameController.text);
|
||||||
logic.addFingerprintsData();
|
|
||||||
} else {
|
} else {
|
||||||
// Get.toNamed(Routers.seletLockTypePage);
|
// Get.toNamed(Routers.seletLockTypePage);
|
||||||
Toast.show(msg: "演示模式");
|
Toast.show(msg: "演示模式");
|
||||||
|
|||||||
@ -41,6 +41,8 @@ class FingerprintDetailLogic extends BaseGetXController{
|
|||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
print("${reply.commandType!.typeValue} 数据解析成功");
|
print("${reply.commandType!.typeValue} 数据解析成功");
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
dismissEasyLoading();
|
||||||
deletFingerprintsData();
|
deletFingerprintsData();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
@ -89,6 +91,16 @@ class FingerprintDetailLogic extends BaseGetXController{
|
|||||||
|
|
||||||
// 删除指纹
|
// 删除指纹
|
||||||
Future<void> senderAddFingerprint() async {
|
Future<void> senderAddFingerprint() async {
|
||||||
|
if(state.sureBtnState.value == 1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
state.sureBtnState.value = 1;
|
||||||
|
|
||||||
|
showEasyLoading();
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
dismissEasyLoading();
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
@ -114,6 +126,13 @@ class FingerprintDetailLogic extends BaseGetXController{
|
|||||||
privateKey:getPrivateKeyList,
|
privateKey:getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
|
} else if (deviceConnectionState == DeviceConnectionState.disconnected) {
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
if(state.ifCurrentScreen.value == true){
|
||||||
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import '../../../../tools/commonItem.dart';
|
import '../../../../tools/commonItem.dart';
|
||||||
import '../../../../tools/dateTool.dart';
|
import '../../../../tools/dateTool.dart';
|
||||||
import '../../../../tools/showIosTipView.dart';
|
import '../../../../tools/showIosTipView.dart';
|
||||||
@ -23,7 +26,7 @@ class FingerprintDetailPage extends StatefulWidget {
|
|||||||
State<FingerprintDetailPage> createState() => _FingerprintDetailPageState();
|
State<FingerprintDetailPage> createState() => _FingerprintDetailPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _FingerprintDetailPageState extends State<FingerprintDetailPage> {
|
class _FingerprintDetailPageState extends State<FingerprintDetailPage> with RouteAware {
|
||||||
final logic = Get.put(FingerprintDetailLogic());
|
final logic = Get.put(FingerprintDetailLogic());
|
||||||
final state = Get.find<FingerprintDetailLogic>().state;
|
final state = Get.find<FingerprintDetailLogic>().state;
|
||||||
|
|
||||||
@ -80,6 +83,7 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage> {
|
|||||||
// 限时
|
// 限时
|
||||||
var data = await Get.toNamed(Routers.otherTypeKeyChangeDatePage, arguments: {
|
var data = await Get.toNamed(Routers.otherTypeKeyChangeDatePage, arguments: {
|
||||||
"fingerprintItemData": state.fingerprintItemData.value,
|
"fingerprintItemData": state.fingerprintItemData.value,
|
||||||
|
"pushType": 1,
|
||||||
});
|
});
|
||||||
if(data != null) {
|
if(data != null) {
|
||||||
setState(() {
|
setState(() {
|
||||||
@ -321,4 +325,61 @@ class _FingerprintDetailPageState extends State<FingerprintDetailPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
state.sureBtnState.value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,9 @@ class FingerprintDetailState{
|
|||||||
var addTime = 0.obs;// 添加时间
|
var addTime = 0.obs;// 添加时间
|
||||||
var keyId = 0.obs;
|
var keyId = 0.obs;
|
||||||
|
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||||
|
|
||||||
final isStressFingerprint = false.obs;
|
final isStressFingerprint = false.obs;
|
||||||
FingerprintDetailState() {
|
FingerprintDetailState() {
|
||||||
Map map = Get.arguments;
|
Map map = Get.arguments;
|
||||||
|
|||||||
@ -41,9 +41,8 @@ class FingerprintListLogic extends BaseGetXController{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加指纹开始
|
// 添加指纹开始---这里用作删除指纹
|
||||||
Future<void> _replyAddFingerprintBegin(Reply reply) async {
|
Future<void> _replyAddFingerprintBegin(Reply reply) async {
|
||||||
|
|
||||||
int status = reply.data[2];
|
int status = reply.data[2];
|
||||||
print("status:$status");
|
print("status:$status");
|
||||||
|
|
||||||
@ -52,6 +51,7 @@ class FingerprintListLogic extends BaseGetXController{
|
|||||||
//成功
|
//成功
|
||||||
print("${reply.commandType!.typeValue} 数据解析成功");
|
print("${reply.commandType!.typeValue} 数据解析成功");
|
||||||
state.isDeletFingerprintData = false;
|
state.isDeletFingerprintData = false;
|
||||||
|
dismissEasyLoading();
|
||||||
deletAllFingerprintsData();
|
deletAllFingerprintsData();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
@ -293,6 +293,10 @@ class FingerprintListLogic extends BaseGetXController{
|
|||||||
|
|
||||||
// 删除指纹
|
// 删除指纹
|
||||||
Future<void> senderAddFingerprint() async {
|
Future<void> senderAddFingerprint() async {
|
||||||
|
showEasyLoading();
|
||||||
|
showBlueConnetctToastTimer(action: (){
|
||||||
|
dismissEasyLoading();
|
||||||
|
});
|
||||||
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == DeviceConnectionState.connected){
|
if (deviceConnectionState == DeviceConnectionState.connected){
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
@ -316,6 +320,12 @@ class FingerprintListLogic extends BaseGetXController{
|
|||||||
privateKey:getPrivateKeyList,
|
privateKey:getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
|
} else if (deviceConnectionState == DeviceConnectionState.disconnected) {
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
if(state.ifCurrentScreen.value == true){
|
||||||
|
showBlueConnetctToast();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -395,7 +405,8 @@ class FingerprintListLogic extends BaseGetXController{
|
|||||||
if(isDemoMode == false) {
|
if(isDemoMode == false) {
|
||||||
// senderQueryingFingerprintStatus();
|
// senderQueryingFingerprintStatus();
|
||||||
// senderCheckingCardStatus();
|
// senderCheckingCardStatus();
|
||||||
senderCheckingUserInfoCount();
|
|
||||||
|
// senderCheckingUserInfoCount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,14 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
import '../../../../appRouters.dart';
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../blue/blue_manage.dart';
|
||||||
|
import '../../../../tools/appRouteObserver.dart';
|
||||||
import '../../../../tools/dateTool.dart';
|
import '../../../../tools/dateTool.dart';
|
||||||
import '../../../../tools/keySearchWidget.dart';
|
import '../../../../tools/keySearchWidget.dart';
|
||||||
import '../../../../tools/left_slide_actions.dart';
|
import '../../../../tools/left_slide_actions.dart';
|
||||||
@ -27,7 +30,7 @@ class FingerprintListPage extends StatefulWidget {
|
|||||||
State<FingerprintListPage> createState() => _FingerprintListPageState();
|
State<FingerprintListPage> createState() => _FingerprintListPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _FingerprintListPageState extends State<FingerprintListPage> {
|
class _FingerprintListPageState extends State<FingerprintListPage> with RouteAware {
|
||||||
final logic = Get.put(FingerprintListLogic());
|
final logic = Get.put(FingerprintListLogic());
|
||||||
final state = Get.find<FingerprintListLogic>().state;
|
final state = Get.find<FingerprintListLogic>().state;
|
||||||
|
|
||||||
@ -247,7 +250,7 @@ class _FingerprintListPageState extends State<FingerprintListPage> {
|
|||||||
builder: (context) {
|
builder: (context) {
|
||||||
return CupertinoAlertDialog(
|
return CupertinoAlertDialog(
|
||||||
title: const Text("提示"),
|
title: const Text("提示"),
|
||||||
content: const Text('重置后信息都会清除哦,确认要重置吗?'),
|
content: const Text('重置后,改为该锁的指纹都将被删除哦,确认要重置吗?'),
|
||||||
actions: [
|
actions: [
|
||||||
CupertinoDialogAction(
|
CupertinoDialogAction(
|
||||||
child: Text(TranslationLoader.lanKeys!.cancel!.tr),
|
child: Text(TranslationLoader.lanKeys!.cancel!.tr),
|
||||||
@ -272,4 +275,60 @@ class _FingerprintListPageState extends State<FingerprintListPage> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
// TODO: implement didChangeDependencies
|
||||||
|
super.didChangeDependencies();
|
||||||
|
|
||||||
|
/// 路由订阅
|
||||||
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
/// 取消路由订阅
|
||||||
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从上级界面进入 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPush() {
|
||||||
|
super.didPush();
|
||||||
|
print("lockSet===didPush");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 返回上一个界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPop() {
|
||||||
|
super.didPop();
|
||||||
|
print("lockSet===didPop");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 从下级返回 当前界面即将出现
|
||||||
|
@override
|
||||||
|
void didPopNext() {
|
||||||
|
super.didPopNext();
|
||||||
|
print("lockSet===didPopNext");
|
||||||
|
state.ifCurrentScreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 进入下级界面 当前界面即将消失
|
||||||
|
@override
|
||||||
|
void didPushNext() {
|
||||||
|
super.didPushNext();
|
||||||
|
print("lockSet===didPushNext");
|
||||||
|
logic.cancelBlueConnetctToastTimer();
|
||||||
|
if (EasyLoading.isShow) EasyLoading.dismiss(animation: true);
|
||||||
|
BlueManage().stopScan();
|
||||||
|
state.ifCurrentScreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,8 @@ class FingerprintListState{
|
|||||||
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
final fingerprintItemListData = <FingerprintItemData>[].obs;
|
||||||
final TextEditingController searchController = TextEditingController();
|
final TextEditingController searchController = TextEditingController();
|
||||||
|
|
||||||
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
|
|
||||||
FingerprintListState() {
|
FingerprintListState() {
|
||||||
Map map = Get.arguments;
|
Map map = Get.arguments;
|
||||||
lockId.value = map["lockId"];
|
lockId.value = map["lockId"];
|
||||||
|
|||||||
@ -2,13 +2,11 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|
||||||
import 'package:flutter_reactive_ble/flutter_reactive_ble.dart';
|
import 'package:flutter_reactive_ble/flutter_reactive_ble.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/blue/io_protocol/io_deletUser.dart';
|
import 'package:star_lock/blue/io_protocol/io_deletUser.dart';
|
||||||
import 'package:star_lock/blue/io_type.dart';
|
import 'package:star_lock/blue/io_type.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
|
||||||
import '../../../../blue/blue_manage.dart';
|
import '../../../../blue/blue_manage.dart';
|
||||||
import '../../../../blue/io_protocol/io_factoryDataReset.dart';
|
import '../../../../blue/io_protocol/io_factoryDataReset.dart';
|
||||||
import '../../../../blue/io_protocol/io_readSupportFunctionsNoParameters.dart';
|
import '../../../../blue/io_protocol/io_readSupportFunctionsNoParameters.dart';
|
||||||
|
|||||||
@ -302,8 +302,8 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
print("添加用户数据解析成功");
|
print("添加用户数据解析成功");
|
||||||
state.lockUserNo = reply.data[47] + 1;
|
state.lockUserNo = reply.data[47];
|
||||||
// updateLockUserNo();
|
_updateLockUserNo();
|
||||||
|
|
||||||
if (state.isOpenLockNeedOnline.value == 0) {
|
if (state.isOpenLockNeedOnline.value == 0) {
|
||||||
openDoorAction(1);
|
openDoorAction(1);
|
||||||
@ -592,7 +592,7 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 普通用户接收电子钥匙之后 更新锁用户NO
|
// 普通用户接收电子钥匙之后 更新锁用户NO
|
||||||
void updateLockUserNo() async {
|
void _updateLockUserNo() async {
|
||||||
LockNetTokenEntity entity = await ApiRepository.to.updateLockUserNo(
|
LockNetTokenEntity entity = await ApiRepository.to.updateLockUserNo(
|
||||||
keyId: state.keyInfos.value.keyId.toString(),
|
keyId: state.keyInfos.value.keyId.toString(),
|
||||||
lockUserNo: state.lockUserNo.toString());
|
lockUserNo: state.lockUserNo.toString());
|
||||||
|
|||||||
@ -222,8 +222,7 @@ class LockOperatingRecordLogic extends BaseGetXController{
|
|||||||
|
|
||||||
// 操作记录上传
|
// 操作记录上传
|
||||||
void lockRecordUploadData(List list) async {
|
void lockRecordUploadData(List list) async {
|
||||||
KeyOperationRecordEntity entity =
|
KeyOperationRecordEntity entity = await ApiRepository.to.lockRecordUploadData(
|
||||||
await ApiRepository.to.lockRecordUploadData(
|
|
||||||
lockId: state.keyInfos.value.lockId.toString(),
|
lockId: state.keyInfos.value.lockId.toString(),
|
||||||
records: list);
|
records: list);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
|
|||||||
@ -105,15 +105,15 @@ abstract class Api {
|
|||||||
final String addFingerprintURL = '/fingerprint/add'; // 添加指纹
|
final String addFingerprintURL = '/fingerprint/add'; // 添加指纹
|
||||||
final String editFingerprintURL = '/fingerprint/changePeriod'; // 编辑指纹
|
final String editFingerprintURL = '/fingerprint/changePeriod'; // 编辑指纹
|
||||||
final String deleteFingerprintURL = '/fingerprint/delete'; // 删除指纹
|
final String deleteFingerprintURL = '/fingerprint/delete'; // 删除指纹
|
||||||
final String updateFingerprintUserNoURL =
|
final String updateFingerprintUserNoURL = '/fingerprint/updateFingerprintUserNo'; // 更新指纹用户序号
|
||||||
'/fingerprint/updateFingerprintUserNo'; // 更新指纹用户序号
|
final String checkFingerprintNameURL = '/fingerprint/checkFingerprintName'; // 校验指纹名字是否存在
|
||||||
|
|
||||||
final String getICCardListURL = '/identityCard/list'; // IC卡列表
|
final String getICCardListURL = '/identityCard/list'; // IC卡列表
|
||||||
final String addICCardURL = '/identityCard/add'; // 添加IC卡
|
final String addICCardURL = '/identityCard/add'; // 添加IC卡
|
||||||
final String editICCardURL = '/identityCard/update'; // 编辑IC卡
|
final String editICCardURL = '/identityCard/update'; // 编辑IC卡
|
||||||
final String deleteICCardURL = '/identityCard/delete'; // 删除IC卡
|
final String deleteICCardURL = '/identityCard/delete'; // 删除IC卡
|
||||||
final String updateICCardUserNoURL =
|
final String updateICCardUserNoURL = '/identityCard/updateCardUserNo'; // 更新ic卡用户序号
|
||||||
'/identityCard/updateCardUserNo'; // 更新ic卡用户序号
|
final String checkCardNameURL = '/identityCard/checkIdentityCardName'; // 校验卡名字是否存在
|
||||||
|
|
||||||
final String transferLockListURL = '/room/listForTransfer'; // 转移锁锁列表
|
final String transferLockListURL = '/room/listForTransfer'; // 转移锁锁列表
|
||||||
final String transferLockConfirmURL = '/room/transferLockConfirm'; // 转移智能锁确认
|
final String transferLockConfirmURL = '/room/transferLockConfirm'; // 转移智能锁确认
|
||||||
|
|||||||
@ -1004,6 +1004,17 @@ class ApiProvider extends BaseProvider {
|
|||||||
'fingerprintUserNo': fingerprintUserNo
|
'fingerprintUserNo': fingerprintUserNo
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// 校验指纹名字是否重复
|
||||||
|
Future<Response> checkFingerprintNameDuplicatedData(
|
||||||
|
String lockId,
|
||||||
|
String fingerprintName) =>
|
||||||
|
post(
|
||||||
|
checkFingerprintNameURL.toUrl,
|
||||||
|
jsonEncode({
|
||||||
|
'lockId': lockId,
|
||||||
|
'fingerprintName': fingerprintName
|
||||||
|
}));
|
||||||
|
|
||||||
// 获取IC卡列表
|
// 获取IC卡列表
|
||||||
Future<Response> getICCardListData(
|
Future<Response> getICCardListData(
|
||||||
String lockId, String pageNo, String pageSize, String searchStr) =>
|
String lockId, String pageNo, String pageSize, String searchStr) =>
|
||||||
@ -1078,6 +1089,17 @@ class ApiProvider extends BaseProvider {
|
|||||||
jsonEncode(
|
jsonEncode(
|
||||||
{'cardId': cardId, 'lockId': lockId, 'cardUserNo': cardUserNo}));
|
{'cardId': cardId, 'lockId': lockId, 'cardUserNo': cardUserNo}));
|
||||||
|
|
||||||
|
// 校验卡名字是否重复
|
||||||
|
Future<Response> checkCardNameDuplicatedData(
|
||||||
|
String lockId,
|
||||||
|
String cardName) =>
|
||||||
|
post(
|
||||||
|
checkCardNameURL.toUrl,
|
||||||
|
jsonEncode({
|
||||||
|
'lockId': lockId,
|
||||||
|
'cardName': cardName
|
||||||
|
}));
|
||||||
|
|
||||||
// 获取转移锁锁列表
|
// 获取转移锁锁列表
|
||||||
Future<Response> getTransferLockListData() =>
|
Future<Response> getTransferLockListData() =>
|
||||||
post(transferLockListURL.toUrl, jsonEncode({}));
|
post(transferLockListURL.toUrl, jsonEncode({}));
|
||||||
|
|||||||
@ -1157,6 +1157,15 @@ class ApiRepository {
|
|||||||
return LoginEntity.fromJson(res.body);
|
return LoginEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验指纹名字是否重复
|
||||||
|
Future<LoginEntity> checkFingerprintNameDuplicatedData(
|
||||||
|
{required String lockId,
|
||||||
|
required String fingerprintName}) async {
|
||||||
|
final res = await apiProvider.checkFingerprintNameDuplicatedData(
|
||||||
|
lockId, fingerprintName);
|
||||||
|
return LoginEntity.fromJson(res.body);
|
||||||
|
}
|
||||||
|
|
||||||
// 获取Ic卡列表
|
// 获取Ic卡列表
|
||||||
Future<FingerprintListDataEntity> getICCardListData({
|
Future<FingerprintListDataEntity> getICCardListData({
|
||||||
required String lockId,
|
required String lockId,
|
||||||
@ -1222,6 +1231,15 @@ class ApiRepository {
|
|||||||
return LoginEntity.fromJson(res.body);
|
return LoginEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验卡名字是否重复
|
||||||
|
Future<LoginEntity> checkCardNameDuplicatedData(
|
||||||
|
{required String lockId,
|
||||||
|
required String cardName}) async {
|
||||||
|
final res = await apiProvider.checkCardNameDuplicatedData(
|
||||||
|
lockId, cardName);
|
||||||
|
return LoginEntity.fromJson(res.body);
|
||||||
|
}
|
||||||
|
|
||||||
// 退出登录
|
// 退出登录
|
||||||
Future<LoginEntity> userLogout() async {
|
Future<LoginEntity> userLogout() async {
|
||||||
final res = await apiProvider.userLogout();
|
final res = await apiProvider.userLogout();
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
part of lib_trans;
|
part of lib_trans;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TranslationLoader {
|
class TranslationLoader {
|
||||||
|
|
||||||
static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
|
static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user