fix: 停用友盟,格式化部分代码
This commit is contained in:
parent
ddb71668c4
commit
10c9b896aa
@ -1,5 +1,5 @@
|
||||
//<cn>
|
||||
import 'package:umeng_common_sdk/umeng_common_sdk.dart';
|
||||
// import 'package:umeng_common_sdk/umeng_common_sdk.dart';
|
||||
import '../../flavors.dart';
|
||||
|
||||
class UmengHelper {
|
||||
@ -15,27 +15,24 @@ class UmengHelper {
|
||||
return _instance!;
|
||||
}
|
||||
|
||||
Future<void> initApp() async {
|
||||
|
||||
}
|
||||
Future<void> initApp() async {}
|
||||
|
||||
Future<void> initSdk() async {
|
||||
UmengCommonSdk.initCommon(
|
||||
F.umengKey.androidKey, F.umengKey.iosKey, F.umengKey.channel);
|
||||
UmengCommonSdk.setPageCollectionModeManual();
|
||||
// UmengCommonSdk.initCommon(
|
||||
// F.umengKey.androidKey, F.umengKey.iosKey, F.umengKey.channel);
|
||||
// UmengCommonSdk.setPageCollectionModeManual();
|
||||
}
|
||||
|
||||
Future<void> login(String userId) async {
|
||||
UmengCommonSdk.onProfileSignIn(userId);
|
||||
// UmengCommonSdk.onProfileSignIn(userId);
|
||||
}
|
||||
|
||||
Future<void> trackEvent(
|
||||
String eventName, Map<String, Object> parameters) async {
|
||||
UmengCommonSdk.onEvent(eventName, parameters);
|
||||
Future<void> trackEvent(String eventName, Map<String, Object> parameters) async {
|
||||
// UmengCommonSdk.onEvent(eventName, parameters);
|
||||
}
|
||||
|
||||
Future<void> logout() async {
|
||||
UmengCommonSdk.onProfileSignOff();
|
||||
// UmengCommonSdk.onProfileSignOff();
|
||||
}
|
||||
}
|
||||
//</cn>
|
||||
|
||||
@ -316,6 +316,7 @@ class FaceListLogic extends BaseGetXController {
|
||||
{required bool isRefresh}) async {
|
||||
if (isRefresh) {
|
||||
state.faceItemListData.clear();
|
||||
state.faceItemListData.refresh();
|
||||
pageNo = 1;
|
||||
}
|
||||
final FingerprintListDataEntity entity =
|
||||
|
||||
@ -25,11 +25,9 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
late StreamSubscription<Reply> _replySubscription;
|
||||
|
||||
void _initReplySubscription() {
|
||||
_replySubscription =
|
||||
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
||||
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
||||
// 添加指纹开始(此处用作删除指纹)
|
||||
if ((reply is SenderAddFingerprintWithTimeCycleCoercionReply) &&
|
||||
(state.ifCurrentScreen.value == true)) {
|
||||
if ((reply is SenderAddFingerprintWithTimeCycleCoercionReply) && (state.ifCurrentScreen.value == true)) {
|
||||
_replyAddFingerprintBegin(reply);
|
||||
}
|
||||
|
||||
@ -57,13 +55,10 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
final List<String>? privateKey =
|
||||
await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList =
|
||||
changeStringListToIntList(privateKey!);
|
||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
final List<String>? signKey =
|
||||
await Storage.getStringList(saveBlueSignKey);
|
||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
|
||||
final List<int> token = reply.data.sublist(5, 9);
|
||||
@ -257,20 +252,16 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
showBlueConnetctToastTimer(action: () {
|
||||
dismissEasyLoading();
|
||||
});
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||
(BluetoothConnectionState deviceConnectionState) async {
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async {
|
||||
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||
// var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
final List<String>? signKey =
|
||||
await Storage.getStringList(saveBlueSignKey);
|
||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||
|
||||
final List<String>? privateKey =
|
||||
await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList =
|
||||
changeStringListToIntList(privateKey!);
|
||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||
@ -298,8 +289,7 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
privateKey: getPrivateKeyList,
|
||||
token: getTokenList,
|
||||
isBeforeAddUser: false);
|
||||
} else if (deviceConnectionState ==
|
||||
BluetoothConnectionState.disconnected) {
|
||||
} else if (deviceConnectionState == BluetoothConnectionState.disconnected) {
|
||||
dismissEasyLoading();
|
||||
cancelBlueConnetctToastTimer();
|
||||
if (state.ifCurrentScreen.value == true) {
|
||||
@ -337,15 +327,15 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
*/
|
||||
|
||||
// 获取指纹列表
|
||||
Future<FingerprintListDataEntity> getFingerprintsListData(
|
||||
{required bool isRefresh}) async {
|
||||
Future<FingerprintListDataEntity> getFingerprintsListData({required bool isRefresh}) async {
|
||||
// 如果是下拉刷新,清空已有数据
|
||||
// if (isRefresh) {
|
||||
state.fingerprintItemListData.clear();
|
||||
if (isRefresh) {
|
||||
pageNo = 1;
|
||||
state.fingerprintItemListData.clear();
|
||||
state.fingerprintItemListData.refresh();
|
||||
}
|
||||
|
||||
final FingerprintListDataEntity entity =
|
||||
await ApiRepository.to.getFingerprintsListData(
|
||||
final FingerprintListDataEntity entity = await ApiRepository.to.getFingerprintsListData(
|
||||
lockId: state.lockId.value.toString(),
|
||||
pageNo: pageNo.toString(),
|
||||
pageSize: pageSize.toString(),
|
||||
@ -381,10 +371,7 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
type = '0';
|
||||
}
|
||||
final LoginEntity entity = await ApiRepository.to.deletFingerprintsData(
|
||||
fingerprintId: fingerprintId,
|
||||
lockId: state.lockId.value.toString(),
|
||||
type: type,
|
||||
deleteType: '1');
|
||||
fingerprintId: fingerprintId, lockId: state.lockId.value.toString(), type: type, deleteType: '1');
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
if (state.isDeletAll == false) {
|
||||
showToast('删除成功'.tr, something: () {
|
||||
@ -402,9 +389,7 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
late StreamSubscription _teamEvent;
|
||||
|
||||
void _initRefreshAction() {
|
||||
_teamEvent = eventBus
|
||||
.on<OtherTypeRefreshListEvent>()
|
||||
.listen((OtherTypeRefreshListEvent event) async {
|
||||
_teamEvent = eventBus.on<OtherTypeRefreshListEvent>().listen((OtherTypeRefreshListEvent event) async {
|
||||
// 立即刷新数据
|
||||
await getFingerprintsListData(isRefresh: true);
|
||||
});
|
||||
@ -415,8 +400,7 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
String keyTypeStr = ''; //
|
||||
// (fingerprintItemData.fingerprintType! != 1) ? (fingerprintItemData.endDate! < DateTime.now().millisecondsSinceEpoch ? "已失效" : "") : ""
|
||||
if (fingerprintItemData.fingerprintStatus == 1) {
|
||||
if (fingerprintItemData.startDate! >
|
||||
DateTime.now().millisecondsSinceEpoch) {
|
||||
if (fingerprintItemData.startDate! > DateTime.now().millisecondsSinceEpoch) {
|
||||
keyTypeStr = '未生效'.tr;
|
||||
}
|
||||
} else if (fingerprintItemData.fingerprintStatus == 2) {
|
||||
@ -428,8 +412,7 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
String getKeyDateType(FingerprintItemData fingerprintItemData) {
|
||||
String keyDateTypeStr = ''; // 永久:1;限时2,单次3,循环:4
|
||||
if (fingerprintItemData.fingerprintType! == 1) {
|
||||
keyDateTypeStr =
|
||||
"${DateTool().dateToYMDHNString(fingerprintItemData.createDate.toString())} ${"永久".tr}";
|
||||
keyDateTypeStr = "${DateTool().dateToYMDHNString(fingerprintItemData.createDate.toString())} ${"永久".tr}";
|
||||
} else if (fingerprintItemData.fingerprintType! == 2) {
|
||||
keyDateTypeStr =
|
||||
'${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} ${'限时'.tr}';
|
||||
@ -442,11 +425,10 @@ class FingerprintListLogic extends BaseGetXController {
|
||||
|
||||
//刷新单条信息
|
||||
Future<void> refreshIndividualKeys({required int fingerprintId}) async {
|
||||
final FingerprintEntity entity =
|
||||
await ApiRepository.to.getFingerprintsData(fingerprintId);
|
||||
final FingerprintEntity entity = await ApiRepository.to.getFingerprintsData(fingerprintId);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
final int index = state.fingerprintItemListData.indexWhere(
|
||||
(FingerprintItemData item) => item.fingerprintId == fingerprintId);
|
||||
final int index =
|
||||
state.fingerprintItemListData.indexWhere((FingerprintItemData item) => item.fingerprintId == fingerprintId);
|
||||
state.fingerprintItemListData.removeAt(index);
|
||||
state.fingerprintItemListData.insert(index, entity.data!);
|
||||
}
|
||||
|
||||
@ -26,8 +26,7 @@ class LockTimeLogic extends BaseGetXController {
|
||||
late StreamSubscription<Reply> _replySubscription;
|
||||
|
||||
void _initReplySubscription() {
|
||||
_replySubscription =
|
||||
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
||||
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
||||
if (reply is TimingReply) {
|
||||
_replyTiming(reply);
|
||||
}
|
||||
@ -50,10 +49,8 @@ class LockTimeLogic extends BaseGetXController {
|
||||
|
||||
// 有效时间
|
||||
final List<int> indate = reply.data.sublist(150, 154);
|
||||
int indateValue = (0xff & indate[0]) << 24 |
|
||||
(0xff & indate[1]) << 16 |
|
||||
(0xff & indate[2]) << 8 |
|
||||
(0xFF & indate[3]);
|
||||
int indateValue =
|
||||
(0xff & indate[0]) << 24 | (0xff & indate[1]) << 16 | (0xff & indate[2]) << 8 | (0xFF & indate[3]);
|
||||
// 检查时间戳是否无效或超出范围
|
||||
if (indateValue == 0xffffffff || indateValue <= 0) {
|
||||
// 使用当前系统时间戳(秒)
|
||||
@ -62,23 +59,19 @@ class LockTimeLogic extends BaseGetXController {
|
||||
}
|
||||
|
||||
// 验证时间戳是否在合理范围内(例如:2000年到2100年之间)
|
||||
final DateTime dateTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(indateValue * 1000);
|
||||
final DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(indateValue * 1000);
|
||||
if (dateTime.year < 2000 || dateTime.year > 2100) {
|
||||
AppLog.log('时间戳超出合理范围: $indateValue');
|
||||
indateValue = DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
||||
}
|
||||
|
||||
AppLog.log(
|
||||
'====================indate:$indate indateValue:$indateValue');
|
||||
AppLog.log('====================indate:$indate indateValue:$indateValue');
|
||||
state.dateTime.value = DateTool().dateToYMDHNString('$indateValue');
|
||||
break;
|
||||
case 0x06:
|
||||
//需要鉴权
|
||||
final List<String>? privateKey =
|
||||
await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList =
|
||||
changeStringListToIntList(privateKey!);
|
||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
IoSenderManage.senderGetStarLockStatuInfo(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
@ -101,8 +94,7 @@ class LockTimeLogic extends BaseGetXController {
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
final String dataEime =
|
||||
DateTool().dateToYMDHNString('${state.serverTime}');
|
||||
final String dataEime = DateTool().dateToYMDHNString('${state.serverTime}');
|
||||
|
||||
state.dateTime.value = dataEime;
|
||||
|
||||
@ -149,19 +141,15 @@ class LockTimeLogic extends BaseGetXController {
|
||||
dismissEasyLoading();
|
||||
state.sureBtnState.value = 0;
|
||||
});
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||
(BluetoothConnectionState connectionState) async {
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
||||
if (connectionState == BluetoothConnectionState.connected) {
|
||||
final List<String>? privateKey =
|
||||
await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList =
|
||||
changeStringListToIntList(privateKey!);
|
||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||
|
||||
final List<String>? signKey =
|
||||
await Storage.getStringList(saveBlueSignKey);
|
||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
||||
final List<int> getSignKeyList = changeStringListToIntList(signKey!);
|
||||
|
||||
IoSenderManage.senderTimingCommand(
|
||||
@ -190,13 +178,10 @@ class LockTimeLogic extends BaseGetXController {
|
||||
showBlueConnetctToastTimer(action: () {
|
||||
dismissEasyLoading();
|
||||
});
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||
(BluetoothConnectionState deviceConnectionState) async {
|
||||
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async {
|
||||
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||
final List<String>? privateKey =
|
||||
await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList =
|
||||
changeStringListToIntList(privateKey!);
|
||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
IoSenderManage.senderGetStarLockStatuInfo(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
@ -206,8 +191,7 @@ class LockTimeLogic extends BaseGetXController {
|
||||
isBeforeAddUser: false,
|
||||
privateKey: getPrivateKeyList,
|
||||
);
|
||||
} else if (deviceConnectionState ==
|
||||
BluetoothConnectionState.disconnected) {
|
||||
} else if (deviceConnectionState == BluetoothConnectionState.disconnected) {
|
||||
dismissEasyLoading();
|
||||
cancelBlueConnetctToastTimer();
|
||||
// if (state.ifCurrentScreen.value == true) {
|
||||
@ -219,8 +203,7 @@ class LockTimeLogic extends BaseGetXController {
|
||||
|
||||
// 从网关获取时间
|
||||
Future<void> getLockTimeFromGateway() async {
|
||||
final GetServerDatetimeEntity entity =
|
||||
await ApiRepository.to.getLockTimeFromGateway(
|
||||
final GetServerDatetimeEntity entity = await ApiRepository.to.getLockTimeFromGateway(
|
||||
lockId: state.lockSetInfoData.value.lockId.toString(),
|
||||
);
|
||||
if (entity.errorCode!.codeIsSuccessful) {}
|
||||
@ -228,10 +211,10 @@ class LockTimeLogic extends BaseGetXController {
|
||||
|
||||
// 从服务器获取锁的时间 开锁时传入
|
||||
Future<void> getServerDatetime(bool isSendTime) async {
|
||||
final GetServerDatetimeEntity entity =
|
||||
await ApiRepository.to.getServerDatetimeData(isUnShowLoading: false);
|
||||
final GetServerDatetimeEntity entity = await ApiRepository.to.getServerDatetimeData(isUnShowLoading: false);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.serverTime = entity.data!.date! ~/ 1000;
|
||||
AppLog.log('msg:${state.serverTime}');
|
||||
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
||||
if (isSendTime == false) {
|
||||
getStarLockStatus();
|
||||
|
||||
@ -257,7 +257,7 @@ class SpeechLanguageSettingsLogic extends BaseGetXController {
|
||||
}
|
||||
break;
|
||||
default:
|
||||
showToast('获取设备型号失败'.tr);
|
||||
// showToast('获取设备型号失败'.tr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadPasswordDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadPasswordPage = state.uploadPasswordPage + 1;
|
||||
|
||||
@ -128,7 +128,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadCardDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadCardPage = state.uploadCardPage + 1;
|
||||
|
||||
@ -175,7 +175,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadFingerprintDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadFingerprintPage = state.uploadFingerprintPage + 1;
|
||||
|
||||
@ -222,7 +222,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadFaceDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadFacePage = state.uploadFacePage + 1;
|
||||
|
||||
@ -269,7 +269,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadPalmVeinDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadPalmVeinPage = state.uploadPalmVeinPage + 1;
|
||||
|
||||
@ -316,7 +316,7 @@ class UploadDataLogic extends BaseGetXController {
|
||||
|
||||
final int dataLength = reply.data[8];
|
||||
state.uploadRemoteControlDataList.addAll(reply.data.sublist(9, reply.data.length));
|
||||
if (dataLength == 10) {
|
||||
if (dataLength == 10 || dataLength == 9) {
|
||||
// 当数据是10的时候继续请求
|
||||
state.uploadRemoteControlPage = state.uploadRemoteControlPage + 1;
|
||||
|
||||
|
||||
@ -43,10 +43,26 @@ class GatewayConfigurationWifiLogic extends BaseGetXController {
|
||||
|
||||
Future<void> getGatewayConfiguration() async {
|
||||
final GetGatewayConfigurationEntity entity =
|
||||
await ApiRepository.to.getGatewayConfiguration(timeout: 60);
|
||||
await ApiRepository.to.getGatewayConfiguration(timeout: 60);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.getGatewayConfigurationStr = entity.data ?? '';
|
||||
// AppLog.log('state.getGatewayConfigurationStr:${state.getGatewayConfigurationStr}');
|
||||
String configStr = entity.data ?? '';
|
||||
|
||||
// 解析并添加时区偏移量
|
||||
if (configStr.isNotEmpty) {
|
||||
try {
|
||||
Map<String, dynamic> config = jsonDecode(configStr);
|
||||
config['timeZoneOffset'] = DateTime.now().timeZoneOffset.inSeconds;
|
||||
state.getGatewayConfigurationStr = jsonEncode(config);
|
||||
} catch (e) {
|
||||
AppLog.log('处理网关配置时区信息失败: $e');
|
||||
// 如果解析失败,仍然使用原始配置
|
||||
state.getGatewayConfigurationStr = configStr;
|
||||
}
|
||||
} else {
|
||||
state.getGatewayConfigurationStr = configStr;
|
||||
}
|
||||
|
||||
AppLog.log('state.getGatewayConfigurationStr:${state.getGatewayConfigurationStr}');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ class _PermissionGuidancePageState extends State<PermissionGuidancePage> {
|
||||
|
||||
final List<Map<String, String>> _stepsData = [
|
||||
{
|
||||
'image': 'images/guide/1.png',
|
||||
'image': 'images/guide/matter.png',
|
||||
'text': '步骤1:打开应用信息,点击通知管理选项',
|
||||
},
|
||||
{
|
||||
@ -26,7 +26,7 @@ class _PermissionGuidancePageState extends State<PermissionGuidancePage> {
|
||||
'text': '步骤2:下滑点击呼叫提醒的通知选项',
|
||||
},
|
||||
{
|
||||
'image': 'images/guide/3.png',
|
||||
'image': 'images/guide/tuya.png',
|
||||
'text': '步骤3:选择在锁定屏幕上的选项设置',
|
||||
},
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user