Merge branch 'develop_sync_record' into 'release'

Develop sync record

See merge request StarlockTeam/app-starlock!98
This commit is contained in:
刘燕峰 2025-05-23 10:52:42 +00:00
commit d31dfd509e
5 changed files with 234 additions and 178 deletions

View File

@ -76,7 +76,6 @@ class _StarLockRegisterPageState extends State<StarLockRegisterPage> {
Container(
width: 340.w,
height: 60.h,
// color: Colors.red,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(30.h)),
border:
@ -119,28 +118,22 @@ class _StarLockRegisterPageState extends State<StarLockRegisterPage> {
child: Obx(
() => Container(
height: 60.h,
// color: Colors.red,
decoration: state.isIphoneType.value
? null
: BoxDecoration(
decoration: !state.isIphoneType.value
? BoxDecoration(
color: AppColors.mainColor,
borderRadius: BorderRadius.all(
Radius.circular(
30.h,
),
),
borderRadius:
BorderRadius.all(Radius.circular(30.h)),
border: Border.all(
width: 1.0,
color: AppColors.greyLineColor,
),
),
width: 1.0,
color: AppColors.greyLineColor))
: null,
child: Center(
child: Text(
'邮箱'.tr,
style: TextStyle(
color: state.isIphoneType.value
? Colors.black
: Colors.white,
color: !state.isIphoneType.value
? Colors.white
: Colors.black,
),
),
),

View File

@ -3,8 +3,11 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
class StarLockRegisterState {
StarLockRegisterState() {
// tab
final Locale? systemLocale = Get.deviceLocale;
isIphoneType.value = systemLocale?.languageCode == 'zh';
resetResend();
}
final TextEditingController phoneOrEmailController = TextEditingController();
@ -22,16 +25,21 @@ class StarLockRegisterState {
RxString verificationCode = ''.obs;
RxString xWidth = ''.obs; //
RxBool isIphoneType = true.obs;
RxBool canSub = false.obs;//
RxBool canSub = false.obs; //
RxBool agree = false.obs;
RxBool canSendCode = false.obs;//
RxBool canSendCode = false.obs; //
// bool get isEmail => RegexUtil.isEmail(phoneOrEmailStr.value);
// bool get isIphone => RegexUtil.isMobileSimple(phoneOrEmailStr.value);
bool get pwdIsOK => pwd.value.isNotEmpty && surePwd.value.isNotEmpty && pwd.value.length >= 8 && surePwd.value.length >= 8;
bool get codeIsOK => verificationCode.value.isNotEmpty && verificationCode.value.length >= 6 ;
bool get pwdIsOK =>
pwd.value.isNotEmpty &&
surePwd.value.isNotEmpty &&
pwd.value.length >= 8 &&
surePwd.value.length >= 8;
bool get codeIsOK =>
verificationCode.value.isNotEmpty && verificationCode.value.length >= 6;
RxBool canResend = false.obs;//
RxBool canResend = false.obs; //
RxString btnText = ''.obs;
int totalSeconds = 120;
int currentSecond = 120;
@ -39,9 +47,8 @@ class StarLockRegisterState {
void resetResend() {
canResend.value = totalSeconds == currentSecond;
btnText.value = !canResend.value
? '$currentSecond s'
: btnText.value = '获取验证码'.tr;
btnText.value =
!canResend.value ? '$currentSecond s' : btnText.value = '获取验证码'.tr;
}
void onClose() {

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -74,6 +73,7 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
height: 80.h,
child: DefaultTabController(
length: 2,
initialIndex: state.isIphoneType.value ? 0 : 1,
child: TabBar(
onTap: (int index) {
state.isIphoneType.value = index == 0;
@ -84,10 +84,7 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
}),
dividerHeight: 0,
indicatorSize: TabBarIndicatorSize.tab,
tabs: <Widget>[
Text('手机'.tr),
Text('邮箱'.tr)
],
tabs: <Widget>[Text('手机'.tr), Text('邮箱'.tr)],
indicatorColor: AppColors.mainColor,
labelStyle:
TextStyle(color: AppColors.mainColor, fontSize: 26.sp),
@ -144,7 +141,7 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
logic.checkNext(state.phoneOrEmailController);
},
leftWidget: SizedBox(),
label:state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr,
label: state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr,
keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[
LengthLimitingTextInputFormatter(30),
@ -163,7 +160,7 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
Text(
'密码必须是8-20位至少包括数字/字母/符号中的2种'.tr,
style:
TextStyle(color: AppColors.placeholderTextColor, fontSize: 20.sp),
TextStyle(color: AppColors.placeholderTextColor, fontSize: 20.sp),
),
LoginInput(
controller: state.sureController,
@ -235,32 +232,31 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
Widget _buildBottomAgreement() {
return Padding(
padding: EdgeInsets.only(bottom:20.w),
padding: EdgeInsets.only(bottom: 20.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Obx(() => GestureDetector(
onTap: () {
state.agree.value = !state.agree.value;
logic.changeAgreeState();
},
child: Container(
width: 40.w,
height: 40.w,
// color: Colors.red,
padding: EdgeInsets.only(
left: 5.w,
right: 10.w,
),
child: Image.asset(
state.agree.value
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 20.w,
height: 20.w,
),
)
)),
onTap: () {
state.agree.value = !state.agree.value;
logic.changeAgreeState();
},
child: Container(
width: 40.w,
height: 40.w,
// color: Colors.red,
padding: EdgeInsets.only(
left: 5.w,
right: 10.w,
),
child: Image.asset(
state.agree.value
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 20.w,
height: 20.w,
),
))),
SizedBox(
width: 10.w,
),
@ -268,14 +264,12 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
child: RichText(
text: TextSpan(
text: '我已阅读并同意'.tr,
style:
TextStyle(color: const Color(0xff333333), fontSize: 20.sp),
style: TextStyle(color: const Color(0xff333333), fontSize: 20.sp),
children: <InlineSpan>[
WidgetSpan(
alignment: PlaceholderAlignment.middle,
child: GestureDetector(
child: Text(
'${'用户协议'.tr}',
child: Text('${'用户协议'.tr}',
style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () {
@ -289,8 +283,7 @@ class _StarLockRegisterPageState extends State<StarLockRegisterXHJPage> {
WidgetSpan(
alignment: PlaceholderAlignment.middle,
child: GestureDetector(
child: Text(
'${'隐私政策'.tr}',
child: Text('${'隐私政策'.tr}',
style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () {

View File

@ -405,6 +405,7 @@ class FingerprintListLogic extends BaseGetXController {
_teamEvent = eventBus
.on<OtherTypeRefreshListEvent>()
.listen((OtherTypeRefreshListEvent event) async {
//
await getFingerprintsListData(isRefresh: true);
});
}
@ -459,8 +460,10 @@ class FingerprintListLogic extends BaseGetXController {
final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
_initReplySubscription();
_initRefreshAction();
// _initRefreshAction();
//
await getFingerprintsListData(isRefresh: true);
}
}

View File

@ -1,4 +1,3 @@
import 'dart:async';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
@ -7,6 +6,8 @@ import 'package:star_lock/blue/io_protocol/io_updataLockRemoteControlList.dart';
import 'package:star_lock/login/login/entity/LoginEntity.dart';
import 'package:star_lock/tools/baseGetXController.dart';
import 'package:star_lock/tools/commonDataManage.dart';
import 'package:star_lock/tools/eventBusEventManage.dart';
import 'package:star_lock/tools/storage.dart';
import '../../../../app_settings/app_settings.dart';
import '../../../../blue/blue_manage.dart';
@ -21,48 +22,56 @@ import '../../../../blue/io_tool/io_tool.dart';
import '../../../../blue/io_tool/manager_event_bus.dart';
import '../../../../blue/sender_manage.dart';
import '../../../../network/api_repository.dart';
import '../../../../tools/storage.dart';
import 'uploadData_state.dart';
class UploadDataLogic extends BaseGetXController{
UploadDataState state = UploadDataState();
class UploadDataLogic extends BaseGetXController {
final UploadDataState state = UploadDataState();
//
late StreamSubscription<Reply> _replySubscription;
void _initReplySubscription() {
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
_replySubscription =
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
//
if (reply is UpdataLockPasswordListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockPasswordListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockPasswordListReply(reply);
}
//
if (reply is UpdataLockCardListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockCardListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockCardListReply(reply);
}
//
if (reply is UpdataLockFingerprintListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockFingerprintListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockFingerprintListReply(reply);
}
//
if (reply is UpdataLockFaceListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockFaceListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockFaceListReply(reply);
}
//
if (reply is UpdataLockPalmVeinListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockPalmVeinListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockPalmVeinListReply(reply);
}
//
if (reply is UpdataLockRemoteControlListReply && (state.ifCurrentScreen.value == true)) {
if (reply is UpdataLockRemoteControlListReply &&
(state.ifCurrentScreen.value == true)) {
_replyUpdataLockRemoteControlListReply(reply);
}
//
if (reply is UpdataLockSetReply && (state.ifCurrentScreen.value == true) && (state.ifSeletUpdataBtnState == true)) {
if (reply is UpdataLockSetReply &&
(state.ifCurrentScreen.value == true) &&
(state.ifSeletUpdataBtnState == true)) {
_replyUpdataLockSetReply(reply);
}
});
@ -71,21 +80,22 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockPasswordListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadPasswordDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadPasswordDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadPasswordPage = state.uploadPasswordPage + 1;
final List<int> token = reply.data.sublist(3, 7);
showEasyLoading();
updataLockPasswordList(token, state.uploadPasswordPage);
}else{
} else {
// dismissEasyLoading();
// 10
@ -95,12 +105,15 @@ class UploadDataLogic extends BaseGetXController{
// }else{
// //
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:2, records:state.uploadPasswordDataList);
_lockDataUpload(
uploadType: 2,
recordType: 2,
records: state.uploadPasswordDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -120,14 +133,15 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockCardListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadCardDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadCardDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadCardPage = state.uploadCardPage + 1;
@ -135,7 +149,7 @@ class UploadDataLogic extends BaseGetXController{
showEasyLoading();
updataLockCardList(token, state.uploadCardPage);
}else{
} else {
// // 10
// if(state.uploadCardDataList.isEmpty){
// //
@ -143,12 +157,13 @@ class UploadDataLogic extends BaseGetXController{
// }else{
// //
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:3, records:state.uploadCardDataList);
_lockDataUpload(
uploadType: 2, recordType: 3, records: state.uploadCardDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -167,14 +182,15 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockFingerprintListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadFingerprintDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadFingerprintDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadFingerprintPage = state.uploadFingerprintPage + 1;
@ -182,7 +198,7 @@ class UploadDataLogic extends BaseGetXController{
showEasyLoading();
updataLockFingerprintList(token, state.uploadFingerprintPage);
}else{
} else {
// // 10
// if(state.uploadFingerprintDataList.isEmpty){
// //
@ -190,12 +206,15 @@ class UploadDataLogic extends BaseGetXController{
// }else{
// //
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:4, records:state.uploadFingerprintDataList);
_lockDataUpload(
uploadType: 2,
recordType: 4,
records: state.uploadFingerprintDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -214,14 +233,15 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockFaceListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadFaceDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadFaceDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadFacePage = state.uploadFacePage + 1;
@ -229,20 +249,21 @@ class UploadDataLogic extends BaseGetXController{
showEasyLoading();
updataLockFaceList(token, state.uploadFacePage);
}else{
} else {
// // 10
// if(state.uploadFaceDataList.isEmpty){
// //
// getUpdataLockPalmVeinList();
// }else{
//
//
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:5, records:state.uploadFaceDataList);
_lockDataUpload(
uploadType: 2, recordType: 5, records: state.uploadFaceDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -261,14 +282,15 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockPalmVeinListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadPalmVeinDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadPalmVeinDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadPalmVeinPage = state.uploadPalmVeinPage + 1;
@ -276,7 +298,7 @@ class UploadDataLogic extends BaseGetXController{
showEasyLoading();
updataLockPalmVeinList(token, state.uploadPalmVeinPage);
}else{
} else {
// // 10
// if(state.uploadPalmVeinDataList.isEmpty){
// //
@ -284,12 +306,15 @@ class UploadDataLogic extends BaseGetXController{
// }else{
// //
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:6, records:state.uploadPalmVeinDataList);
_lockDataUpload(
uploadType: 2,
recordType: 6,
records: state.uploadPalmVeinDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -308,14 +333,15 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockRemoteControlListReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
cancelBlueConnetctToastTimer();
final int dataLength = reply.data[8];
state.uploadRemoteControlDataList.addAll(reply.data.sublist(9, reply.data.length));
if(dataLength == 10){
state.uploadRemoteControlDataList
.addAll(reply.data.sublist(9, reply.data.length));
if (dataLength == 10) {
// 10
state.uploadRemoteControlPage = state.uploadRemoteControlPage + 1;
@ -323,7 +349,7 @@ class UploadDataLogic extends BaseGetXController{
showEasyLoading();
updataLockRemoteControlList(token, state.uploadRemoteControlPage);
}else{
} else {
// // 10
// if(state.uploadPalmVeinDataList.isEmpty){
// //
@ -331,12 +357,15 @@ class UploadDataLogic extends BaseGetXController{
// }else{
// //
state.indexCount.value = state.indexCount.value + 1;
_lockDataUpload(uploadType:2, recordType:7, records:state.uploadRemoteControlDataList);
_lockDataUpload(
uploadType: 2,
recordType: 7,
records: state.uploadRemoteControlDataList);
// }
}
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -355,17 +384,19 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> _replyUpdataLockSetReply(Reply reply) async {
final int status = reply.data[2];
switch(status){
switch (status) {
case 0x00:
//
state.indexCount.value = state.indexCount.value + 1;
cancelBlueConnetctToastTimer();
state.uploadLockSetDataList.addAll(reply.data.sublist(7, reply.data.length));
_lockDataUpload(uploadType:1, recordType:0, records:state.uploadLockSetDataList);
state.uploadLockSetDataList
.addAll(reply.data.sublist(7, reply.data.length));
_lockDataUpload(
uploadType: 1, recordType: 0, records: state.uploadLockSetDataList);
break;
case 0x06:
//
//
final List<int> token = reply.data.sublist(3, 7);
final List<String> saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
@ -383,18 +414,19 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> getUpdataLockPasswordList() async {
if(state.sureBtnState.value == 1){
if (state.sureBtnState.value == 1) {
return;
}
state.sureBtnState.value = 1;
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
AppLog.log('上传密码列表获取超时 关闭加载菊花');
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -405,7 +437,7 @@ class UploadDataLogic extends BaseGetXController{
dismissEasyLoading();
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -414,7 +446,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockPasswordList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -428,19 +461,19 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
// Card列表
Future<void> getUpdataLockCardList() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -451,7 +484,7 @@ class UploadDataLogic extends BaseGetXController{
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -460,7 +493,8 @@ class UploadDataLogic extends BaseGetXController{
// Card列表
Future<void> updataLockCardList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -474,19 +508,19 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> getUpdataLockFingerprintList() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -497,7 +531,7 @@ class UploadDataLogic extends BaseGetXController{
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -506,7 +540,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockFingerprintList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -520,19 +555,19 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> getUpdataLockFaceList() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -543,7 +578,7 @@ class UploadDataLogic extends BaseGetXController{
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -552,7 +587,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockFaceList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -566,20 +602,19 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> getUpdataLockPalmVeinList() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -590,7 +625,7 @@ class UploadDataLogic extends BaseGetXController{
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -599,7 +634,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockPalmVeinList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -613,30 +649,31 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> getUpdataLockRemoteControlList() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
updataLockRemoteControlList(getTokenList, state.uploadRemoteControlPage);
updataLockRemoteControlList(
getTokenList, state.uploadRemoteControlPage);
} else if (connectionState == BluetoothConnectionState.disconnected) {
dismissEasyLoading();
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -645,7 +682,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockRemoteControlList(List<int> token, int page) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -659,19 +697,19 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> getUpdataLockSet() async {
showEasyLoading();
showBlueConnetctToastTimer(action: (){
showBlueConnetctToastTimer(action: () {
dismissEasyLoading();
state.indexCount.value = 0;
state.sureBtnState.value = 0;
});
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
BlueManage().blueSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState connectionState) async {
if (connectionState == BluetoothConnectionState.connected) {
final List<String>? token = await Storage.getStringList(saveBlueToken);
final List<int> getTokenList = changeStringListToIntList(token!);
@ -682,7 +720,7 @@ class UploadDataLogic extends BaseGetXController{
cancelBlueConnetctToastTimer();
state.sureBtnState.value = 0;
state.indexCount.value = 0;
if(state.ifCurrentScreen.value == true){
if (state.ifCurrentScreen.value == true) {
showBlueConnetctToast();
}
}
@ -691,7 +729,8 @@ class UploadDataLogic extends BaseGetXController{
//
Future<void> updataLockSet(List<int> token) async {
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
final List<String>? privateKey =
await Storage.getStringList(saveBluePrivateKey);
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
@ -703,32 +742,29 @@ class UploadDataLogic extends BaseGetXController{
token: token,
needAuthor: 1,
signKey: signKeyDataList,
privateKey: getPrivateKeyList
);
privateKey: getPrivateKeyList);
}
//
Future<void> _lockDataUpload({
required int uploadType,
required int recordType,
required List records
}) async{
Future<void> _lockDataUpload(
{required int uploadType,
required int recordType,
required List records}) async {
final LoginEntity entity = await ApiRepository.to.lockDataUpload(
lockId: CommonDataManage().currentKeyInfo.lockId!,
uploadType:uploadType,
uploadType: uploadType,
recordType: recordType,
records:records,
isUnShowLoading: false
);
if(entity.errorCode!.codeIsSuccessful){
if(uploadType == 1){
records: records,
isUnShowLoading: false);
if (entity.errorCode!.codeIsSuccessful) {
if (uploadType == 1) {
// 1
state.indexCount.value = 0;
state.sureBtnState.value = 0;
showToast('上传成功'.tr);
}else{
} else {
// 2
switch(recordType){
switch (recordType) {
// case 1:
// //
//
@ -761,13 +797,38 @@ class UploadDataLogic extends BaseGetXController{
break;
}
}
}else{
} else {
state.indexCount.value = 0;
state.sureBtnState.value = 0;
dismissEasyLoading();
}
}
//
void onUploadSuccess() {
//
eventBus.fire(OtherTypeRefreshListEvent());
//
Get.back();
}
//
Future<void> uploadData() async {
try {
// ... existing upload code ...
//
bool uploadSuccess = true; //
if (uploadSuccess) {
onUploadSuccess();
}
} catch (e) {
//
print('Upload failed: $e');
}
}
@override
void onReady() {
super.onReady();
@ -783,5 +844,4 @@ class UploadDataLogic extends BaseGetXController{
_replySubscription.cancel();
}
}