Merge remote-tracking branch 'origin/master'

This commit is contained in:
葛佳祥 2024-03-13 16:45:30 +08:00
commit fe9e69f445
22 changed files with 143 additions and 86 deletions

View File

@ -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"/>

View File

@ -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',

View File

@ -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 = {

View File

@ -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"

View File

@ -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:
}); });
} }

View File

@ -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;
}); });
}, },
); );

View File

@ -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;//

View File

@ -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,

View File

@ -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"];

View File

@ -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!;
}
} }
} }

View File

@ -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(() {});
}); });
} }
} }

View File

@ -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,

View File

@ -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"];

View File

@ -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:
}); });
} }

View File

@ -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;
}); });
}, },
); );

View File

@ -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;//

View File

@ -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!;

View File

@ -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(() {});
}
}); });
} }
} }

View File

@ -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(() {});
}
}); });
} }

View File

@ -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,
// ),
} }

View File

@ -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);

View File

@ -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: