1、添加开完锁之后数据上传
2、打包apk上传到pre下载页 3、完成App启动数据请求优化问题
This commit is contained in:
parent
b241008de8
commit
a7336b79cc
BIN
ios/.DS_Store
vendored
BIN
ios/.DS_Store
vendored
Binary file not shown.
@ -28,8 +28,6 @@ PODS:
|
|||||||
- AMapFoundation (>= 1.8.0)
|
- AMapFoundation (>= 1.8.0)
|
||||||
- app_settings (5.1.1):
|
- app_settings (5.1.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- audio_service (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- audio_session (0.0.1):
|
- audio_session (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- audioplayers_darwin (0.0.1):
|
- audioplayers_darwin (0.0.1):
|
||||||
@ -166,7 +164,6 @@ DEPENDENCIES:
|
|||||||
- amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`)
|
- amap_flutter_location (from `.symlinks/plugins/amap_flutter_location/ios`)
|
||||||
- amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`)
|
- amap_flutter_map (from `.symlinks/plugins/amap_flutter_map/ios`)
|
||||||
- app_settings (from `.symlinks/plugins/app_settings/ios`)
|
- app_settings (from `.symlinks/plugins/app_settings/ios`)
|
||||||
- audio_service (from `.symlinks/plugins/audio_service/ios`)
|
|
||||||
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
||||||
- audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`)
|
- audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`)
|
||||||
- auto_orientation (from `.symlinks/plugins/auto_orientation/ios`)
|
- auto_orientation (from `.symlinks/plugins/auto_orientation/ios`)
|
||||||
@ -237,8 +234,6 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/amap_flutter_map/ios"
|
:path: ".symlinks/plugins/amap_flutter_map/ios"
|
||||||
app_settings:
|
app_settings:
|
||||||
:path: ".symlinks/plugins/app_settings/ios"
|
:path: ".symlinks/plugins/app_settings/ios"
|
||||||
audio_service:
|
|
||||||
:path: ".symlinks/plugins/audio_service/ios"
|
|
||||||
audio_session:
|
audio_session:
|
||||||
:path: ".symlinks/plugins/audio_session/ios"
|
:path: ".symlinks/plugins/audio_session/ios"
|
||||||
audioplayers_darwin:
|
audioplayers_darwin:
|
||||||
@ -318,7 +313,6 @@ SPEC CHECKSUMS:
|
|||||||
AMapFoundation: 9885c48fc3a78fdfb84a0299a2293e56ea3c9fec
|
AMapFoundation: 9885c48fc3a78fdfb84a0299a2293e56ea3c9fec
|
||||||
AMapLocation: 5248aec2455ebb5d104b367813c946430a2ee033
|
AMapLocation: 5248aec2455ebb5d104b367813c946430a2ee033
|
||||||
app_settings: 017320c6a680cdc94c799949d95b84cb69389ebc
|
app_settings: 017320c6a680cdc94c799949d95b84cb69389ebc
|
||||||
audio_service: f509d65da41b9521a61f1c404dd58651f265a567
|
|
||||||
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207
|
||||||
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
|
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
|
||||||
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
|
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
|
||||||
|
|||||||
@ -3,18 +3,12 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.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 'package:permission_handler/permission_handler.dart';
|
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
|
||||||
import 'package:star_lock/blue/blue_manage.dart';
|
import 'package:star_lock/blue/blue_manage.dart';
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/app_get_version.dart';
|
|
||||||
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
|
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
|
||||||
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
||||||
import 'package:star_lock/tools/app_manager.dart';
|
import 'package:star_lock/tools/app_manager.dart';
|
||||||
import 'package:star_lock/tools/bindings/app_binding.dart';
|
import 'package:star_lock/tools/bindings/app_binding.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
|
||||||
import 'package:star_lock/tools/pay/wx_pay_tool.dart';
|
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
|
|
||||||
import 'package:star_lock/translations/app_dept.dart';
|
import 'package:star_lock/translations/app_dept.dart';
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/starLock_login_state.dart';
|
import 'package:star_lock/login/login/starLock_login_state.dart';
|
||||||
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
|
|
||||||
import '../../appRouters.dart';
|
import '../../appRouters.dart';
|
||||||
@ -16,6 +16,7 @@ import '../../tools/commonItem.dart';
|
|||||||
import '../../tools/submitBtn.dart';
|
import '../../tools/submitBtn.dart';
|
||||||
import '../../tools/tf_loginInput.dart';
|
import '../../tools/tf_loginInput.dart';
|
||||||
import '../../tools/titleAppBar.dart';
|
import '../../tools/titleAppBar.dart';
|
||||||
|
import '../../tools/wechat/wechatManageTool.dart';
|
||||||
import 'starLock_login_logic.dart';
|
import 'starLock_login_logic.dart';
|
||||||
|
|
||||||
class StarLockLoginPage extends StatefulWidget {
|
class StarLockLoginPage extends StatefulWidget {
|
||||||
@ -47,9 +48,11 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
|
|||||||
haveBack: false,
|
haveBack: false,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
actionsList: <Widget>[
|
actionsList: <Widget>[
|
||||||
const IconButton(
|
IconButton(
|
||||||
onPressed: CustomerTool.openCustomerService,
|
onPressed: (){
|
||||||
icon: Icon(
|
WechatManageTool.getAppInfo(CustomerTool.openCustomerService);
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
Icons.support_agent,
|
Icons.support_agent,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
)),
|
)),
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/starLock_login_state.dart';
|
import 'package:star_lock/login/login/starLock_login_state.dart';
|
||||||
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
|
|
||||||
import '../../appRouters.dart';
|
import '../../appRouters.dart';
|
||||||
@ -14,6 +14,7 @@ import '../../app_settings/app_colors.dart';
|
|||||||
import '../../common/XSConstantMacro/XSConstantMacro.dart';
|
import '../../common/XSConstantMacro/XSConstantMacro.dart';
|
||||||
import '../../tools/submitBtn.dart';
|
import '../../tools/submitBtn.dart';
|
||||||
import '../../tools/tf_loginInput.dart';
|
import '../../tools/tf_loginInput.dart';
|
||||||
|
import '../../tools/wechat/wechatManageTool.dart';
|
||||||
import 'starLock_login_logic.dart';
|
import 'starLock_login_logic.dart';
|
||||||
|
|
||||||
class StarLockLoginXHJPage extends StatefulWidget {
|
class StarLockLoginXHJPage extends StatefulWidget {
|
||||||
@ -64,7 +65,9 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: CustomerTool.openCustomerService,
|
onPressed: (){
|
||||||
|
WechatManageTool.getAppInfo(CustomerTool.openCustomerService);
|
||||||
|
},
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.support_agent,
|
Icons.support_agent,
|
||||||
color: AppColors.mainColor,
|
color: AppColors.mainColor,
|
||||||
|
|||||||
@ -7,14 +7,11 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/app_get_version.dart';
|
|
||||||
import 'package:star_lock/mine/about/debug/debug_tool.dart';
|
import 'package:star_lock/mine/about/debug/debug_tool.dart';
|
||||||
import 'package:star_lock/network/api_provider.dart';
|
import 'package:star_lock/network/api_provider.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/bugly/bugly_tool.dart';
|
import 'package:star_lock/tools/bugly/bugly_tool.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
|
||||||
import 'package:star_lock/tools/device_info_service.dart';
|
import 'package:star_lock/tools/device_info_service.dart';
|
||||||
import 'package:star_lock/tools/pay/wx_pay_tool.dart';
|
|
||||||
import 'package:star_lock/tools/platform_info_services.dart';
|
import 'package:star_lock/tools/platform_info_services.dart';
|
||||||
import 'package:star_lock/tools/push/xs_jPhush.dart';
|
import 'package:star_lock/tools/push/xs_jPhush.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
@ -36,14 +33,6 @@ FutureOr<void> main() async {
|
|||||||
final bool isLogin = await getLoginStatus();
|
final bool isLogin = await getLoginStatus();
|
||||||
if (isLogin) {
|
if (isLogin) {
|
||||||
await privacySDKInitialization();
|
await privacySDKInitialization();
|
||||||
Future<void>.delayed(const Duration(milliseconds: 500), () async {
|
|
||||||
// AppLog.log('main函数调用了获取App信息接口');
|
|
||||||
final GetAppInfo entity = await ApiRepository.to.getAppInfo();
|
|
||||||
CustomerTool.init(entity.data?.wechatServiceUrl ?? '');
|
|
||||||
if (entity.data?.appSiteUrl != null) {
|
|
||||||
WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import 'package:star_lock/widget/permission/permission_dialog.dart';
|
|||||||
import '../../../app_settings/app_settings.dart';
|
import '../../../app_settings/app_settings.dart';
|
||||||
import '../../../blue/blue_manage.dart';
|
import '../../../blue/blue_manage.dart';
|
||||||
import '../../../blue/io_protocol/io_openLock.dart';
|
import '../../../blue/io_protocol/io_openLock.dart';
|
||||||
|
import '../../../blue/io_protocol/io_referEventRecordTime.dart';
|
||||||
import '../../../blue/io_reply.dart';
|
import '../../../blue/io_reply.dart';
|
||||||
import '../../../blue/io_tool/io_tool.dart';
|
import '../../../blue/io_tool/io_tool.dart';
|
||||||
import '../../../blue/io_tool/manager_event_bus.dart';
|
import '../../../blue/io_tool/manager_event_bus.dart';
|
||||||
@ -28,6 +29,7 @@ import '../../../tools/commonDataManage.dart';
|
|||||||
import '../../../tools/eventBusEventManage.dart';
|
import '../../../tools/eventBusEventManage.dart';
|
||||||
import '../../../tools/storage.dart';
|
import '../../../tools/storage.dart';
|
||||||
import '../lockOperatingRecord/keyOperationRecord_entity.dart';
|
import '../lockOperatingRecord/keyOperationRecord_entity.dart';
|
||||||
|
import '../lockOperatingRecord/lockOperatingRecordGetLastRecordTime_entity.dart';
|
||||||
import '../lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_entity.dart';
|
import '../lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_entity.dart';
|
||||||
import 'lockDetail_state.dart';
|
import 'lockDetail_state.dart';
|
||||||
import 'lockNetToken_entity.dart';
|
import 'lockNetToken_entity.dart';
|
||||||
@ -41,18 +43,17 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 监听设备返回的数据
|
// 监听设备返回的数据
|
||||||
void initReplySubscription() {
|
void initReplySubscription() {
|
||||||
state.replySubscription =
|
state.replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
|
||||||
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
|
|
||||||
// 开门
|
// 开门
|
||||||
if (reply is OpenDoorReply && state.ifCurrentScreen.value == true) {
|
if (reply is OpenDoorReply && state.ifCurrentScreen.value == true) {
|
||||||
_replyOpenLock(reply);
|
_replyOpenLock(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开完锁之后上传记录
|
// 开完锁之后上传记录
|
||||||
// if (reply is SenderReferEventRecordTimeReply &&
|
if (reply is SenderReferEventRecordTimeReply &&
|
||||||
// state.ifCurrentScreen.value == true) {
|
state.ifCurrentScreen.value == true) {
|
||||||
// _replyReferEventRecordTime(reply);
|
_replyReferEventRecordTime(reply);
|
||||||
// }
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +96,7 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
state.animationController!.stop();
|
state.animationController!.stop();
|
||||||
|
|
||||||
//锁数据更新
|
//锁数据更新
|
||||||
// getLockRecordLastUploadDataTime();
|
getLockRecordLastUploadDataTime();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
//无权限
|
//无权限
|
||||||
@ -178,7 +179,6 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Future<void> loadData({ required LockListInfoItemEntity lockListInfoItemEntity,required bool isOnlyOneData}) async {
|
Future<void> loadData({ required LockListInfoItemEntity lockListInfoItemEntity,required bool isOnlyOneData}) async {
|
||||||
state.keyInfos.value = lockListInfoItemEntity;
|
state.keyInfos.value = lockListInfoItemEntity;
|
||||||
CommonDataManage().currentLockUserNo = state.keyInfos.value.lockUserNo!;
|
CommonDataManage().currentLockUserNo = state.keyInfos.value.lockUserNo!;
|
||||||
@ -254,71 +254,70 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据时间查解析数据
|
// 根据时间查解析数据
|
||||||
// Future<void> _replyReferEventRecordTime(Reply reply) async {
|
Future<void> _replyReferEventRecordTime(Reply reply) async {
|
||||||
// final int status = reply.data[2];
|
final int status = reply.data[2];
|
||||||
// switch (status) {
|
switch (status) {
|
||||||
// case 0x00:
|
case 0x00:
|
||||||
// //成功
|
//成功
|
||||||
// final int dataLength = (reply.data[5] << 8) + reply.data[6];
|
final int dataLength = (reply.data[5] << 8) + reply.data[6];
|
||||||
// AppLog.log('dataLength:$dataLength');
|
AppLog.log('dataLength:$dataLength');
|
||||||
// if (dataLength > 0) {
|
if (dataLength > 0) {
|
||||||
// reply.data.removeRange(0, 7);
|
reply.data.removeRange(0, 7);
|
||||||
// // 把得到的数据按17个字节分割成数组 然后塞进一个新的数组里面
|
// 把得到的数据按17个字节分割成数组 然后塞进一个新的数组里面
|
||||||
// if (reply.data.length < 17) {
|
if (reply.data.length < 17) {
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
// final List<List<int>> getList = splitList(reply.data, 17);
|
final List<List<int>> getList = splitList(reply.data, 17);
|
||||||
// AppLog.log('getList:$getList');
|
AppLog.log('getList:$getList');
|
||||||
// final List uploadList = [];
|
final List uploadList = [];
|
||||||
// for (int i = 0; i < getList.length; i++) {
|
for (int i = 0; i < getList.length; i++) {
|
||||||
// final List<int> indexList = getList[i];
|
final List<int> indexList = getList[i];
|
||||||
// AppLog.log('indexList:$indexList');
|
// AppLog.log("indexList:$indexList");
|
||||||
// final Map indexMap = {};
|
final Map indexMap = {};
|
||||||
// indexMap['type'] = indexList[0].toString();
|
indexMap['type'] = indexList[0].toString();
|
||||||
// int operateDate = 0;
|
|
||||||
// // if (indexList[0] == 2) {
|
final int userNo = (indexList[1] * 256) + indexList[2];
|
||||||
// final List<int> passwordData = indexList.sublist(7, 17);
|
indexMap['user'] = userNo.toString();
|
||||||
// final String password = utf8String(passwordData);
|
// AppLog.log('userNouserNouserNouserNo:$userNo');
|
||||||
// AppLog.log('passwordData:$passwordData password:$password');
|
|
||||||
// indexMap['user'] = password.toString();
|
final List<int> passwordData = indexList.sublist(7, 17);
|
||||||
// // } else {
|
final String password = utf8String(passwordData);
|
||||||
// // final int userNo = (indexList[1] * 256) + indexList[2];
|
indexMap['password'] = password.toString();
|
||||||
// // indexMap['user'] = userNo.toString();
|
// AppLog.log('passwordpasswordpassword:$password');
|
||||||
// // }
|
|
||||||
//
|
indexMap['success'] = '1';
|
||||||
// indexMap['success'] = '1';
|
|
||||||
//
|
final int time = (0xff & indexList[3]) << 24 |
|
||||||
// final int time = (0xff & indexList[3]) << 24 |
|
(0xff & indexList[4]) << 16 |
|
||||||
// (0xff & indexList[4]) << 16 |
|
(0xff & indexList[5]) << 8 |
|
||||||
// (0xff & indexList[5]) << 8 |
|
(0xFF & indexList[6]);
|
||||||
// (0xFF & indexList[6]);
|
indexMap['date'] = '${time * 1000}';
|
||||||
// operateDate = time * 1000;
|
uploadList.add(indexMap);
|
||||||
// indexMap['date'] = '$operateDate';
|
|
||||||
// uploadList.add(indexMap);
|
final int operateDate = time * 1000;
|
||||||
//
|
if (i == getList.length - 1) {
|
||||||
// if (i == getList.length - 1) {
|
//设置最后的时间戳
|
||||||
// //设置最后的时间戳
|
state.operateDate = operateDate;
|
||||||
// state.operateDate = operateDate;
|
}
|
||||||
// }
|
}
|
||||||
// }
|
lockRecordUploadData(uploadList);
|
||||||
// lockRecordUploadData(uploadList);
|
|
||||||
//
|
if (dataLength == state.logCountPage) {
|
||||||
// if (dataLength == state.logCountPage) {
|
senderReferEventRecordTime();
|
||||||
// senderReferEventRecordTime();
|
} else {
|
||||||
// } else {
|
await blueManageDisconnect();
|
||||||
// await blueManageDisconnect();
|
}
|
||||||
// }
|
}
|
||||||
// }
|
break;
|
||||||
// break;
|
case 0x06:
|
||||||
// case 0x06:
|
//无权限
|
||||||
// //无权限
|
blueManageDisconnect();
|
||||||
// blueManageDisconnect();
|
break;
|
||||||
// break;
|
default:
|
||||||
// default:
|
blueManageDisconnect();
|
||||||
// blueManageDisconnect();
|
break;
|
||||||
// break;
|
}
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
// 点击开门事件
|
// 点击开门事件
|
||||||
Future<void> openDoorAction() async {
|
Future<void> openDoorAction() async {
|
||||||
@ -374,42 +373,43 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询事件记录(时间查询)
|
// 查询事件记录(时间查询)
|
||||||
// void senderReferEventRecordTime() {
|
void senderReferEventRecordTime() {
|
||||||
// showBlueConnetctToastTimer(
|
showBlueConnetctToastTimer(
|
||||||
// isShowBlueConnetctToast: false,
|
isShowBlueConnetctToast: false,
|
||||||
// action: () {
|
action: () {
|
||||||
// blueManageDisconnect();
|
blueManageDisconnect();
|
||||||
// });
|
});
|
||||||
// BlueManage().blueSendData(BlueManage().connectDeviceName,
|
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||||
// (BluetoothConnectionState connectionState) async {
|
(BluetoothConnectionState connectionState) async {
|
||||||
// if (connectionState == BluetoothConnectionState.connected) {
|
if (connectionState == BluetoothConnectionState.connected) {
|
||||||
// final List<String>? privateKey =
|
final List<String>? privateKey =
|
||||||
// await Storage.getStringList(saveBluePrivateKey);
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
// final List<int> getPrivateKeyList =
|
final List<int> getPrivateKeyList =
|
||||||
// changeStringListToIntList(privateKey!);
|
changeStringListToIntList(privateKey!);
|
||||||
//
|
|
||||||
// final List<String>? token = await Storage.getStringList(saveBlueToken);
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||||
// final List<int> getTokenList = changeStringListToIntList(token!);
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
//
|
|
||||||
// final List<String>? publicKey =
|
final List<String>? publicKey =
|
||||||
// await Storage.getStringList(saveBluePublicKey);
|
await Storage.getStringList(saveBluePublicKey);
|
||||||
// final List<int> getPublicKeyList =
|
final List<int> getPublicKeyList =
|
||||||
// changeStringListToIntList(publicKey!);
|
changeStringListToIntList(publicKey!);
|
||||||
//
|
|
||||||
// IoSenderManage.senderReferEventRecordTimeCommand(
|
IoSenderManage.senderReferEventRecordTimeCommand(
|
||||||
// keyID: BlueManage().connectDeviceName,
|
keyID: BlueManage().connectDeviceName,
|
||||||
// userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
// logsCount: state.logCountPage,
|
logsCount: state.logCountPage,
|
||||||
// // time:DateTime.now().millisecondsSinceEpoch~/1000,
|
// time:DateTime.now().millisecondsSinceEpoch~/1000,
|
||||||
// time: state.operateDate,
|
time: state.operateDate,
|
||||||
// token: getTokenList,
|
currentDate: getUTCNetTime(),
|
||||||
// needAuthor: 1,
|
token: getTokenList,
|
||||||
// publicKey: getPublicKeyList,
|
needAuthor: 1,
|
||||||
// privateKey: getPrivateKeyList,
|
publicKey: getPublicKeyList,
|
||||||
// );
|
privateKey: getPrivateKeyList,
|
||||||
// }
|
);
|
||||||
// });
|
}
|
||||||
// }
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 从服务器获取锁的时间 开锁时传入
|
// 从服务器获取锁的时间 开锁时传入
|
||||||
Future<void> getServerDatetime() async {
|
Future<void> getServerDatetime() async {
|
||||||
@ -467,15 +467,15 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询锁记录最后时间
|
// 查询锁记录最后时间
|
||||||
// Future<void> getLockRecordLastUploadDataTime() async {
|
Future<void> getLockRecordLastUploadDataTime() async {
|
||||||
// final LockOperatingRecordGetLastRecordTimeEntity entity =
|
final LockOperatingRecordGetLastRecordTimeEntity entity =
|
||||||
// await ApiRepository.to.getLockRecordLastUploadDataTime(
|
await ApiRepository.to.getLockRecordLastUploadDataTime(
|
||||||
// lockId: state.keyInfos.value.lockId.toString());
|
lockId: state.keyInfos.value.lockId.toString());
|
||||||
// if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
// state.operateDate = entity.data!.operateDate! ~/ 1000;
|
state.operateDate = entity.data!.operateDate! ~/ 1000;
|
||||||
// senderReferEventRecordTime();
|
senderReferEventRecordTime();
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
// 操作记录上传
|
// 操作记录上传
|
||||||
Future<void> lockRecordUploadData(List list) async {
|
Future<void> lockRecordUploadData(List list) async {
|
||||||
|
|||||||
@ -323,7 +323,7 @@ class LockListLogic extends BaseGetXController {
|
|||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
AppLog.log('onInit调用了 setLockListInfoGroupEntity');
|
// AppLog.log('onInit调用了 setLockListInfoGroupEntity');
|
||||||
setLockListInfoGroupEntity(entity!);
|
setLockListInfoGroupEntity(entity!);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class LockMainLogic extends BaseGetXController {
|
|||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
// AppLog.log('请求列表调用 loadMainDataLogic');
|
// AppLog.log('请求列表调用 loadMainDataLogic');
|
||||||
await loadMainDataLogic(entity.data!);
|
await loadMainDataLogic(entity.data!);
|
||||||
updateZoneOffsetsAndLanguages();
|
// updateZoneOffsetsAndLanguages();
|
||||||
}
|
}
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
@ -94,24 +94,24 @@ class LockMainLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 获取联网类型
|
/// 获取联网类型
|
||||||
Future<void> getConnectType() async {
|
// Future<void> _getConnectType() async {
|
||||||
final ConnectivityResult connectResult =
|
// final ConnectivityResult connectResult =
|
||||||
await Connectivity().checkConnectivity();
|
// await Connectivity().checkConnectivity();
|
||||||
if (connectResult == ConnectivityResult.mobile) {
|
// if (connectResult == ConnectivityResult.mobile) {
|
||||||
// _netType = "4G";
|
// // _netType = "4G";
|
||||||
state.networkConnectionStatus.value = 1;
|
// state.networkConnectionStatus.value = 1;
|
||||||
AppLog.log('网络连接: 4G 4G 4G 4G 4G');
|
// AppLog.log('网络连接: 4G 4G 4G 4G 4G');
|
||||||
} else if (connectResult == ConnectivityResult.wifi) {
|
// } else if (connectResult == ConnectivityResult.wifi) {
|
||||||
// _netType = "wifi";
|
// // _netType = "wifi";
|
||||||
state.networkConnectionStatus.value = 1;
|
// state.networkConnectionStatus.value = 1;
|
||||||
AppLog.log('网络连接: wifi wifi wifi wifi wifi');
|
// AppLog.log('网络连接: wifi wifi wifi wifi wifi');
|
||||||
} else {
|
// } else {
|
||||||
// _netType = "未连接";
|
// // _netType = "未连接";
|
||||||
state.networkConnectionStatus.value = 0;
|
// state.networkConnectionStatus.value = 0;
|
||||||
AppLog.log('网络连接: 未连接 未连接 未连接 未连接 未连接');
|
// AppLog.log('网络连接: 未连接 未连接 未连接 未连接 未连接');
|
||||||
// showToast("网络访问失败,请检查网络是否正常");
|
// // showToast("网络访问失败,请检查网络是否正常");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
/// 判断网络是否连接
|
/// 判断网络是否连接
|
||||||
Future<bool> isConnected() async {
|
Future<bool> isConnected() async {
|
||||||
@ -121,19 +121,18 @@ class LockMainLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 设置网络切换监听
|
/// 设置网络切换监听
|
||||||
Future<void> connectListener() async {
|
// Future<void> connectListener() async {
|
||||||
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
|
// Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
|
||||||
AppLog.log('设置网络切换监听:$result');
|
// AppLog.log('设置网络切换监听:$result');
|
||||||
if (state.networkConnectionStatus.value == 0 &&
|
// if (state.networkConnectionStatus.value == 0 && result != ConnectivityResult.none) {
|
||||||
result != ConnectivityResult.none) {
|
// // 从无网络到有网络
|
||||||
// 从无网络到有网络
|
// state.networkConnectionStatus.value = 1;
|
||||||
state.networkConnectionStatus.value = 1;
|
// getStarLockInfo(isUnShowLoading: true);
|
||||||
getStarLockInfo(isUnShowLoading: true);
|
// } else if (result == ConnectivityResult.none) {
|
||||||
} else if (result == ConnectivityResult.none) {
|
// state.networkConnectionStatus.value = 0;
|
||||||
state.networkConnectionStatus.value = 0;
|
// }
|
||||||
}
|
// });
|
||||||
});
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
/// 判断是否有网络
|
/// 判断是否有网络
|
||||||
Future<bool> judgeTheNetwork() async {
|
Future<bool> judgeTheNetwork() async {
|
||||||
@ -300,7 +299,7 @@ class LockMainLogic extends BaseGetXController {
|
|||||||
super.onInit();
|
super.onInit();
|
||||||
checkWhetherPushIsEnabled();
|
checkWhetherPushIsEnabled();
|
||||||
_initSubscription();
|
_initSubscription();
|
||||||
connectListener();
|
// connectListener();
|
||||||
|
|
||||||
// AppLog.log('onInit() updateZoneOffsetsAndLanguages');
|
// AppLog.log('onInit() updateZoneOffsetsAndLanguages');
|
||||||
// updateZoneOffsetsAndLanguages();
|
// updateZoneOffsetsAndLanguages();
|
||||||
|
|||||||
@ -34,8 +34,7 @@ class StarLockMainPage extends StatefulWidget {
|
|||||||
State<StarLockMainPage> createState() => _StarLockMainPageState();
|
State<StarLockMainPage> createState() => _StarLockMainPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _StarLockMainPageState extends State<StarLockMainPage>
|
class _StarLockMainPageState extends State<StarLockMainPage> with BaseWidget, AutomaticKeepAliveClientMixin, WidgetsBindingObserver {
|
||||||
with BaseWidget, AutomaticKeepAliveClientMixin {
|
|
||||||
final LockMainLogic logic = Get.put(LockMainLogic());
|
final LockMainLogic logic = Get.put(LockMainLogic());
|
||||||
final LockMainState state = Get.find<LockMainLogic>().state;
|
final LockMainState state = Get.find<LockMainLogic>().state;
|
||||||
|
|
||||||
@ -243,6 +242,32 @@ class _StarLockMainPageState extends State<StarLockMainPage>
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
|
super.didChangeAppLifecycleState(state);
|
||||||
|
// AppLog.log('App--->state:$state');
|
||||||
|
switch (state) {
|
||||||
|
case AppLifecycleState.inactive:
|
||||||
|
// AppLog.log('App--->进入非活动状态');
|
||||||
|
break;
|
||||||
|
case AppLifecycleState.paused:
|
||||||
|
// AppLog.log('App--->进入后台');
|
||||||
|
BlueManage().disconnect();
|
||||||
|
break;
|
||||||
|
case AppLifecycleState.resumed:
|
||||||
|
// AppLog.log('App--->进入前台');
|
||||||
|
logic.pageNo = 1;
|
||||||
|
getHttpData();
|
||||||
|
break;
|
||||||
|
case AppLifecycleState.detached:
|
||||||
|
// AppLog.log('App--->挂起');
|
||||||
|
break;
|
||||||
|
case AppLifecycleState.hidden:
|
||||||
|
// AppLog.log('App--->隐藏');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
|
|||||||
@ -27,9 +27,15 @@ class LockMainXHJLogic extends BaseGetXController {
|
|||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
|
|
||||||
final String languageCodeAndCountryCode = entity.data!.lang ?? 'zh-CN';
|
final String languageCodeAndCountryCode = entity.data!.lang ?? 'zh-CN';
|
||||||
final List<String> parts = languageCodeAndCountryCode.split('-');
|
if(languageCodeAndCountryCode.contains('-')){
|
||||||
final Locale locale = Locale(parts[0], parts[1]);
|
final List<String> parts = languageCodeAndCountryCode.split('-');
|
||||||
Get.updateLocale(locale);
|
final Locale locale = Locale(parts[0], parts[1]);
|
||||||
|
Get.updateLocale(locale);
|
||||||
|
}else if(languageCodeAndCountryCode.contains('_')){
|
||||||
|
final List<String> parts = languageCodeAndCountryCode.split('_');
|
||||||
|
final Locale locale = Locale(parts[0], parts[1]);
|
||||||
|
Get.updateLocale(locale);
|
||||||
|
}
|
||||||
|
|
||||||
Storage.setBool(saveIsVip, entity.data!.isVip == 1);
|
Storage.setBool(saveIsVip, entity.data!.isVip == 1);
|
||||||
if (entity.data!.deviceId != null) {
|
if (entity.data!.deviceId != null) {
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import 'app_settings/app_settings.dart';
|
|
||||||
import 'flavors.dart';
|
import 'flavors.dart';
|
||||||
|
|
||||||
import 'main.dart' as runner;
|
import 'main.dart' as runner;
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.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 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
@ -97,7 +98,7 @@ class _AboutPageState extends State<AboutPage> {
|
|||||||
endIndent: 20.w,
|
endIndent: 20.w,
|
||||||
),
|
),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel: '隐私政策'.tr,
|
leftTitel: '用户协议'.tr,
|
||||||
rightTitle: '',
|
rightTitle: '',
|
||||||
isHaveLine: false,
|
isHaveLine: false,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
@ -210,14 +211,17 @@ class _AboutPageState extends State<AboutPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
ClipRRect(
|
GestureDetector(
|
||||||
borderRadius: BorderRadius.circular(20.r),
|
onTap: logic.handleTap,
|
||||||
child: Image.asset(
|
child: ClipRRect(
|
||||||
F.sw(
|
borderRadius: BorderRadius.circular(20.r),
|
||||||
skyCall: () => 'images/icon_main_sky_1024.png',
|
child: Image.asset(
|
||||||
xhjCall: () => 'images/icon_main_xhj_1024.png'),
|
F.sw(
|
||||||
width: 160.w,
|
skyCall: () => 'images/icon_main_sky_1024.png',
|
||||||
height: 160.w),
|
xhjCall: () => 'images/icon_main_xhj_1024.png'),
|
||||||
|
width: 160.w,
|
||||||
|
height: 160.w),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h),
|
SizedBox(height: 20.h),
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
@ -9,10 +9,11 @@ import 'package:star_lock/mine/mall/lockMall_entity.dart';
|
|||||||
import 'package:star_lock/mine/mall/lockMall_state.dart';
|
import 'package:star_lock/mine/mall/lockMall_state.dart';
|
||||||
import 'package:star_lock/mine/mall/webview/webview_logic.dart';
|
import 'package:star_lock/mine/mall/webview/webview_logic.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/pay/wx_pay_tool.dart';
|
|
||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
import '../../tools/baseGetXController.dart';
|
import '../../tools/baseGetXController.dart';
|
||||||
|
import '../../tools/wechat/pay/wx_pay_tool.dart';
|
||||||
|
import '../../tools/wechat/wechatManageTool.dart';
|
||||||
|
|
||||||
class LockMallLogic extends BaseGetXController {
|
class LockMallLogic extends BaseGetXController {
|
||||||
late LockMallState state;
|
late LockMallState state;
|
||||||
@ -73,7 +74,10 @@ class LockMallLogic extends BaseGetXController {
|
|||||||
switch (action) {
|
switch (action) {
|
||||||
case 'WechatPayParams':
|
case 'WechatPayParams':
|
||||||
//微信支付
|
//微信支付
|
||||||
wxPay(data, callFun);
|
WechatManageTool.getAppInfo(() {
|
||||||
|
wxPay(data, callFun);
|
||||||
|
});
|
||||||
|
// wxPay(data, callFun);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,13 +5,14 @@ import 'package:get/get.dart';
|
|||||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/mine/mine/starLockMine_state.dart';
|
import 'package:star_lock/mine/mine/starLockMine_state.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
|
|
||||||
import '../../appRouters.dart';
|
import '../../appRouters.dart';
|
||||||
import '../../app_settings/app_colors.dart';
|
import '../../app_settings/app_colors.dart';
|
||||||
import '../../baseWidget.dart';
|
import '../../baseWidget.dart';
|
||||||
import '../../tools/customNetworkImage.dart';
|
import '../../tools/customNetworkImage.dart';
|
||||||
import '../../tools/submitBtn.dart';
|
import '../../tools/submitBtn.dart';
|
||||||
|
import '../../tools/wechat/wechatManageTool.dart';
|
||||||
import 'starLockMine_logic.dart';
|
import 'starLockMine_logic.dart';
|
||||||
|
|
||||||
class StarLockMinePage extends StatefulWidget {
|
class StarLockMinePage extends StatefulWidget {
|
||||||
@ -207,7 +208,7 @@ class StarLockMinePageState extends State<StarLockMinePage> with BaseWidget {
|
|||||||
mineItem('images/mine/icon_mine_main_shoppingcart.png',
|
mineItem('images/mine/icon_mine_main_shoppingcart.png',
|
||||||
'客服'.tr, () {
|
'客服'.tr, () {
|
||||||
Get.back();
|
Get.back();
|
||||||
CustomerTool.openCustomerService();
|
WechatManageTool.getAppInfo(CustomerTool.openCustomerService);
|
||||||
}),
|
}),
|
||||||
mineItem('images/mine/icon_mine_main_about.png', '关于'.tr, () {
|
mineItem('images/mine/icon_mine_main_about.png', '关于'.tr, () {
|
||||||
Get.back();
|
Get.back();
|
||||||
|
|||||||
@ -102,8 +102,8 @@ class MineSetLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//退出登录请求
|
//退出登录请求
|
||||||
Future<void> userLogoutRequest() async {
|
Future<void> userLogoutRequest() async {
|
||||||
var getPushDeviceID = '';
|
String getPushDeviceID = '';
|
||||||
await Storage.getString(pushDeviceID).then((value) {
|
await Storage.getString(pushDeviceID).then((String? value) {
|
||||||
if (value != null && value.isNotEmpty) {
|
if (value != null && value.isNotEmpty) {
|
||||||
getPushDeviceID = value;
|
getPushDeviceID = value;
|
||||||
}
|
}
|
||||||
@ -118,7 +118,7 @@ class MineSetLogic extends BaseGetXController {
|
|||||||
|
|
||||||
BlueManage().disconnect();
|
BlueManage().disconnect();
|
||||||
XSJPushProvider().initLocalNotification(isCancelLocalPush: true);
|
XSJPushProvider().initLocalNotification(isCancelLocalPush: true);
|
||||||
Get.offNamedUntil(Routers.starLockLoginPage, (route) => false);
|
Get.offNamedUntil(Routers.starLockLoginPage, (Route route) => false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ class MineSetLogic extends BaseGetXController {
|
|||||||
|
|
||||||
//更新触摸开锁
|
//更新触摸开锁
|
||||||
Future<void> updateTouchUnlockRequest() async {
|
Future<void> updateTouchUnlockRequest() async {
|
||||||
ExpireLockListEntity entity = await ApiRepository.to
|
final ExpireLockListEntity entity = await ApiRepository.to
|
||||||
.setTouchUnlockFlag(state.isTouchUnlock.value == true ? '1' : '2');
|
.setTouchUnlockFlag(state.isTouchUnlock.value == true ? '1' : '2');
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
showToast('设置成功'.tr);
|
showToast('设置成功'.tr);
|
||||||
@ -141,16 +141,18 @@ class MineSetLogic extends BaseGetXController {
|
|||||||
StreamSubscription? _getNumberEvent;
|
StreamSubscription? _getNumberEvent;
|
||||||
void _initLoadDataAction() {
|
void _initLoadDataAction() {
|
||||||
// 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus
|
// 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus
|
||||||
_getNumberEvent = eventBus.on<ChangeLanguageBlockLastLanguageEvent>().listen((event) {
|
_getNumberEvent = eventBus.on<ChangeLanguageBlockLastLanguageEvent>().listen((ChangeLanguageBlockLastLanguageEvent event) {
|
||||||
state.currentLanguage.value = _getCurrentLanguage();
|
state.currentLanguage.value = _getCurrentLanguage();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
String _getCurrentLanguage() {
|
String _getCurrentLanguage() {
|
||||||
String currentLanguage = ExtensionLanguageType.fromLocale(appDept.deptSupportedLocales.where((Locale element) =>
|
String? languageCode = StoreService.to.getLanguageCode();
|
||||||
element.languageCode == StoreService.to.getLanguageCode()).first).lanTitle;
|
if(languageCode!.isEmpty){
|
||||||
// AppLog.log('currentLanguagecurrentLanguage:$currentLanguage StoreService.to.getLanguageCode():${StoreService.to.getLanguageCode()}');
|
languageCode = Get.deviceLocale!.languageCode;
|
||||||
return currentLanguage ??'';
|
}
|
||||||
|
final String currentLanguage = ExtensionLanguageType.fromLocale(appDept.deptSupportedLocales.where((Locale element) => element.languageCode == languageCode).first).lanTitle;
|
||||||
|
return currentLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -10,13 +10,14 @@ import 'package:permission_handler/permission_handler.dart';
|
|||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
import '../../../appRouters.dart';
|
import '../../../appRouters.dart';
|
||||||
import '../../../app_settings/app_colors.dart';
|
import '../../../app_settings/app_colors.dart';
|
||||||
import '../../../tools/commonItem.dart';
|
import '../../../tools/commonItem.dart';
|
||||||
import '../../../tools/showTipView.dart';
|
import '../../../tools/showTipView.dart';
|
||||||
import '../../../tools/submitBtn.dart';
|
import '../../../tools/submitBtn.dart';
|
||||||
import '../../../tools/titleAppBar.dart';
|
import '../../../tools/titleAppBar.dart';
|
||||||
|
import '../../../tools/wechat/wechatManageTool.dart';
|
||||||
import '../../../translations/trans_lib.dart';
|
import '../../../translations/trans_lib.dart';
|
||||||
|
|
||||||
class MineSetPage extends StatefulWidget {
|
class MineSetPage extends StatefulWidget {
|
||||||
@ -366,7 +367,9 @@ class _MineSetPageState extends State<MineSetPage>
|
|||||||
leftTitel: '客服'.tr,
|
leftTitel: '客服'.tr,
|
||||||
isHaveLine: widget.showAbout,
|
isHaveLine: widget.showAbout,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
action: CustomerTool.openCustomerService,
|
action: (){
|
||||||
|
WechatManageTool.getAppInfo(CustomerTool.openCustomerService);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
if (widget.showAbout)
|
if (widget.showAbout)
|
||||||
CommonItem(
|
CommonItem(
|
||||||
|
|||||||
@ -3,7 +3,6 @@ import 'dart:convert';
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:fluwx/fluwx.dart';
|
import 'package:fluwx/fluwx.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
|
||||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/mine/mall/webview/webview_logic.dart';
|
import 'package:star_lock/mine/mall/webview/webview_logic.dart';
|
||||||
@ -11,9 +10,11 @@ import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFe
|
|||||||
import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFeaturesWeb_state.dart';
|
import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFeaturesWeb_state.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/pay/wx_pay_tool.dart';
|
|
||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
|
import '../../../tools/wechat/pay/wx_pay_tool.dart';
|
||||||
|
import '../../../tools/wechat/wechatManageTool.dart';
|
||||||
|
|
||||||
class AdvancedFeaturesWebLogic extends BaseGetXController {
|
class AdvancedFeaturesWebLogic extends BaseGetXController {
|
||||||
late AdvancedFeaturesWebState state = AdvancedFeaturesWebState();
|
late AdvancedFeaturesWebState state = AdvancedFeaturesWebState();
|
||||||
|
|
||||||
@ -86,7 +87,10 @@ class AdvancedFeaturesWebLogic extends BaseGetXController {
|
|||||||
switch (action) {
|
switch (action) {
|
||||||
case 'WechatPayParams':
|
case 'WechatPayParams':
|
||||||
//微信支付
|
//微信支付
|
||||||
wxPay(data, callFun);
|
WechatManageTool.getAppInfo(() {
|
||||||
|
wxPay(data, callFun);
|
||||||
|
});
|
||||||
|
// wxPay(data, callFun);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,6 @@ import 'package:star_lock/app_settings/app_settings.dart';
|
|||||||
|
|
||||||
FutureOr<Request> requestLogInterceptor(Request request) async {
|
FutureOr<Request> requestLogInterceptor(Request request) async {
|
||||||
// AppLog.log('GET HTTP REQUEST \n${request.url} \n${request.headers} ${request.toString()} ');
|
// AppLog.log('GET HTTP REQUEST \n${request.url} \n${request.headers} ${request.toString()} ');
|
||||||
AppLog.log('请求头:${request.headers.toString()}');
|
// AppLog.log('请求头:${request.headers.toString()}');
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import 'package:star_lock/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart';
|
|||||||
import 'package:star_lock/mine/about/debug/debug_tool.dart';
|
import 'package:star_lock/mine/about/debug/debug_tool.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
import 'package:star_lock/tools/appFirstEnterHandle.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
|
|
||||||
import '../main/lockMian/lockMain/lockMain_page.dart';
|
import '../main/lockMian/lockMain/lockMain_page.dart';
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
// Audio player task implementation
|
// Audio player task implementation
|
||||||
import 'package:audio_service/audio_service.dart';
|
// import 'package:audio_service/audio_service.dart';
|
||||||
|
|
||||||
class AudioPlayerTask extends BackgroundAudioTask {
|
// class AudioPlayerTask extends BackgroundAudioTask {
|
||||||
@override
|
// @override
|
||||||
Future<void> onStart(Map<String, dynamic>? params) async {
|
// Future<void> onStart(Map<String, dynamic>? params) async {
|
||||||
// Load and play audio here
|
// // Load and play audio here
|
||||||
// Example:
|
// // Example:
|
||||||
// AudioPlayer audioPlayer = AudioPlayer();
|
// // AudioPlayer audioPlayer = AudioPlayer();
|
||||||
// await audioPlayer.play('path_to_audio.mp3');
|
// // await audioPlayer.play('path_to_audio.mp3');
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@override
|
// @override
|
||||||
Future<void> onStop() async {
|
// Future<void> onStop() async {
|
||||||
// Stop audio playback and clean up resources
|
// // Stop audio playback and clean up resources
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@override
|
// @override
|
||||||
Future<void> onPause() async {
|
// Future<void> onPause() async {
|
||||||
// Pause audio playback
|
// // Pause audio playback
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|||||||
@ -6,20 +6,16 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
import 'package:star_lock/app_settings/app_colors.dart';
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
|
||||||
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/app_get_version.dart';
|
import 'package:star_lock/login/login/app_get_version.dart';
|
||||||
import 'package:star_lock/login/login/starLock_login_logic.dart';
|
import 'package:star_lock/login/login/starLock_login_logic.dart';
|
||||||
import 'package:star_lock/main.dart';
|
import 'package:star_lock/main.dart';
|
||||||
import 'package:star_lock/network/api_repository.dart';
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
import 'package:star_lock/tools/customer_tool.dart';
|
|
||||||
import 'package:star_lock/tools/pay/wx_pay_tool.dart';
|
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
|
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||||
|
|
||||||
import '../versionUndate/versionUndateTool.dart';
|
import '../versionUndate/versionUndateTool.dart';
|
||||||
import 'bugly/bugly_tool.dart';
|
|
||||||
import 'push/xs_jPhush.dart';
|
|
||||||
|
|
||||||
class AppFirstEnterHandle {
|
class AppFirstEnterHandle {
|
||||||
Future<void> getAppFirstEnter(String flagStr) async {
|
Future<void> getAppFirstEnter(String flagStr) async {
|
||||||
@ -29,7 +25,6 @@ class AppFirstEnterHandle {
|
|||||||
if (getFlag != isAgreePrivacy) {
|
if (getFlag != isAgreePrivacy) {
|
||||||
await showPrivacyAgreementAlert();
|
await showPrivacyAgreementAlert();
|
||||||
}
|
}
|
||||||
getAppInfo();
|
|
||||||
await privacySDKInitialization();
|
await privacySDKInitialization();
|
||||||
if (Get.isRegistered<StarLockLoginLogic>()) {
|
if (Get.isRegistered<StarLockLoginLogic>()) {
|
||||||
Get.find<StarLockLoginLogic>().flushedDeviceInfo();
|
Get.find<StarLockLoginLogic>().flushedDeviceInfo();
|
||||||
@ -69,13 +64,6 @@ class AppFirstEnterHandle {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> getAppInfo() async {
|
|
||||||
// AppLog.log('AppFirstEnterHandle调用了获取App信息接口');
|
|
||||||
final GetAppInfo entity = await ApiRepository.to.getAppInfo();
|
|
||||||
CustomerTool.init(entity.data?.wechatServiceUrl ?? '');
|
|
||||||
WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!);
|
|
||||||
}
|
|
||||||
|
|
||||||
//默认布局
|
//默认布局
|
||||||
Widget _defaultPrivacyAgreementAlert(BuildContext context) {
|
Widget _defaultPrivacyAgreementAlert(BuildContext context) {
|
||||||
return CupertinoAlertDialog(
|
return CupertinoAlertDialog(
|
||||||
|
|||||||
24
lib/tools/wechat/wechatManageTool.dart
Normal file
24
lib/tools/wechat/wechatManageTool.dart
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import '../../login/login/app_get_version.dart';
|
||||||
|
import '../../network/api_repository.dart';
|
||||||
|
import 'customer_tool.dart';
|
||||||
|
import 'pay/wx_pay_tool.dart';
|
||||||
|
|
||||||
|
class WechatManageTool {
|
||||||
|
static void init(String wechatServiceUrl) {
|
||||||
|
// CustomerTool.init(wechatServiceUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<void> getAppInfo(void Function() action) async {
|
||||||
|
// AppLog.log('AppFirstEnterHandle调用了获取App信息接口');
|
||||||
|
final GetAppInfo entity = await ApiRepository.to.getAppInfo();
|
||||||
|
if(entity.errorCode == 0) {
|
||||||
|
CustomerTool.init(entity.data?.wechatServiceUrl ?? '');
|
||||||
|
WxPayTool.setAssociationUrl(entity.data!.appSiteUrl!);
|
||||||
|
action();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,47 +2,10 @@ part of lib_trans;
|
|||||||
|
|
||||||
class TranslationMessage extends Translations {
|
class TranslationMessage extends Translations {
|
||||||
|
|
||||||
// LAN_ZH_CN="zh" # 简体中文
|
|
||||||
// LAN_EN_US="en" # 英文
|
|
||||||
// LAN_ZH_TW="tw" # 繁体中文
|
|
||||||
// LAN_Fr_FR="fr" # 法语
|
|
||||||
// LAN_RU_RU="ru" # 俄语
|
|
||||||
// LAN_DE_DE="de" # 德语
|
|
||||||
// LAN_ZH_JA="ja" # 日语
|
|
||||||
// LAN_ZH_KO="ko" # 韩语
|
|
||||||
// LAN_ZH_IT="it" # 意大利语
|
|
||||||
// #LAN_ZH_TW="uk" # 乌克兰语
|
|
||||||
// LAN_ZH_PT="pt" # 葡萄牙语
|
|
||||||
// LAN_ZH_ES="es" # 西班牙语
|
|
||||||
// LAN_ZH_AR="ar" # 阿拉伯语
|
|
||||||
// LAN_ZH_vi="vi" # 越南语
|
|
||||||
// LAN_ZH_MS="ms" # 马莱语
|
|
||||||
// LAN_ZH_NL="nl" # 荷兰语
|
|
||||||
// LAN_ZH_RO="ro" # 罗马尼亚语
|
|
||||||
// LAN_ZH_LT="lt" # 立陶宛语
|
|
||||||
// LAN_ZH_SV="sv" # 瑞典语
|
|
||||||
// LAN_ZH_ET="et" # 爱沙尼亚语
|
|
||||||
// LAN_ZH_PL="pl" # 波兰语
|
|
||||||
// LAN_ZH_SK="sk" # 斯洛伐克语
|
|
||||||
// LAN_ZH_CS="cs" # 捷克语
|
|
||||||
// LAN_ZH_EL="el" # 希腊语
|
|
||||||
// LAN_ZH_HE="he" # 希伯来语
|
|
||||||
// #LAN_ZH_TW="sr" # 塞尔维亚文
|
|
||||||
// LAN_ZH_TR="tr" # 土耳其语
|
|
||||||
// LAN_ZH_HU="hu" # 匈牙利语
|
|
||||||
// LAN_ZH_BG="bg" # 保加利亚语
|
|
||||||
// LAN_ZH_KK="kk" # 哈萨克斯坦语 === 哈萨克语
|
|
||||||
// LAN_ZH_BN="bn" # 孟加拉语
|
|
||||||
// LAN_ZH_HBS="hr" # 克罗地亚语
|
|
||||||
// LAN_ZH_TH="th" # 泰语
|
|
||||||
// LAN_ZH_ID="id" # 印度尼西亚语
|
|
||||||
// LAN_ZH_FI="fi" # 芬兰语
|
|
||||||
// LAN_ZH_DA="da" # 丹麦语
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Map<String, Map<String, String>> get keys => {
|
Map<String, Map<String, String>> get keys => {
|
||||||
'en_US' : TranslationLoader.enDic,
|
|
||||||
'zh_CN': TranslationLoader.zhDic,
|
'zh_CN': TranslationLoader.zhDic,
|
||||||
|
'en_US' : TranslationLoader.enDic,
|
||||||
'zh_TW': TranslationLoader.twDic,
|
'zh_TW': TranslationLoader.twDic,
|
||||||
'fr_FR': TranslationLoader.frDic,
|
'fr_FR': TranslationLoader.frDic,
|
||||||
'ru_RU': TranslationLoader.ruDic,
|
'ru_RU': TranslationLoader.ruDic,
|
||||||
|
|||||||
@ -87,8 +87,10 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# 1.0.75+2024081001:锁定版本,上架商城
|
# 1.0.75+2024081001:锁定版本,上架商城
|
||||||
# 1.0.76+2024081201:锁定版本,上架商城--最新版本
|
# 1.0.76+2024081201:锁定版本,上架商城--最新版本
|
||||||
# 1.0.78+2024082701:测试国际化功能
|
# 1.0.78+2024082701:测试国际化功能
|
||||||
|
# 1.0.79+2024083001:测试所有国家国际化功能
|
||||||
|
# 1.0.79+2024083001:测试开完锁数据上传功能
|
||||||
|
|
||||||
version: 1.0.78+2024082701
|
version: 1.0.79+2024090201
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.12.0 <3.0.0'
|
sdk: '>=2.12.0 <3.0.0'
|
||||||
@ -220,7 +222,7 @@ dependencies:
|
|||||||
timelines: ^0.1.0
|
timelines: ^0.1.0
|
||||||
#侧滑删除
|
#侧滑删除
|
||||||
flutter_slidable: ^3.0.1
|
flutter_slidable: ^3.0.1
|
||||||
audio_service: ^0.18.12
|
# audio_service: ^0.18.12
|
||||||
app_settings: ^5.1.1
|
app_settings: ^5.1.1
|
||||||
flutter_local_notifications: ^17.0.0
|
flutter_local_notifications: ^17.0.0
|
||||||
fluwx: ^4.5.5
|
fluwx: ^4.5.5
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user