From fbb102eca34505d9a5a7c497676411adc2bf81fe Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Tue, 9 Apr 2024 09:49:30 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=94=81=E6=B6=88=E6=81=AF=E8=AE=BE=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_page.dart | 62 ++++++++++++------- .../lockSet/lockSet/lockSet_page.dart | 4 +- .../msgNotification/msgNotification_page.dart | 6 +- .../msgNotification_state.dart | 9 +++ .../openDoorNotify/openDoorNotify_logic.dart | 11 +++- .../openDoorNotify/openDoorNotify_page.dart | 2 + .../openDoorNotify/openDoorNotify_state.dart | 9 +++ star_lock/lib/network/api.dart | 3 + star_lock/lib/network/api_provider.dart | 7 +++ star_lock/lib/network/api_repository.dart | 7 +++ star_lock/lib/talk/call/callTalk.dart | 6 +- 11 files changed, 95 insertions(+), 31 deletions(-) diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 62ded510..db14ee45 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -71,7 +71,8 @@ class _LockDetailPageState extends State StreamSubscription? _lockRefreshLockDetailInfoDataEvent; void _initRefreshLockDetailInfoDataEventAction() { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus - _lockRefreshLockDetailInfoDataEvent = eventBus.on().listen((event) { + _lockRefreshLockDetailInfoDataEvent = + eventBus.on().listen((event) { setState(() {}); }); } @@ -110,12 +111,14 @@ class _LockDetailPageState extends State BlueManage().connectDeviceName = state.keyInfos.value.bluetooth!.bluetoothDeviceName!; - List publicKeyData = state.keyInfos.value.bluetooth!.publicKey!.cast(); + List publicKeyData = + state.keyInfos.value.bluetooth!.publicKey!.cast(); var saveStrList = changeIntListToStringList(publicKeyData); Storage.setStringList(saveBluePublicKey, saveStrList); // 私钥 - List privateKeyData = state.keyInfos.value.bluetooth!.privateKey!.cast(); + List privateKeyData = + state.keyInfos.value.bluetooth!.privateKey!.cast(); var savePrivateKeyList = changeIntListToStringList(privateKeyData); Storage.setStringList(saveBluePrivateKey, savePrivateKeyList); @@ -138,9 +141,19 @@ class _LockDetailPageState extends State children: [ Visibility( visible: - ((state.keyInfos.value.keyType == XSConstantMacro.keyTypeTime || state.keyInfos.value.keyType == XSConstantMacro.keyTypeLoop) && // 限时、循环 - (DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <= 15 && DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >= 0) && // 0到30天 - (state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse || state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusWaitReceive) // 正常使用、待接收 + ((state.keyInfos.value.keyType == XSConstantMacro.keyTypeTime || + state.keyInfos.value.keyType == + XSConstantMacro.keyTypeLoop) && // 限时、循环 + (DateTool().compareTimeGetDaysFromNow( + state.keyInfos.value.endDate!) <= + 15 && + DateTool().compareTimeGetDaysFromNow( + state.keyInfos.value.endDate!) >= + 0) && // 0到30天 + (state.keyInfos.value.keyStatus == + XSConstantMacro.keyStatusNormalUse || + state.keyInfos.value.keyStatus == + XSConstantMacro.keyStatusWaitReceive) // 正常使用、待接收 ) ? true : false, @@ -234,9 +247,8 @@ class _LockDetailPageState extends State GestureDetector( onTap: () { // logic.getStarLockStatus(); - ShowTipView().showSureAlertDialog("${"锁更新时间:".tr}${DateTool().dateToYMDHNString(state - .keyInfos.value.electricQuantityDate! - .toString())}"); + ShowTipView().showSureAlertDialog( + "${"锁更新时间:".tr}${DateTool().dateToYMDHNString(state.keyInfos.value.electricQuantityDate!.toString())}"); }, child: Row( mainAxisAlignment: MainAxisAlignment.end, @@ -263,11 +275,16 @@ class _LockDetailPageState extends State Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - Image.asset(showElectricIcon(state.electricQuantity.value), width: 30.w, height: 24.w), + Image.asset(showElectricIcon(state.electricQuantity.value), + width: 30.w, height: 24.w), SizedBox(width: 2.w), - Text("--%", style: TextStyle(fontSize: 18.sp, color: AppColors.darkGrayTextColor)), + Text("--%", + style: TextStyle( + fontSize: 18.sp, + color: AppColors.darkGrayTextColor)), SizedBox(width: 2.w), - Icon(Icons.info, // 使用内置的 warning 图标,它是一个叹号 + Icon( + Icons.info, // 使用内置的 warning 图标,它是一个叹号 color: AppColors.mainColor, // 设置图标颜色为红色 size: 25.w, // 设置图标大小为 30 ), @@ -561,11 +578,8 @@ class _LockDetailPageState extends State })); // 设置 - showWidgetArr.add(bottomItem( - 'images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, - true, - true, () { + showWidgetArr.add(bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, true, () { Get.toNamed(Routers.lockSetPage, arguments: { "lockId": state.keyInfos.value.lockId, "isOnlyOneData": state.isOnlyOneData @@ -729,17 +743,16 @@ class _LockDetailPageState extends State TranslationLoader.lanKeys!.messageReminding!.tr, state.openDoorBtnisUneable.value, state.bottomBtnisEable.value, () { - Get.toNamed(Routers.msgNotificationPage); + Get.toNamed(Routers.msgNotificationPage, arguments: { + "lockId": state.keyInfos.value.lockId, + }); }), ); endWiddget.add( // 设置 - bottomItem( - 'images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, - true, - true, () { + bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, true, () { // logic.clickItemBtnAction(10); Get.toNamed(Routers.lockSetPage, arguments: { "lockId": state.keyInfos.value.lockId, @@ -752,7 +765,8 @@ class _LockDetailPageState extends State } // - Widget bottomItem(String iconUrl, String name, bool openDoorBtnisUneable, bool bottomBtnisEable, Function() onClick) { + Widget bottomItem(String iconUrl, String name, bool openDoorBtnisUneable, + bool bottomBtnisEable, Function() onClick) { var width = 42.w; var height = 42.h; return GestureDetector( diff --git a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart index f923f88d..5fc8c9e2 100644 --- a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart @@ -371,7 +371,9 @@ class _LockSetPageState extends State with RouteAware { isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.msgNotificationPage); + Get.toNamed(Routers.msgNotificationPage, arguments: { + 'lockSetInfoData': state.lockSetInfoData.value + }); })), //猫眼设置 Visibility( diff --git a/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_page.dart b/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_page.dart index d7e02d58..d0ef33b4 100644 --- a/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_page.dart @@ -67,11 +67,13 @@ class _MsgNotificationPageState extends State { // ), CommonItem( leftTitel: '开门通知', - rightTitle: "已启用", + rightTitle: "", isHaveLine: true, isHaveDirection: true, action: () { - Get.toNamed(Routers.openDoorNotifyPage); + Get.toNamed(Routers.openDoorNotifyPage, arguments: { + 'lockSetInfoData': state.lockSetInfoData.value, + }); }, ), CommonItem( diff --git a/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_state.dart b/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_state.dart index d0614ba5..8319dc69 100644 --- a/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_state.dart +++ b/star_lock/lib/main/lockDetail/lockSet/msgNotification/msgNotification/msgNotification_state.dart @@ -1,9 +1,18 @@ import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; class MsgNotificationState { + var lockSetInfoData = LockSetInfoData().obs; var isCheck = false.obs; var isLeaveHomeOpenDoor = false.obs; //离家开门 var isDoorNotShut = false.obs; //门未关好 var isSomeoneRing = false.obs; //有人按门铃 var isSomeoneAppeared = false.obs; //有人出现在门口 + + MsgNotificationState() { + Map map = Get.arguments; + if (map['lockSetInfoData'] != null) { + lockSetInfoData.value = map['lockSetInfoData']; + } + } } diff --git a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_logic.dart b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_logic.dart index 4bac0f4b..8cc3e58b 100644 --- a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_logic.dart @@ -1,7 +1,16 @@ - +import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/versionUndate/versionUndate_entity.dart'; import 'openDoorNotify_state.dart'; class OpenDoorNotifyLogic extends BaseGetXController { final OpenDoorNotifyState state = OpenDoorNotifyState(); + + // 获取锁消息设置 + void getLockNoticeSetting() async { + VersionUndateEntity entity = await ApiRepository.to.getLockNoticeSetting( + lockId: state.lockSetInfoData.value.lockId!, + ); + if (entity.errorCode!.codeIsSuccessful) {} + } } diff --git a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_page.dart b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_page.dart index c24a07e3..4d2c39e0 100644 --- a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_page.dart +++ b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_page.dart @@ -22,6 +22,8 @@ class _OpenDoorNotifyPageState extends State { @override void initState() { super.initState(); + + logic.getLockNoticeSetting(); } @override diff --git a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_state.dart b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_state.dart index 1a0e4265..08e520d9 100644 --- a/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_state.dart +++ b/star_lock/lib/main/lockDetail/lockSet/msgNotification/openDoorNotify/openDoorNotify_state.dart @@ -1,7 +1,16 @@ import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; class OpenDoorNotifyState { + var lockSetInfoData = LockSetInfoData().obs; var pageNum = 1.obs; //请求页码 final pageSize = 20.obs; //请求每页数据条数 final itemDataList = [].obs; + + OpenDoorNotifyState() { + Map map = Get.arguments; + if (map['lockSetInfoData'] != null) { + lockSetInfoData.value = map['lockSetInfoData']; + } + } } diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index 11a71eac..a13b55d9 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -190,4 +190,7 @@ abstract class Api { '/lockSetting/updateCatEyeConfig'; //猫眼相关设置 final String updateFaceConfigURL = '/lockSetting/updateFaceConfig'; //面容相关设置 + + final String getLockNoticeSettingURL = + '/lockSetting/getLockNoticeSetting'; //获取锁消息设置 } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index fb4b5f74..2b176521 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -1747,6 +1747,13 @@ class ApiProvider extends BaseProvider { 'lockId': lockId, 'faceAutoLightScreen': faceAutoLightScreen, })); + + // 获取锁消息设置 + Future getLockNoticeSetting(int lockId) => post( + getLockNoticeSettingURL.toUrl, + jsonEncode({ + 'lockId': lockId, + })); } extension ExtensionString on String { diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 1c8b799e..e366157a 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -1779,4 +1779,11 @@ class ApiRepository { lockId, faceAutoLightScreen); return VersionUndateEntity.fromJson(res.body); } + + // 获取锁消息设置 + Future getLockNoticeSetting( + {required int lockId}) async { + final res = await apiProvider.getLockNoticeSetting(lockId); + return VersionUndateEntity.fromJson(res.body); + } } diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index d82e31e5..86cd4a5c 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -60,7 +60,7 @@ class CallTalk { } // 视频数据 else { - print('********视频数据来了'); + // print('********视频数据来了'); // 音视频数据开始下标 var bagLen = bb[POS_blen + 2] + bb[POS_blen + 3] * 256; // print('音视频数据开始下标 bagLen:$bagLen'); @@ -101,8 +101,8 @@ class CallTalk { var getList = bb.sublist(POS_data, bb.length); iframe!.bb!.addAll(getList); } - print( - 'iframe.bagNum: ${iframe!.bagNum} iframe.bagReceive: ${iframe!.bagReceive}'); + // print( + // 'iframe.bagNum: ${iframe!.bagNum} iframe.bagReceive: ${iframe!.bagReceive}'); // 如果收到的包数等于总包数,说明这一帧数据已经接收完毕 if (iframe!.bagNum == iframe!.bagReceive) { From 39f4baaae02c14e521108b725f9c83e634b08981 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Tue, 9 Apr 2024 10:25:23 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E8=A7=A3=E5=86=B3=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E9=A1=B5=E9=9D=A2=E8=8E=B7=E5=8F=96=E7=84=A6?= =?UTF-8?q?=E7=82=B9=E6=97=B6=E5=B8=83=E5=B1=80=E6=BA=A2=E5=87=BA=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sendEmailNotification_page.dart | 136 +++++++++--------- 1 file changed, 64 insertions(+), 72 deletions(-) diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart index d43f16af..5f22bd51 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart @@ -12,8 +12,7 @@ class SendEmailNotificationPage extends StatefulWidget { const SendEmailNotificationPage({Key? key}) : super(key: key); @override - State createState() => - _SendEmailNotificationPageState(); + State createState() => _SendEmailNotificationPageState(); } class _SendEmailNotificationPageState extends State { @@ -21,87 +20,80 @@ class _SendEmailNotificationPageState extends State { @override Widget build(BuildContext context) { - _emailController.text = - "亲爱的用户 \n\n你收到电子钥匙,请试用APP(www.baidu.com)或小程序开锁 \n\n星锁"; + _emailController.text = "亲爱的用户 \n\n你收到电子钥匙,请试用APP(www.baidu.com)或小程序开锁 \n\n星锁"; return Scaffold( backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( - barTitle: "邮件通知", - haveBack: true, - backgroundColor: AppColors.mainColor), - body: Column( - children: [ - CommonItem( - leftTitel: TranslationLoader.lanKeys!.receiver!.tr, - rightTitle: "786612630@qq.com", - isHaveLine: true, - ), - CommonItem( - leftTitel: "类型", - rightTitle: "个人邮件", - isHaveDirection: true, - ), - Container(height: 10.h), - CommonItem( - leftTitel: "模板", - rightTitle: "默认模板", + appBar: TitleAppBar(barTitle: "邮件通知", haveBack: true, backgroundColor: AppColors.mainColor), + body: SingleChildScrollView( + child: Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.receiver!.tr, + rightTitle: "786612630@qq.com", + isHaveLine: true, + ), + CommonItem( + leftTitel: "类型", + rightTitle: "个人邮件", isHaveDirection: true, - isHaveLine: true), - Container( - height: 360.h, - color: Colors.white, - padding: EdgeInsets.only( - left: 20.w, right: 20.w, top: 20.h, bottom: 20.h), - child: TextField( - maxLines: 8, - maxLength: 1000, - textAlign: TextAlign.start, - controller: _emailController, - style: TextStyle( - color: Colors.black, - fontSize: 22.sp, - ), - decoration: InputDecoration( - border: OutlineInputBorder( - ///设置边框四个角的弧度 - borderRadius: BorderRadius.all(Radius.circular(20.h)), - - ///用来配置边框的样式 - borderSide: const BorderSide( - ///设置边框的颜色 - color: Color(0xffB2B2B2), - - ///设置边框的粗细 - width: 0.5, - ), + ), + Container(height: 10.h), + CommonItem(leftTitel: "模板", rightTitle: "默认模板", isHaveDirection: true, isHaveLine: true), + Container( + height: 360.h, + color: Colors.white, + padding: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.h, bottom: 20.h), + child: TextField( + maxLines: 8, + maxLength: 1000, + textAlign: TextAlign.start, + controller: _emailController, + style: TextStyle( + color: Colors.black, + fontSize: 22.sp, ), + decoration: InputDecoration( + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), - ///用来配置输入框获取焦点时的颜色 - focusedBorder: OutlineInputBorder( - ///设置边框四个角的弧度 - borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), - ///用来配置边框的样式 - borderSide: const BorderSide( - ///设置边框的颜色 - color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 0.5, + ), + ), - ///设置边框的粗细 - width: 1, + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + + ///设置边框的粗细 + width: 1, + ), ), ), ), ), - ), - Container(height: 40.h), - SubmitBtn( - btnName: '发送', - fontSize: 28.sp, - borderRadius: 20.w, - margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), - padding: EdgeInsets.only(top: 25.w, bottom: 25.w), - onClick: () {}), - ], + Container(height: 40.h), + SubmitBtn( + btnName: '发送', + fontSize: 28.sp, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: () {}), + ], + ), ), ); } From 98b6a23d4fcc196e7b5c314266b40cf0cdc8c7a1 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Tue, 9 Apr 2024 10:52:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=EF=BC=8C=E7=9B=B8=E5=86=8C=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E9=92=88=E5=AF=B9andriud33=E4=BB=A5=E4=B8=8B=E7=9A=84=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../minePersonInfo_page.dart | 85 +++++++------------ 1 file changed, 32 insertions(+), 53 deletions(-) diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart index ed5db138..419ba4fa 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart @@ -7,6 +7,7 @@ import 'package:get/get.dart'; import 'package:image_picker/image_picker.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/tools/custom_bottom_sheet.dart'; @@ -23,8 +24,7 @@ class MinePersonInfoPage extends StatefulWidget { State createState() => _MinePersonInfoPageState(); } -class _MinePersonInfoPageState extends State - with WidgetsBindingObserver { +class _MinePersonInfoPageState extends State with WidgetsBindingObserver { final logic = Get.put(MinePersonInfoLogic()); final state = Get.find().state; @@ -88,8 +88,7 @@ class _MinePersonInfoPageState extends State action: () async { //安卓平台下首次进入应用需向用户告知获取权限用途弹窗 if (Platform.isAndroid) { - AppFirstEnterHandle() - .getAppFirstEnter(context, isAgreeCamera); + AppFirstEnterHandle().getAppFirstEnter(context, isAgreeCamera); var getFlag = await Storage.getString(isAgreeCamera); if (getFlag == isAgreeCamera) { _openModalBottomSheet(); @@ -101,16 +100,13 @@ class _MinePersonInfoPageState extends State ), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.nickName!.tr, - rightTitle: state.mineInfoData.value.nickname != null - ? state.mineInfoData.value.nickname! - : "", + rightTitle: state.mineInfoData.value.nickname != null ? state.mineInfoData.value.nickname! : "", isHaveLine: true, isHaveDirection: true, action: () { - Navigator.pushNamed( - context, Routers.minePersonInfoEditNamePage, arguments: { - 'nickName': state.mineInfoData.value.nickname - }).then((value) => logic.getUserInfoRequest()); + Navigator.pushNamed(context, Routers.minePersonInfoEditNamePage, + arguments: {'nickName': state.mineInfoData.value.nickname}) + .then((value) => logic.getUserInfoRequest()); })), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.mobileNumber!.tr, @@ -122,16 +118,13 @@ class _MinePersonInfoPageState extends State action: () { //有手机号 则去修改手机号 否则去绑定新的手机号 isFrom:1 短信,2 邮箱 if (state.mineInfoData.value.mobile!.isNotEmpty) { - Navigator.pushNamed(context, Routers.mineUnbindPhoneOrEmailPage, arguments: { - 'mobile': state.mineInfoData.value.mobile!, - 'isFrom': '1' - }).then((value) => logic.getUserInfoRequest()); + Navigator.pushNamed(context, Routers.mineUnbindPhoneOrEmailPage, + arguments: {'mobile': state.mineInfoData.value.mobile!, 'isFrom': '1'}) + .then((value) => logic.getUserInfoRequest()); } else { - Navigator.pushNamed( - context, Routers.mineBindPhoneOrEmailPage, arguments: { - 'mobile': state.mineInfoData.value.mobile!, - 'isFrom': '1' - }).then((value) => logic.getUserInfoRequest()); + Navigator.pushNamed(context, Routers.mineBindPhoneOrEmailPage, + arguments: {'mobile': state.mineInfoData.value.mobile!, 'isFrom': '1'}) + .then((value) => logic.getUserInfoRequest()); } })), Obx(() => CommonItem( @@ -144,18 +137,13 @@ class _MinePersonInfoPageState extends State action: () { //有邮箱 则去修改邮箱 否则去绑定新的邮箱 isFrom:1 短信,2 邮箱 if (state.mineInfoData.value.email!.isNotEmpty) { - Navigator.pushNamed( - context, Routers.mineUnbindPhoneOrEmailPage, - arguments: { - 'isFrom': '2', - 'email': state.mineInfoData.value.email! - }).then((value) => logic.getUserInfoRequest()); + Navigator.pushNamed(context, Routers.mineUnbindPhoneOrEmailPage, + arguments: {'isFrom': '2', 'email': state.mineInfoData.value.email!}) + .then((value) => logic.getUserInfoRequest()); } else { - Navigator.pushNamed( - context, Routers.mineBindPhoneOrEmailPage, arguments: { - 'isFrom': '2', - 'email': state.mineInfoData.value.email! - }).then((value) => logic.getUserInfoRequest()); + Navigator.pushNamed(context, Routers.mineBindPhoneOrEmailPage, + arguments: {'isFrom': '2', 'email': state.mineInfoData.value.email!}) + .then((value) => logic.getUserInfoRequest()); } })), CommonItem( @@ -164,30 +152,24 @@ class _MinePersonInfoPageState extends State isHaveLine: true, isHaveDirection: true, action: () { - Navigator.pushNamed( - context, Routers.minePersonInfoResetPasswordPage); + Navigator.pushNamed(context, Routers.minePersonInfoResetPasswordPage); }), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.safetyProblem!.tr, - rightTitle: - state.mineInfoData.value.haveSafeAnswer == 0 ? "去设置" : "", + rightTitle: state.mineInfoData.value.haveSafeAnswer == 0 ? "去设置" : "", isHaveLine: true, isHaveDirection: true, action: () { if (state.mineInfoData.value.haveSafeAnswer == 0) { - Navigator.pushNamed( - context, Routers.minePersonInfoSetSafetyProblemPage) + Navigator.pushNamed(context, Routers.minePersonInfoSetSafetyProblemPage) .then((value) => logic.getUserInfoRequest()); } else { - Navigator.pushNamed( - context, Routers.minePersonInfoViewSafetyProblemPage); + Navigator.pushNamed(context, Routers.minePersonInfoViewSafetyProblemPage); } })), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.countryAndRegion!.tr, - rightTitle: state.mineInfoData.value.countryName != null - ? state.mineInfoData.value.countryName! - : "", + rightTitle: state.mineInfoData.value.countryName != null ? state.mineInfoData.value.countryName! : "", isHaveLine: false, isHaveDirection: false)), ], @@ -221,7 +203,9 @@ class _MinePersonInfoPageState extends State } Future _requestPhotoPermission() async { - var status = await Permission.photos.request(); + //针对andriud33以下的设备兼容 + bool isAndroid33 = AppPlatform.isAndroid && AppPlatform.getSdkIntValue() >= 33; + var status = isAndroid33 ? await Permission.photos.request() : await Permission.storage.request(); if (status.isGranted) { setState(() { state.hasPhotoPermission.value = true; // 如果权限被授予,更新状态变量 @@ -271,8 +255,7 @@ class _MinePersonInfoPageState extends State Future _openModalBottomSheet() async { showModalBottomSheet( context: context, - shape: RoundedRectangleBorder( - borderRadius: BorderRadiusDirectional.circular(10)), + shape: RoundedRectangleBorder(borderRadius: BorderRadiusDirectional.circular(10)), builder: (BuildContext context) { return AlertBottomWidget( topTitle: '', @@ -281,13 +264,9 @@ class _MinePersonInfoPageState extends State int getSelectIndex = value; if (getSelectIndex == 0) { //拍照选项 - state.hasCameraPermission.value == true - ? selectCamera() - : _requestCameraPermission(); + state.hasCameraPermission.value == true ? selectCamera() : _requestCameraPermission(); } else if (getSelectIndex == 1) { - state.hasPhotoPermission.value == true - ? selectImage() - : _requestPhotoPermission(); + state.hasPhotoPermission.value == true ? selectImage() : _requestPhotoPermission(); } }, ); @@ -296,8 +275,8 @@ class _MinePersonInfoPageState extends State ///拍摄照片 selectCamera() async { - XFile? photo = await state.imagePicker.pickImage( - source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear); + XFile? photo = + await state.imagePicker.pickImage(source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear); if (photo != null) { state.image = photo; // logic.getUpTokenRequest();