Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
fe9e69f445
@ -30,7 +30,6 @@
|
|||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
<!--允许麦克风权限,用于录音发送-->
|
<!--允许麦克风权限,用于录音发送-->
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||||
|
|||||||
@ -64,7 +64,7 @@ post_install do |installer|
|
|||||||
# 'PERMISSION_CONTACTS=1',
|
# 'PERMISSION_CONTACTS=1',
|
||||||
|
|
||||||
## dart: PermissionGroup.camera
|
## dart: PermissionGroup.camera
|
||||||
# 'PERMISSION_CAMERA=1',
|
'PERMISSION_CAMERA=1',
|
||||||
|
|
||||||
## dart: PermissionGroup.microphone
|
## dart: PermissionGroup.microphone
|
||||||
# 'PERMISSION_MICROPHONE=1',
|
# 'PERMISSION_MICROPHONE=1',
|
||||||
@ -73,7 +73,7 @@ post_install do |installer|
|
|||||||
# 'PERMISSION_SPEECH_RECOGNIZER=1',
|
# 'PERMISSION_SPEECH_RECOGNIZER=1',
|
||||||
|
|
||||||
## dart: PermissionGroup.photos
|
## dart: PermissionGroup.photos
|
||||||
# 'PERMISSION_PHOTOS=1',
|
'PERMISSION_PHOTOS=1',
|
||||||
|
|
||||||
# dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
|
# dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
|
||||||
'PERMISSION_LOCATION=1',
|
'PERMISSION_LOCATION=1',
|
||||||
|
|||||||
@ -459,7 +459,7 @@
|
|||||||
97C146E61CF9000F007C117D /* Project object */ = {
|
97C146E61CF9000F007C117D /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 1300;
|
LastUpgradeCheck = 1430;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
97C146ED1CF9000F007C117D = {
|
97C146ED1CF9000F007C117D = {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1300"
|
LastUpgradeVersion = "1430"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@ -84,6 +84,7 @@ class AddCardTypeLogic extends BaseGetXController{
|
|||||||
"startDate": startDate,
|
"startDate": startDate,
|
||||||
"weekDay": state.weekdaysList.value,
|
"weekDay": state.weekdaysList.value,
|
||||||
"fromType": state.fromType.value,
|
"fromType": state.fromType.value,
|
||||||
|
"isAdministrator": state.isAdministrator.value == false ? "1" : "2", // 1:不是管理员 2:是管理员
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -372,10 +372,10 @@ class _AddCardPageState extends State<AddCardPage> {
|
|||||||
activeColor: CupertinoColors.activeBlue,
|
activeColor: CupertinoColors.activeBlue,
|
||||||
trackColor: CupertinoColors.systemGrey5,
|
trackColor: CupertinoColors.systemGrey5,
|
||||||
thumbColor: CupertinoColors.white,
|
thumbColor: CupertinoColors.white,
|
||||||
value: state.isStressFingerprint.value,
|
value: state.isAdministrator.value,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
state.isStressFingerprint.value = value;
|
state.isAdministrator.value = value;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@ -8,6 +8,7 @@ class AddCardTypeState{
|
|||||||
final selectType = "0".obs;// 0永久 1显示 2循环
|
final selectType = "0".obs;// 0永久 1显示 2循环
|
||||||
final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
||||||
final isStressFingerprint = false.obs;
|
final isStressFingerprint = false.obs;
|
||||||
|
final isAdministrator = false.obs;// 是否是管理员
|
||||||
|
|
||||||
var beginTime = "".obs;// 开始时间
|
var beginTime = "".obs;// 开始时间
|
||||||
var endTime = "".obs;// 结束时间
|
var endTime = "".obs;// 结束时间
|
||||||
|
|||||||
@ -183,7 +183,7 @@ class AddICCardLogic extends BaseGetXController{
|
|||||||
IoSenderManage.senderAddStressICCardCommand(
|
IoSenderManage.senderAddStressICCardCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
icCardNo:1,
|
icCardNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
cardType:1,
|
cardType:1,
|
||||||
useCountLimit:1,
|
useCountLimit:1,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
@ -237,7 +237,7 @@ class AddICCardLogic extends BaseGetXController{
|
|||||||
IoSenderManage.senderAddICCardCommand(
|
IoSenderManage.senderAddICCardCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
cardNo:1,
|
cardNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
useCountLimit:0xff,
|
useCountLimit:0xff,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
// endTime:0x11223344,
|
// endTime:0x11223344,
|
||||||
@ -278,7 +278,7 @@ class AddICCardLogic extends BaseGetXController{
|
|||||||
IoSenderManage.senderAddStressICCardCommand(
|
IoSenderManage.senderAddStressICCardCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
icCardNo:1,
|
icCardNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
cardType:1,
|
cardType:1,
|
||||||
useCountLimit:1,
|
useCountLimit:1,
|
||||||
startTime:0x11223344,
|
startTime:0x11223344,
|
||||||
|
|||||||
@ -13,6 +13,7 @@ class AddICCardState{
|
|||||||
final cardNumber = "".obs;
|
final cardNumber = "".obs;
|
||||||
final cardType = "".obs;
|
final cardType = "".obs;
|
||||||
final isCoerced = "".obs;
|
final isCoerced = "".obs;
|
||||||
|
final isAdministrator = "".obs;
|
||||||
final startDate = "".obs;
|
final startDate = "".obs;
|
||||||
final weekDay = [].obs;
|
final weekDay = [].obs;
|
||||||
final fromType = 0.obs;
|
final fromType = 0.obs;
|
||||||
@ -26,6 +27,8 @@ class AddICCardState{
|
|||||||
cardNumber.value = map["cardNumber"];
|
cardNumber.value = map["cardNumber"];
|
||||||
cardType.value = map["cardType"];
|
cardType.value = map["cardType"];
|
||||||
isCoerced.value = map["isCoerced"];
|
isCoerced.value = map["isCoerced"];
|
||||||
|
isAdministrator.value = map["isAdministrator"];
|
||||||
|
print("isAdministrator.value isAdministrator.value:${isAdministrator.value}");
|
||||||
startDate.value = map["startDate"];
|
startDate.value = map["startDate"];
|
||||||
lockId.value = map["lockId"];
|
lockId.value = map["lockId"];
|
||||||
weekDay.value = map["weekDay"];
|
weekDay.value = map["weekDay"];
|
||||||
|
|||||||
@ -27,17 +27,20 @@ class CardDetailState{
|
|||||||
final isStressFingerprint = false.obs;
|
final isStressFingerprint = false.obs;
|
||||||
CardDetailState() {
|
CardDetailState() {
|
||||||
Map map = Get.arguments;
|
Map map = Get.arguments;
|
||||||
fingerprintItemData.value = map["fingerprintItemData"];
|
if ((map["fingerprintItemData"] != null)) {
|
||||||
keyId.value = fingerprintItemData.value.cardId!;
|
fingerprintItemData.value = map["fingerprintItemData"];
|
||||||
typeNumber.value = fingerprintItemData.value.cardNumber!;
|
keyId.value = fingerprintItemData.value.cardId!;
|
||||||
typeName.value = fingerprintItemData.value.cardName!;
|
typeNumber.value = fingerprintItemData.value.cardNumber!;
|
||||||
changeNameController.text = typeName.value;
|
typeName.value = fingerprintItemData.value.cardName!;
|
||||||
effectiveDateTime.value = fingerprintItemData.value.startDate!;
|
changeNameController.text = typeName.value;
|
||||||
failureDateTime.value = fingerprintItemData.value.endDate!;
|
effectiveDateTime.value = fingerprintItemData.value.startDate!;
|
||||||
keyType.value = fingerprintItemData.value.cardType!;
|
failureDateTime.value = fingerprintItemData.value.endDate!;
|
||||||
adder.value = fingerprintItemData.value.senderUsername!;
|
keyType.value = fingerprintItemData.value.cardType!;
|
||||||
addTime.value = fingerprintItemData.value.createDate!;
|
adder.value = fingerprintItemData.value.senderUsername!;
|
||||||
isStressFingerprint.value = fingerprintItemData.value.isCoerced! == 2 ? true : false;
|
addTime.value = fingerprintItemData.value.createDate!;
|
||||||
weekDay.value = fingerprintItemData.value.weekDay!;
|
isStressFingerprint.value =
|
||||||
|
fingerprintItemData.value.isCoerced! == 2 ? true : false;
|
||||||
|
weekDay.value = fingerprintItemData.value.weekDay!;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -37,7 +37,7 @@ class _CardListPageState extends State<CardListPage> with RouteAware {
|
|||||||
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
||||||
if (isDemoMode == false) {
|
if (isDemoMode == false) {
|
||||||
logic.getICCardListData().then((FingerprintListDataEntity value){
|
logic.getICCardListData().then((FingerprintListDataEntity value){
|
||||||
setState(() {});
|
if(mounted) setState(() {});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,7 +79,7 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderAddFingerprintCommand(
|
IoSenderManage.senderAddFingerprintCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
fingerNo:1,
|
fingerNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
useCountLimit:0xff,
|
useCountLimit:0xff,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
// endTime:0x11223344,
|
// endTime:0x11223344,
|
||||||
@ -227,7 +227,7 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderAddStressFingerprintCommand(
|
IoSenderManage.senderAddStressFingerprintCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
fingerNo:1,
|
fingerNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
fingerType:1,
|
fingerType:1,
|
||||||
useCountLimit:1,
|
useCountLimit:1,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
@ -280,7 +280,7 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderAddFingerprintCommand(
|
IoSenderManage.senderAddFingerprintCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
fingerNo:1,
|
fingerNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
useCountLimit:0xff,
|
useCountLimit:0xff,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
// endTime:0x11223344,
|
// endTime:0x11223344,
|
||||||
@ -321,7 +321,7 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderAddStressFingerprintCommand(
|
IoSenderManage.senderAddStressFingerprintCommand(
|
||||||
keyID:"1",
|
keyID:"1",
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
fingerNo:1,
|
fingerNo:state.isAdministrator.value == "2" ? 254 : 1,
|
||||||
fingerType:1,
|
fingerType:1,
|
||||||
useCountLimit:1,
|
useCountLimit:1,
|
||||||
// startTime:0x11223344,
|
// startTime:0x11223344,
|
||||||
|
|||||||
@ -17,6 +17,7 @@ class AddFingerprintState{
|
|||||||
// final fingerprintNumber = "".obs;
|
// final fingerprintNumber = "".obs;
|
||||||
final fingerprintType = "".obs;
|
final fingerprintType = "".obs;
|
||||||
final isCoerced = "".obs;
|
final isCoerced = "".obs;
|
||||||
|
final isAdministrator = "".obs;
|
||||||
final startDate = "".obs;
|
final startDate = "".obs;
|
||||||
final weekDay = [].obs;
|
final weekDay = [].obs;
|
||||||
final fromType = 1.obs;
|
final fromType = 1.obs;
|
||||||
@ -31,6 +32,8 @@ class AddFingerprintState{
|
|||||||
fingerprintType.value = map["fingerprintType"];
|
fingerprintType.value = map["fingerprintType"];
|
||||||
isCoerced.value = map["isCoerced"];
|
isCoerced.value = map["isCoerced"];
|
||||||
print("isCoerced.valueisCoerced.value:${isCoerced.value}");
|
print("isCoerced.valueisCoerced.value:${isCoerced.value}");
|
||||||
|
isAdministrator.value = map["isAdministrator"];
|
||||||
|
print("isAdministrator.value isAdministrator.value:${isAdministrator.value}");
|
||||||
startDate.value = map["startDate"];
|
startDate.value = map["startDate"];
|
||||||
lockId.value = map["lockId"];
|
lockId.value = map["lockId"];
|
||||||
weekDay.value = map["weekDay"];
|
weekDay.value = map["weekDay"];
|
||||||
|
|||||||
@ -84,6 +84,7 @@ class AddFingerprintTypeLogic extends BaseGetXController{
|
|||||||
"startDate": startDate,
|
"startDate": startDate,
|
||||||
"weekDay": state.weekdaysList.value,
|
"weekDay": state.weekdaysList.value,
|
||||||
"fromType": state.fromType.value,
|
"fromType": state.fromType.value,
|
||||||
|
"isAdministrator": state.isAdministrator.value == false ? "1" : "2", // 1:不是管理员 2:是管理员
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -352,10 +352,10 @@ class _AddFingerprintTypePageState extends State<AddFingerprintTypePage> {
|
|||||||
activeColor: CupertinoColors.activeBlue,
|
activeColor: CupertinoColors.activeBlue,
|
||||||
trackColor: CupertinoColors.systemGrey5,
|
trackColor: CupertinoColors.systemGrey5,
|
||||||
thumbColor: CupertinoColors.white,
|
thumbColor: CupertinoColors.white,
|
||||||
value: state.isStressFingerprint.value,
|
value: state.isAdministrator.value,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
state.isStressFingerprint.value = value;
|
state.isAdministrator.value = value;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@ -7,6 +7,7 @@ class AddFingerprintState{
|
|||||||
final selectType = "0".obs;// 0永久 1显示 2循环
|
final selectType = "0".obs;// 0永久 1显示 2循环
|
||||||
final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
final fromType = 1.obs; // // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
||||||
final isStressFingerprint = false.obs;
|
final isStressFingerprint = false.obs;
|
||||||
|
final isAdministrator = false.obs;// 是否是管理员
|
||||||
|
|
||||||
var beginTime = "".obs;// 开始时间
|
var beginTime = "".obs;// 开始时间
|
||||||
var endTime = "".obs;// 结束时间
|
var endTime = "".obs;// 结束时间
|
||||||
|
|||||||
@ -25,7 +25,7 @@ class FingerprintDetailState{
|
|||||||
final isStressFingerprint = false.obs;
|
final isStressFingerprint = false.obs;
|
||||||
FingerprintDetailState() {
|
FingerprintDetailState() {
|
||||||
Map map = Get.arguments;
|
Map map = Get.arguments;
|
||||||
if ((map["keyInfo"] != null)) {
|
if ((map["fingerprintItemData"] != null)) {
|
||||||
fingerprintItemData.value = map["fingerprintItemData"];
|
fingerprintItemData.value = map["fingerprintItemData"];
|
||||||
keyId.value = fingerprintItemData.value.fingerprintId!;
|
keyId.value = fingerprintItemData.value.fingerprintId!;
|
||||||
typeNumber.value = fingerprintItemData.value.fingerprintNumber!;
|
typeNumber.value = fingerprintItemData.value.fingerprintNumber!;
|
||||||
|
|||||||
@ -37,7 +37,9 @@ class _FingerprintListPageState extends State<FingerprintListPage> with RouteAwa
|
|||||||
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
||||||
if (isDemoMode == false) {
|
if (isDemoMode == false) {
|
||||||
logic.getFingerprintsListData().then((FingerprintListDataEntity value){
|
logic.getFingerprintsListData().then((FingerprintListDataEntity value){
|
||||||
setState(() {});
|
if (mounted) {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,7 +41,9 @@ class _StarLockMainPageState extends State<StarLockMainPage> with BaseWidget {
|
|||||||
// await logic.getStarLockInfo();
|
// await logic.getStarLockInfo();
|
||||||
// setState(() {});
|
// setState(() {});
|
||||||
logic.getStarLockInfo().then((LockListInfoEntity value) {
|
logic.getStarLockInfo().then((LockListInfoEntity value) {
|
||||||
setState(() {});
|
if (mounted) {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -43,48 +43,42 @@ class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
|||||||
backgroundColor: AppColors.mainColor),
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Obx(() => CommonItem(
|
CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.avatar!.tr,
|
leftTitel: TranslationLoader.lanKeys!.avatar!.tr,
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
allHeight: 100.h,
|
allHeight: 100.h,
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
isHaveRightWidget: true,
|
isHaveRightWidget: true,
|
||||||
rightWidget: ClipOval(
|
rightWidget: ClipOval(
|
||||||
child: state.mineInfoData.value.headUrl != null
|
child: state.image != null
|
||||||
? CachedNetworkImage(
|
? Image.file(
|
||||||
imageUrl: Uri.encodeFull(
|
File(state.image!.path),
|
||||||
state.mineInfoData.value.headUrl!),
|
width: 72.w,
|
||||||
width: 72.w,
|
height: 72.w,
|
||||||
height: 72.w,
|
fit: BoxFit.fill,
|
||||||
fit: BoxFit.fill,
|
)
|
||||||
placeholder: (context, url) => Image.asset(
|
: Image.asset(
|
||||||
'images/controls_user.png',
|
'images/controls_user.png',
|
||||||
width: 72.w,
|
width: 72.w,
|
||||||
height: 72.w,
|
height: 72.w,
|
||||||
fit: BoxFit.fill,
|
fit: BoxFit.fill,
|
||||||
))
|
),
|
||||||
: Image.asset(
|
),
|
||||||
'images/controls_user.png',
|
action: () async {
|
||||||
width: 72.w,
|
//安卓平台下首次进入应用需向用户告知获取权限用途弹窗
|
||||||
height: 72.w,
|
if (Platform.isAndroid) {
|
||||||
fit: BoxFit.fill,
|
AppFirstEnterHandle()
|
||||||
),
|
.getAppFirstEnter(context, isAgreeCamera);
|
||||||
),
|
var getFlag = await Storage.getString(isAgreeCamera);
|
||||||
action: () async {
|
if (getFlag == isAgreeCamera) {
|
||||||
//安卓平台下首次进入应用需向用户告知获取权限用途弹窗
|
_openModalBottomSheet();
|
||||||
if (Platform.isAndroid) {
|
}
|
||||||
AppFirstEnterHandle()
|
} else {
|
||||||
.getAppFirstEnter(context, isAgreeCamera);
|
_openModalBottomSheet();
|
||||||
var getFlag = await Storage.getString(isAgreeCamera);
|
}
|
||||||
if (getFlag == isAgreeCamera) {
|
},
|
||||||
requestCameraPermission();
|
),
|
||||||
}
|
|
||||||
} else {
|
|
||||||
requestCameraPermission();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
)),
|
|
||||||
Obx(() => CommonItem(
|
Obx(() => CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.nickName!.tr,
|
leftTitel: TranslationLoader.lanKeys!.nickName!.tr,
|
||||||
rightTitle: state.mineInfoData.value.nickname != null
|
rightTitle: state.mineInfoData.value.nickname != null
|
||||||
@ -189,7 +183,7 @@ class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
|||||||
if (status.isGranted) {
|
if (status.isGranted) {
|
||||||
// 如果权限已经被授予,执行您的相机操作
|
// 如果权限已经被授予,执行您的相机操作
|
||||||
// 这里可以调用打开相机的方法或者跳转到相机页面等
|
// 这里可以调用打开相机的方法或者跳转到相机页面等
|
||||||
_openModalBottomSheet();
|
selectCamera();
|
||||||
} else {
|
} else {
|
||||||
// 如果权限尚未被授予,请求相机权限
|
// 如果权限尚未被授予,请求相机权限
|
||||||
// 此处会显示系统权限请求对话框
|
// 此处会显示系统权限请求对话框
|
||||||
@ -197,28 +191,53 @@ class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
|||||||
|
|
||||||
if (status.isGranted) {
|
if (status.isGranted) {
|
||||||
// 如果用户授予了相机权限,执行您的相机操作
|
// 如果用户授予了相机权限,执行您的相机操作
|
||||||
_openModalBottomSheet();
|
selectCamera();
|
||||||
} else {
|
} else {
|
||||||
// 如果用户拒绝了相机权限,您可以提供适当的提示
|
// 如果用户拒绝了相机权限,您可以提供适当的提示
|
||||||
// 或者引导用户手动授予权限
|
// 或者引导用户手动授予权限
|
||||||
_showPermissinDialog();
|
showPermissionDeniedDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future _showPermissinDialog() async {
|
Future<void> requestPhotoPermission() async {
|
||||||
|
// 检查是否已经授予相机权限
|
||||||
|
PermissionStatus status = await Permission.photos.status;
|
||||||
|
|
||||||
|
if (status.isGranted) {
|
||||||
|
// 如果权限已经被授予,执行您的相机操作
|
||||||
|
// 这里可以调用打开相机的方法或者跳转到相机页面等
|
||||||
|
selectImage();
|
||||||
|
} else {
|
||||||
|
// 如果权限尚未被授予,请求相机权限
|
||||||
|
// 此处会显示系统权限请求对话框
|
||||||
|
status = await Permission.photos.request();
|
||||||
|
|
||||||
|
if (status.isGranted) {
|
||||||
|
// 如果用户授予了相机权限,执行您的相机操作
|
||||||
|
selectImage();
|
||||||
|
} else {
|
||||||
|
// 如果用户拒绝了相机权限,您可以提供适当的提示
|
||||||
|
// 或者引导用户手动授予权限
|
||||||
|
showPermissionDeniedDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示权限被永久拒绝的提示对话框
|
||||||
|
void showPermissionDeniedDialog() {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
title: const Text('Permission Required'),
|
title: const Text('权限被拒绝'),
|
||||||
content: const Text(
|
content: const Text('请手动在系统设置中开启相册权限以继续使用应用。'),
|
||||||
'You need to grant camera permission to use this feature.'),
|
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
TextButton(
|
TextButton(
|
||||||
child: const Text('OK'),
|
child: const Text('去设置'),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop();
|
openAppSettings(); // 打开系统设置页面
|
||||||
|
Navigator.of(context).pop(); // 关闭对话框
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -240,9 +259,11 @@ class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
|||||||
int getSelectIndex = value;
|
int getSelectIndex = value;
|
||||||
if (getSelectIndex == 0) {
|
if (getSelectIndex == 0) {
|
||||||
//拍照选项
|
//拍照选项
|
||||||
selectCamera();
|
// selectCamera();
|
||||||
|
requestCameraPermission();
|
||||||
} else if (getSelectIndex == 1) {
|
} else if (getSelectIndex == 1) {
|
||||||
selectImage();
|
// selectImage();
|
||||||
|
requestPhotoPermission();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -278,4 +299,24 @@ class _MinePersonInfoPageState extends State<MinePersonInfoPage> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// child: state.mineInfoData.value.headUrl != null
|
||||||
|
// ? CachedNetworkImage(
|
||||||
|
// imageUrl: Uri.encodeFull(
|
||||||
|
// state.mineInfoData.value.headUrl!),
|
||||||
|
// width: 72.w,
|
||||||
|
// height: 72.w,
|
||||||
|
// fit: BoxFit.fill,
|
||||||
|
// placeholder: (context, url) => Image.asset(
|
||||||
|
// 'images/controls_user.png',
|
||||||
|
// width: 72.w,
|
||||||
|
// height: 72.w,
|
||||||
|
// fit: BoxFit.fill,
|
||||||
|
// ))
|
||||||
|
// : Image.asset(
|
||||||
|
// 'images/controls_user.png',
|
||||||
|
// width: 72.w,
|
||||||
|
// height: 72.w,
|
||||||
|
// fit: BoxFit.fill,
|
||||||
|
// ),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import 'package:star_lock/tools/appFirstEnterHandle.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';
|
||||||
import '../versionUndate/versionUndateTool.dart';
|
|
||||||
|
|
||||||
class StarLockApplication extends StatefulWidget {
|
class StarLockApplication extends StatefulWidget {
|
||||||
const StarLockApplication({Key? key}) : super(key: key);
|
const StarLockApplication({Key? key}) : super(key: key);
|
||||||
|
|||||||
@ -140,6 +140,7 @@ dependencies:
|
|||||||
#侧滑删除
|
#侧滑删除
|
||||||
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
|
||||||
|
|
||||||
system_settings: ^2.0.0
|
system_settings: ^2.0.0
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user