diff --git a/star_lock/.fvm/flutter_sdk b/star_lock/.fvm/flutter_sdk new file mode 120000 index 00000000..b4b41379 --- /dev/null +++ b/star_lock/.fvm/flutter_sdk @@ -0,0 +1 @@ +/Users/mac/fvm/versions/3.16.5 \ No newline at end of file diff --git a/star_lock/.fvm/fvm_config.json b/star_lock/.fvm/fvm_config.json new file mode 100644 index 00000000..792b69f8 --- /dev/null +++ b/star_lock/.fvm/fvm_config.json @@ -0,0 +1,3 @@ +{ + "flutterSdkVersion": "3.16.5" +} \ No newline at end of file diff --git a/star_lock/.fvm/release b/star_lock/.fvm/release new file mode 100644 index 00000000..185e484b --- /dev/null +++ b/star_lock/.fvm/release @@ -0,0 +1 @@ +3.16.5 \ No newline at end of file diff --git a/star_lock/.fvm/version b/star_lock/.fvm/version new file mode 100644 index 00000000..185e484b --- /dev/null +++ b/star_lock/.fvm/version @@ -0,0 +1 @@ +3.16.5 \ No newline at end of file diff --git a/star_lock/.fvm/versions/3.16.5 b/star_lock/.fvm/versions/3.16.5 new file mode 120000 index 00000000..b4b41379 --- /dev/null +++ b/star_lock/.fvm/versions/3.16.5 @@ -0,0 +1 @@ +/Users/mac/fvm/versions/3.16.5 \ No newline at end of file diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json index d5516ba7..d775c007 100644 --- a/star_lock/images/lan/lan_en.json +++ b/star_lock/images/lan/lan_en.json @@ -613,5 +613,23 @@ "地图加载中,请稍候。。": "The map is loading, please wait...", "跳过": "Skip", "还未获取到位置信息哦,请耐心等待一下!": "The location information has not been obtained yet, please wait patiently!", - "请填写信息": "Please fill in the information" + "请填写信息": "Please fill in the information", + + + "permission_dialog_camera": "camera", + "permission_dialog_photos": "photos", + "permission_dialog_storage": "storage", + "permission_dialog_location": "location", + "permission_dialog_camera_text": "Access to the camera is required to take photos and upload files, such as uploading a profile picture", + "permission_dialog_photos_text": "Access to camera is required to upload files and avatars using album images", + "permission_dialog_storage_text": "Access to read and write permissions is required to upload avatars using local images", + "permission_dialog_location_text": "Access to location information is required to use the add key function", + "permission_dialog_application": "application", + "permission_dialog_authority": "permission", + "permission_dialog_not_allowed": "Not Allowed", + "permission_dialog_allowed": "Allowed", + "permission_dialog_permission_denied": "Permission denied", + "permission_dialog_open_permissions": "Please manually enable it in the system settings", + "permission_dialog_permission_continue_text": "Permission to continue using the application.", + "permission_dialog_go_set_up": "Go set it up" } diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json index b9f027fb..0cbfcb97 100644 --- a/star_lock/images/lan/lan_keys.json +++ b/star_lock/images/lan/lan_keys.json @@ -614,5 +614,22 @@ "地图加载中,请稍候。。": "地图加载中,请稍候。。", "跳过": "跳过", "还未获取到位置信息哦,请耐心等待一下!": "还未获取到位置信息哦,请耐心等待一下!", - "请填写信息": "请填写信息" + "请填写信息": "请填写信息", + + "permission_dialog_camera": "相机", + "permission_dialog_photos": "相册", + "permission_dialog_storage": "读写", + "permission_dialog_location": "定位", + "permission_dialog_camera_text": "需要访问相机权限才能拍照上传文件例如头像上传", + "permission_dialog_photos_text": "需要访问相机权限才能使用相册图片上传文件上传头像", + "permission_dialog_storage_text": "需要访问读写权限才能使用本地图片上传头像", + "permission_dialog_location_text": "需要访问定位权限才能使用添加钥匙功能的位置信息", + "permission_dialog_application": "申请", + "permission_dialog_authority": "权限", + "permission_dialog_not_allowed": "不允许", + "permission_dialog_allowed": "允许", + "permission_dialog_permission_denied": "权限被拒绝", + "permission_dialog_open_permissions": "请手动在系统设置中开启", + "permission_dialog_permission_continue_text": "权限以继续使用应用。", + "permission_dialog_go_set_up": "去设置" } diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index 35befa6a..91e8c838 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -615,5 +615,22 @@ "地图加载中,请稍候。。": "地图加载中,请稍候。。", "跳过": "跳过", "还未获取到位置信息哦,请耐心等待一下!": "还未获取到位置信息哦,请耐心等待一下!", - "请填写信息": "请填写信息" + "请填写信息": "请填写信息", + + "permission_dialog_camera": "相机", + "permission_dialog_photos": "相册", + "permission_dialog_storage": "读写", + "permission_dialog_location": "定位", + "permission_dialog_camera_text": "需要访问相机权限才能拍照上传文件例如头像上传", + "permission_dialog_photos_text": "需要访问相机权限才能使用相册图片上传文件上传头像", + "permission_dialog_storage_text": "需要访问读写权限才能使用本地图片上传头像", + "permission_dialog_location_text": "需要访问定位权限才能使用添加钥匙功能的位置信息", + "permission_dialog_application": "申请", + "permission_dialog_authority": "权限", + "permission_dialog_not_allowed": "不允许", + "permission_dialog_allowed": "允许", + "permission_dialog_permission_denied": "权限被拒绝", + "permission_dialog_open_permissions": "请手动在系统设置中开启", + "permission_dialog_permission_continue_text": "权限以继续使用应用。", + "permission_dialog_go_set_up": "去设置" } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart index 795a74de..0ea3f5a9 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart @@ -2,8 +2,12 @@ import 'dart:async'; import 'dart:io'; import 'package:flutter_easyloading/flutter_easyloading.dart'; 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_settings.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart'; +import 'package:star_lock/permission/permission_dialog.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../tools/eventBusEventManage.dart'; @@ -30,20 +34,24 @@ class MinePersonInfoLogic extends GetConnect { size: size); if (entity.errorCode!.codeIsSuccessful) { uploadFile(entity); - // print("aaaaa:$loginEntity"); } } // 上传头像 - void uploadFile(MinePersonGetUploadFileInfoEntity minePersonGetUploadFileInfoEntity) async { - Map user = minePersonGetUploadFileInfoEntity.data!.formData!; + void uploadFile( + MinePersonGetUploadFileInfoEntity + minePersonGetUploadFileInfoEntity) async { + Map user = + minePersonGetUploadFileInfoEntity.data!.formData!; var bytes = File(state.image!.path); var enc = await bytes.readAsBytes(); user[minePersonGetUploadFileInfoEntity.data!.fileField!] = enc; final form = FormData({ - 'file': MultipartFile(enc, filename: minePersonGetUploadFileInfoEntity.data!.formData!["key"]), + 'file': MultipartFile(enc, + filename: minePersonGetUploadFileInfoEntity.data!.formData!["key"]), }); - var entity = await ApiRepository.to.uploadFile(url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form); + var entity = await ApiRepository.to.uploadFile( + url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form); if (entity.errorCode! == -1) { // 没有返回 返回null成功 updateUserInfoRequest(minePersonGetUploadFileInfoEntity.data!.fileUrl!); @@ -52,12 +60,10 @@ class MinePersonInfoLogic extends GetConnect { //更新个人信息-头像 Future updateUserInfoRequest(String headUrl) async { - var entity = await ApiRepository.to.updateUserHeadUrlInfo( - headUrl: headUrl - ); + var entity = await ApiRepository.to.updateUserHeadUrlInfo(headUrl: headUrl); if (entity.errorCode!.codeIsSuccessful) { state.headUrl.value = headUrl; - state.mineInfoData.value.headUrl = state.headUrl.value!; + state.mineInfoData.value.headUrl = state.headUrl.value; final loginData = await Storage.getLoginData(); loginData!.headUrl = headUrl; await Storage.saveLoginData(loginData); @@ -66,11 +72,67 @@ class MinePersonInfoLogic extends GetConnect { } } + //上传头像选择 + Future chooseCallback(int index) async { + if (index == 0) { + //拍照选项 + _checkCameraPermission(); + } else if (index == 1) { + _checkPhotoPermission(); + } + } + + ///拍摄照片 + Future selectCamera() async { + XFile? photo = await state.imagePicker.pickImage( + source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear); + if (photo != null) { + state.image = photo; + var bytes = File(state.image!.path); + var enc = await bytes.readAsBytes(); + getUpTokenRequest(state.image!.name, enc.length); + } + } + + ///从相册选取 + Future selectImage() async { + XFile? image = await state.imagePicker.pickImage( + source: ImageSource.gallery, + maxHeight: 250, + maxWidth: 250, + ); + if (image != null) { + state.image = image; + var bytes = File(state.image!.path); + var enc = await bytes.readAsBytes(); + getUpTokenRequest(state.image!.name, enc.length); + } + } + + //权限判断 访问相机 + Future _checkCameraPermission() async { + var status = await PermissionDialog.request(Permission.camera); + if (status) { + selectCamera(); + } + } + + //权限判断 访问相册 + Future _checkPhotoPermission() async { + bool isAndroid33 = + AppPlatform.isAndroid && AppPlatform.getSdkIntValue() >= 33; + var status = isAndroid33 + ? await PermissionDialog.request(Permission.photos) + : await PermissionDialog.request(Permission.storage); + if (status) { + selectImage(); + } + } + @override void onReady() { // TODO: implement onReady super.onReady(); - } @override diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart index c5f46a0b..d4fef229 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart @@ -25,31 +25,15 @@ class MinePersonInfoPage extends StatefulWidget { State createState() => _MinePersonInfoPageState(); } -class _MinePersonInfoPageState extends State - // with WidgetsBindingObserver -{ +class _MinePersonInfoPageState extends State { final logic = Get.put(MinePersonInfoLogic()); final state = Get.find().state; @override initState() { super.initState(); - // WidgetsBinding.instance.addObserver(this); // 添加观察者 - // logic.getUserInfoRequest(); - // _checkCameraPermission(); - // _checkPhotoPermission(); } - // // 当应用生命周期状态变化时调用 - // @override - // void didChangeAppLifecycleState(AppLifecycleState state) { - // super.didChangeAppLifecycleState(state); - // if (state == AppLifecycleState.resumed) { - // // 当应用从后台返回前台时检查相机权限 - // checkCameraPermission(); - // } - // } - @override Widget build(BuildContext context) { return Scaffold( @@ -71,32 +55,8 @@ class _MinePersonInfoPageState extends State borderRadius: BorderRadius.circular(36.w), child: CustomNetworkImage(url:state.headUrl.value, defaultUrl: 'images/controls_user.png', width:72.w, height:72.w), ), - // ClipOval( - // child: state.image != null - // ? Image.file( - // File(state.image!.path), - // width: 72.w, - // height: 72.w, - // fit: BoxFit.fill, - // ) - // : Image.asset( - // 'images/controls_user.png', - // width: 72.w, - // height: 72.w, - // fit: BoxFit.fill, - // ), - // ), action: () async { - //安卓平台下首次进入应用需向用户告知获取权限用途弹窗 - if (Platform.isAndroid) { - AppFirstEnterHandle().getAppFirstEnter(context, isAgreeCamera); - var getFlag = await Storage.getString(isAgreeCamera); - if (getFlag == isAgreeCamera) { - _openModalBottomSheet(); - } - } else { - _openModalBottomSheet(); - } + _openModalBottomSheet(); }, )), Obx(() => CommonItem( @@ -177,70 +137,9 @@ class _MinePersonInfoPageState extends State )); } - // Future requestCameraPermission() async { - // var status = await Permission.camera.status; - // if (status.isGranted) { - // selectCamera(); - // } else { - // status = await Permission.camera.request(); - // if (status.isGranted) { - // selectCamera(); - // } else { - // showPermissionDeniedDialog(); - // } - // } - // } - Future _requestCameraPermission() async { - var status = await Permission.camera.request(); - if (status.isGranted) { - setState(() { - state.hasCameraPermission.value = true; // 如果权限被授予,更新状态变量 - }); - } else { - // 如果权限被拒绝,你可以选择在这里处理相应逻辑,比如显示一个提示框 - showPermissionDeniedDialog(); - } - } - Future _requestPhotoPermission() async { - //针对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; // 如果权限被授予,更新状态变量 - }); - } else { - // 如果权限被拒绝,你可以选择在这里处理相应逻辑,比如显示一个提示框 - showPermissionDeniedDialog(); - } - // 请求相册权限 - // PermissionStatus photosStatus = await Permission.photos.request(); - // - // if (photosStatus.isGranted) { - // // 相册权限已被授予 - // state.hasPhotoPermission.value = true; - // } else { - // // 如果权限被拒绝,你可以选择在这里处理相应逻辑,比如显示一个提示框 - // showPermissionDeniedDialog(); - // } - } - - // Future requestPhotoPermission() async { - // var status = await Permission.photos.status; - // if (status.isGranted) { - // selectImage(); - // } else { - // status = await Permission.photos.request(); - // if (status.isGranted) { - // selectImage(); - // } else { - // showPermissionDeniedDialog(); - // } - // } - // } // 显示权限被永久拒绝的提示对话框 void showPermissionDeniedDialog() { @@ -272,67 +171,13 @@ class _MinePersonInfoPageState extends State return AlertBottomWidget( topTitle: '', items: const ['拍照', '从相册选择'], - chooseCallback: (value) { - int getSelectIndex = value; - if (getSelectIndex == 0) { - //拍照选项 - // state.hasCameraPermission.value == true ? selectCamera() : _requestCameraPermission(); - _checkCameraPermission(); - } else if (getSelectIndex == 1) { - // state.hasPhotoPermission.value == true ? selectImage() : _requestPhotoPermission(); - _checkPhotoPermission(); - } - }, + chooseCallback: logic.chooseCallback, ); }); } - ///拍摄照片 - selectCamera() async { - XFile? photo = await state.imagePicker.pickImage(source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear); - if (photo != null) { - state.image = photo; - var bytes = File(state.image!.path); - var enc = await bytes.readAsBytes(); - logic.getUpTokenRequest(state.image!.name, enc.length); - } - } - ///从相册选取 - selectImage() async { - XFile? image = await state.imagePicker.pickImage( - source: ImageSource.gallery, - maxHeight: 250, - maxWidth: 250, - ); - if (image != null) { - state.image = image; - var bytes = File(state.image!.path); - var enc = await bytes.readAsBytes(); - logic.getUpTokenRequest(state.image!.name, enc.length); - } - } - Future _checkCameraPermission() async { - var status = await Permission.camera.status; - if (status.isGranted) { - selectCamera(); - } else { - _requestCameraPermission(); - } - } - - Future _checkPhotoPermission() async { - var status = await Permission.photos.status; - if (status.isGranted) { - selectImage(); - } else { - // setState(() { - // state.hasPhotoPermission.value = false; // 如果权限未被授予,更新状态变量 - // }); - _requestPhotoPermission(); - } - } @override void dispose() { diff --git a/star_lock/lib/permission/README.md b/star_lock/lib/permission/README.md new file mode 100644 index 00000000..340736a5 --- /dev/null +++ b/star_lock/lib/permission/README.md @@ -0,0 +1,9 @@ + +## [permission_dialog.dart](permission_dialog.dart) 权限弹出的使用 +```bash + //判断是否被拒绝,判断有权限后返回 true + var status = await PermissionDialog.request(Permission.camera); + if (status) { + selectCamera(); + } +``` diff --git a/star_lock/lib/permission/permission_dialog.dart b/star_lock/lib/permission/permission_dialog.dart index 12b4a80a..6b4469b6 100644 --- a/star_lock/lib/permission/permission_dialog.dart +++ b/star_lock/lib/permission/permission_dialog.dart @@ -1,21 +1,28 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.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/tools/storage.dart'; +import 'package:star_lock/translations/trans_lib.dart'; class PermissionDialog { static Map titles = { - Permission.camera: '相机', - Permission.photos: '相册', - Permission.storage: '读写', - Permission.location: '定位', + Permission.camera: TranslationLoader.lanKeys!.permissionDialogCamera!.tr, + Permission.photos: TranslationLoader.lanKeys!.permissionDialogPhotos!.tr, + Permission.storage: TranslationLoader.lanKeys!.permissionDialogStorage!.tr, + Permission.location: + TranslationLoader.lanKeys!.permissionDialogLocation!.tr, }; static Map contents = { - Permission.camera: '需要访问相机权限才能拍照上传文件例如头像上传', - Permission.photos: '需要访问相机权限才能使用相册图片上传文件上传头像', - Permission.storage: '需要访问读写权限才能使用本地图片上传头像', - Permission.location: '需要访问定位权限才能使用添加钥匙功能的位置信息', + Permission.camera: + TranslationLoader.lanKeys!.permissionDialogCameraText!.tr, + Permission.photos: TranslationLoader.lanKeys!.permissionDialogPhotos!.tr, + Permission.storage: + TranslationLoader.lanKeys!.permissionDialogStorageText!.tr, + Permission.location: + TranslationLoader.lanKeys!.permissionDialogLocationText!.tr, }; //显示权限判断申请框 @@ -24,37 +31,51 @@ class PermissionDialog { return false; } bool application = true; - if (AppPlatform.isAndroid) { - application = await showDialog( + PermissionStatus status = await permission.status; + dynamic cache = await Storage.getString(titles[permission]); + if (AppPlatform.isAndroid && !status.isGranted && cache is! String) { + application = await showCupertinoDialog( context: Get.context!, - builder: (BuildContext context) { - return AlertDialog( - title: Text('申请${titles[permission] ?? ''}权限'), - content: Text(contents[permission] ?? ''), - actions: [ - TextButton( - child: const Text('不允许'), - onPressed: () { - Get.back(result: false); - }, - ), - TextButton( - child: const Text('允许'), - onPressed: () { - Get.back(result: true); - }, - ), - ], - ); + builder: (context) { + return PopScope( + canPop: false, + child: CupertinoAlertDialog( + title: Text( + '${TranslationLoader.lanKeys!.permissionDialogApplication!.tr}${titles[permission] ?? ''}${TranslationLoader.lanKeys!.permissionDialogAuthority!.tr}'), + content: Text(contents[permission] ?? ''), + actions: [ + CupertinoDialogAction( + child: Text(TranslationLoader + .lanKeys!.permissionDialogNotAllowed!.tr), + onPressed: () { + Get.back(result: false); + }, + ), + CupertinoDialogAction( + child: Text( + TranslationLoader.lanKeys!.permissionDialogAllowed!.tr), + onPressed: () { + Get.back(result: true); + }, + ), + ], + )); }, ); + if(application){ + await Storage.setString(titles[permission], titles[permission]); + } + } else if (cache is String) { + if (status.isDenied) { + showSet(permission); + return false; + } } - if (!application) { - showSet(permission); - return false; - } else { - return await permission.request().isGranted; + if (application) { + PermissionStatus status = await permission.request(); + return status.isGranted; } + return false; } //显示设置页面 @@ -62,22 +83,27 @@ class PermissionDialog { if (Get.context == null) { return; } - showDialog( + showCupertinoDialog( context: Get.context!, - builder: (BuildContext context) { - return AlertDialog( - title: Text('${titles[permission] ?? ''}权限被拒绝'), - content: Text('${contents[permission] ?? ''},请手动在系统设置中开启${titles[permission]}权限以继续使用应用。'), - actions: [ - TextButton( - child: Text('去设置'), - onPressed: () { - Get.back(); // 关闭对话框 - openAppSettings(); // 打开系统设置页面 - }, - ), - ], - ); + builder: (context) { + return PopScope( + canPop: false, + child: CupertinoAlertDialog( + title: Text( + '${titles[permission] ?? ''}${TranslationLoader.lanKeys!.permissionDialogPermissionDenied!.tr}'), + content: Text( + '${contents[permission] ?? ''},${TranslationLoader.lanKeys!.permissionDialogOpenPermissions!.tr}${titles[permission]}${TranslationLoader.lanKeys!.permissionDialogCameraText!.tr}'), + actions: [ + CupertinoDialogAction( + child: Text( + TranslationLoader.lanKeys!.permissionDialogGoSetUp!.tr), + onPressed: () { + Get.back(); // 关闭对话框 + openAppSettings(); // 打开系统设置页面 + }, + ), + ], + )); }, ); } diff --git a/star_lock/lib/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart index a781a0e8..705ff8fe 100644 --- a/star_lock/lib/translations/lanKeyEntity.dart +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -946,6 +946,24 @@ class LanKeyEntity { judgmentMethodContent = json['judgmentMethodContent']; stressPassword = json['stressPassword']; stressCard = json['stressCard']; + + permissionDialogCamera = json['permission_dialog_camera']; + permissionDialogPhotos = json['permission_dialog_photos']; + permissionDialogStorage = json['permission_dialog_storage']; + permissionDialogLocation = json['permission_dialog_location']; + permissionDialogCameraText = json['permission_dialog_camera_text']; + permissionDialogPhotosText = json['permission_dialog_photos_text']; + permissionDialogStorageText = json['permission_dialog_storage_text']; + permissionDialogLocationText = json['permission_dialog_location_text']; + permissionDialogApplication = json['permission_dialog_application']; + permissionDialogAuthority = json['permission_dialog_authority']; + permissionDialogNotAllowed = json['permission_dialog_not_allowed']; + permissionDialogAllowed = json['permission_dialog_allowed']; + permissionDialogPermissionDenied = json['permission_dialog_permission_denied']; + permissionDialogOpenPermissions = json['permission_dialog_open_permissions']; + permissionDialogPermissionContinueText = json['permission_dialog_permission_continue_text']; + permissionDialogGoSetUp = json['permission_dialog_go_set_up']; + } String? starLock; String? clickUnlockAndHoldDownClose; @@ -1424,6 +1442,23 @@ class LanKeyEntity { String? stressPassword; String? stressCard; + String? permissionDialogCamera; + String? permissionDialogPhotos; + String? permissionDialogStorage; + String? permissionDialogLocation; + String? permissionDialogCameraText; + String? permissionDialogPhotosText; + String? permissionDialogStorageText; + String? permissionDialogLocationText; + String? permissionDialogApplication; + String? permissionDialogAuthority; + String? permissionDialogNotAllowed; + String? permissionDialogAllowed; + String? permissionDialogPermissionDenied; + String? permissionDialogOpenPermissions; + String? permissionDialogPermissionContinueText; + String? permissionDialogGoSetUp; + Map toJson() { final map = {}; map['starLock'] = starLock; @@ -1913,6 +1948,23 @@ class LanKeyEntity { map['stressPassword'] = stressPassword; map['stressCard'] = stressCard; + map['permission_dialog_camera'] = permissionDialogCamera; + map['permission_dialog_photos'] = permissionDialogPhotos; + map['permission_dialog_storage'] = permissionDialogStorage; + map['permission_dialog_location'] = permissionDialogLocation; + map['permission_dialog_camera_text'] = permissionDialogCameraText; + map['permission_dialog_photos_text'] = permissionDialogPhotosText; + map['permission_dialog_storage_text'] = permissionDialogStorageText; + map['permission_dialog_location_text'] = permissionDialogLocationText; + map['permission_dialog_application'] = permissionDialogApplication; + map['permission_dialog_authority'] = permissionDialogAuthority; + map['permission_dialog_not_allowed'] = permissionDialogNotAllowed; + map['permission_dialog_allowed'] = permissionDialogAllowed; + map['permission_dialog_permission_denied'] = permissionDialogPermissionDenied; + map['permission_dialog_open_permissions'] = permissionDialogOpenPermissions; + map['permission_dialog_permission_continue_text'] = permissionDialogPermissionContinueText; + map['permission_dialog_go_set_up'] = permissionDialogGoSetUp; + return map; } }