Merge branch 'master_hyx'
This commit is contained in:
commit
fa316cb889
1
star_lock/.fvm/flutter_sdk
Symbolic link
1
star_lock/.fvm/flutter_sdk
Symbolic link
@ -0,0 +1 @@
|
||||
/Users/mac/fvm/versions/3.16.5
|
||||
3
star_lock/.fvm/fvm_config.json
Normal file
3
star_lock/.fvm/fvm_config.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"flutterSdkVersion": "3.16.5"
|
||||
}
|
||||
1
star_lock/.fvm/release
Normal file
1
star_lock/.fvm/release
Normal file
@ -0,0 +1 @@
|
||||
3.16.5
|
||||
1
star_lock/.fvm/version
Normal file
1
star_lock/.fvm/version
Normal file
@ -0,0 +1 @@
|
||||
3.16.5
|
||||
1
star_lock/.fvm/versions/3.16.5
Symbolic link
1
star_lock/.fvm/versions/3.16.5
Symbolic link
@ -0,0 +1 @@
|
||||
/Users/mac/fvm/versions/3.16.5
|
||||
@ -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"
|
||||
}
|
||||
|
||||
@ -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": "去设置"
|
||||
}
|
||||
|
||||
@ -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": "去设置"
|
||||
}
|
||||
|
||||
@ -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<String, dynamic> user = minePersonGetUploadFileInfoEntity.data!.formData!;
|
||||
void uploadFile(
|
||||
MinePersonGetUploadFileInfoEntity
|
||||
minePersonGetUploadFileInfoEntity) async {
|
||||
Map<String, dynamic> 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<void> 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<void> chooseCallback(int index) async {
|
||||
if (index == 0) {
|
||||
//拍照选项
|
||||
_checkCameraPermission();
|
||||
} else if (index == 1) {
|
||||
_checkPhotoPermission();
|
||||
}
|
||||
}
|
||||
|
||||
///拍摄照片
|
||||
Future<void> 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<void> 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<void> _checkCameraPermission() async {
|
||||
var status = await PermissionDialog.request(Permission.camera);
|
||||
if (status) {
|
||||
selectCamera();
|
||||
}
|
||||
}
|
||||
|
||||
//权限判断 访问相册
|
||||
Future<void> _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
|
||||
|
||||
@ -25,31 +25,15 @@ class MinePersonInfoPage extends StatefulWidget {
|
||||
State<MinePersonInfoPage> createState() => _MinePersonInfoPageState();
|
||||
}
|
||||
|
||||
class _MinePersonInfoPageState extends State<MinePersonInfoPage>
|
||||
// with WidgetsBindingObserver
|
||||
{
|
||||
class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
||||
final logic = Get.put(MinePersonInfoLogic());
|
||||
final state = Get.find<MinePersonInfoLogic>().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<MinePersonInfoPage>
|
||||
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<MinePersonInfoPage>
|
||||
));
|
||||
}
|
||||
|
||||
// Future<void> 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<void> _requestCameraPermission() async {
|
||||
var status = await Permission.camera.request();
|
||||
if (status.isGranted) {
|
||||
setState(() {
|
||||
state.hasCameraPermission.value = true; // 如果权限被授予,更新状态变量
|
||||
});
|
||||
} else {
|
||||
// 如果权限被拒绝,你可以选择在这里处理相应逻辑,比如显示一个提示框
|
||||
showPermissionDeniedDialog();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _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<void> 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<MinePersonInfoPage>
|
||||
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<void> _checkCameraPermission() async {
|
||||
var status = await Permission.camera.status;
|
||||
if (status.isGranted) {
|
||||
selectCamera();
|
||||
} else {
|
||||
_requestCameraPermission();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _checkPhotoPermission() async {
|
||||
var status = await Permission.photos.status;
|
||||
if (status.isGranted) {
|
||||
selectImage();
|
||||
} else {
|
||||
// setState(() {
|
||||
// state.hasPhotoPermission.value = false; // 如果权限未被授予,更新状态变量
|
||||
// });
|
||||
_requestPhotoPermission();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
|
||||
9
star_lock/lib/permission/README.md
Normal file
9
star_lock/lib/permission/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
## [permission_dialog.dart](permission_dialog.dart) 权限弹出的使用
|
||||
```bash
|
||||
//判断是否被拒绝,判断有权限后返回 true
|
||||
var status = await PermissionDialog.request(Permission.camera);
|
||||
if (status) {
|
||||
selectCamera();
|
||||
}
|
||||
```
|
||||
@ -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<Permission, String> 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<Permission, String> 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: <Widget>[
|
||||
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: <Widget>[
|
||||
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(); // 打开系统设置页面
|
||||
},
|
||||
),
|
||||
],
|
||||
));
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -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<String, dynamic> toJson() {
|
||||
final map = <String, dynamic>{};
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user