feat: bugly自定义日志采集逻辑
This commit is contained in:
parent
4bfb11e1d1
commit
552c787c5a
@ -128,4 +128,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.tencent.mm.sdk.** { *; }
|
-keep class com.tencent.mm.sdk.** { *; }
|
||||||
-keep class com.tencent.mm.opensdk.** { *; }
|
-keep class com.tencent.mm.opensdk.** { *; }
|
||||||
|
|
||||||
|
-dontwarn com.tencent.bugly.**
|
||||||
|
-keep public class com.tencent.bugly.**{*;}
|
||||||
@ -128,4 +128,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.tencent.mm.sdk.** { *; }
|
-keep class com.tencent.mm.sdk.** { *; }
|
||||||
-keep class com.tencent.mm.opensdk.** { *; }
|
-keep class com.tencent.mm.opensdk.** { *; }
|
||||||
|
|
||||||
|
-dontwarn com.tencent.bugly.**
|
||||||
|
-keep public class com.tencent.bugly.**{*;}
|
||||||
@ -134,6 +134,7 @@
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
|
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
|
||||||
<action android:name="com.huawei.android.push.intent.RECEIVE" />
|
<action android:name="com.huawei.android.push.intent.RECEIVE" />
|
||||||
|
|
||||||
<category android:name="${applicationId}" />
|
<category android:name="${applicationId}" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
@ -193,6 +194,9 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
|
<meta-data
|
||||||
|
android:name="BUGLY_ENABLE_DEBUG"
|
||||||
|
android:value="true" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -80,8 +80,8 @@ PODS:
|
|||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
- flutter_blue_plus (0.0.1):
|
- flutter_blue_plus (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_bugly_plugin (0.0.1):
|
- flutter_bugly (0.0.1):
|
||||||
- Bugly
|
- Bugly (= 2.6.1)
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_local_notifications (0.0.1):
|
- flutter_local_notifications (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
@ -173,7 +173,7 @@ DEPENDENCIES:
|
|||||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
- flutter_blue_plus (from `.symlinks/plugins/flutter_blue_plus/ios`)
|
- flutter_blue_plus (from `.symlinks/plugins/flutter_blue_plus/ios`)
|
||||||
- flutter_bugly_plugin (from `.symlinks/plugins/flutter_bugly_plugin/ios`)
|
- flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
|
||||||
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||||
- flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`)
|
- flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`)
|
||||||
- flutter_pcm_sound (from `.symlinks/plugins/flutter_pcm_sound/ios`)
|
- flutter_pcm_sound (from `.symlinks/plugins/flutter_pcm_sound/ios`)
|
||||||
@ -252,8 +252,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: Flutter
|
:path: Flutter
|
||||||
flutter_blue_plus:
|
flutter_blue_plus:
|
||||||
:path: ".symlinks/plugins/flutter_blue_plus/ios"
|
:path: ".symlinks/plugins/flutter_blue_plus/ios"
|
||||||
flutter_bugly_plugin:
|
flutter_bugly:
|
||||||
:path: ".symlinks/plugins/flutter_bugly_plugin/ios"
|
:path: ".symlinks/plugins/flutter_bugly/ios"
|
||||||
flutter_local_notifications:
|
flutter_local_notifications:
|
||||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||||
flutter_native_contact_picker:
|
flutter_native_contact_picker:
|
||||||
@ -326,7 +326,7 @@ SPEC CHECKSUMS:
|
|||||||
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
|
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
|
||||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||||
flutter_blue_plus: 4837da7d00cf5d441fdd6635b3a57f936778ea96
|
flutter_blue_plus: 4837da7d00cf5d441fdd6635b3a57f936778ea96
|
||||||
flutter_bugly_plugin: d2db6d6641938269fa538575126e8ff530ee02c7
|
flutter_bugly: bf35df32a9c5d50b8aacdd35bd8ddc5b55150dae
|
||||||
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
|
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
|
||||||
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
|
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
|
||||||
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
|
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
|
||||||
|
|||||||
@ -2,10 +2,10 @@ import 'dart:async';
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
|
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
import 'package:star_lock/app_settings/app_settings.dart';
|
||||||
|
import 'package:star_lock/tools/bugly/bugly_tool.dart';
|
||||||
import 'package:star_lock/tools/commonDataManage.dart';
|
import 'package:star_lock/tools/commonDataManage.dart';
|
||||||
|
|
||||||
import 'io_tool/io_model.dart';
|
import 'io_tool/io_model.dart';
|
||||||
@ -100,7 +100,7 @@ class BlueManage {
|
|||||||
void _initAdapterStateStateSubscription() {
|
void _initAdapterStateStateSubscription() {
|
||||||
_adapterStateStateSubscription ??=
|
_adapterStateStateSubscription ??=
|
||||||
FlutterBluePlus.adapterState.listen((BluetoothAdapterState state) {
|
FlutterBluePlus.adapterState.listen((BluetoothAdapterState state) {
|
||||||
AppLog.log('蓝牙状态:$state');
|
AppLog.log('蓝牙状态:$state');
|
||||||
_adapterState = state;
|
_adapterState = state;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -228,7 +228,8 @@ class BlueManage {
|
|||||||
if (_adapterState == BluetoothAdapterState.on) {
|
if (_adapterState == BluetoothAdapterState.on) {
|
||||||
try {
|
try {
|
||||||
FlutterBluePlus.startScan(timeout: Duration(seconds: timeout));
|
FlutterBluePlus.startScan(timeout: Duration(seconds: timeout));
|
||||||
final StreamSubscription<List<ScanResult>> subscription = FlutterBluePlus.scanResults.listen((List<ScanResult> results) {
|
final StreamSubscription<List<ScanResult>> subscription =
|
||||||
|
FlutterBluePlus.scanResults.listen((List<ScanResult> results) {
|
||||||
scanDevices.clear();
|
scanDevices.clear();
|
||||||
for (final ScanResult scanResult in results) {
|
for (final ScanResult scanResult in results) {
|
||||||
// AppLog.log('扫描到的设备:${scanResult.device.platformName} ${scanResult.advertisementData.advName} ${scanResult.rssi}');
|
// AppLog.log('扫描到的设备:${scanResult.device.platformName} ${scanResult.advertisementData.advName} ${scanResult.rssi}');
|
||||||
@ -305,7 +306,10 @@ class BlueManage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
FlutterBuglyPlugin.reportException(exceptionName: 'blueSendData isAvailable状态', reason: 'blueSendData isAvailable不可用');
|
BuglyTool.uploadException(
|
||||||
|
message: 'blueSendData isAvailable状态',
|
||||||
|
detail: 'blueSendData isAvailable不可用--json');
|
||||||
|
// FlutterBuglyPlugin.reportException(exceptionName: 'blueSendData isAvailable状态', reason: 'blueSendData isAvailable不可用');
|
||||||
AppLog.log('开始扫描 蓝牙不可用,不能进行蓝牙操作');
|
AppLog.log('开始扫描 蓝牙不可用,不能进行蓝牙操作');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -358,13 +362,12 @@ class BlueManage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _connectDevice(
|
Future<void> _connectDevice(
|
||||||
List<ScanResult> devicesList,
|
List<ScanResult> devicesList,
|
||||||
String deviceName,
|
String deviceName,
|
||||||
ConnectStateCallBack connectStateCallBack,
|
ConnectStateCallBack connectStateCallBack, {
|
||||||
{
|
bool isAddEquipment = false, // 是否是添加设备之前
|
||||||
bool isAddEquipment = false,// 是否是添加设备之前
|
bool isReconnect = true, // 是否是重连
|
||||||
bool isReconnect = true,// 是否是重连
|
}) async {
|
||||||
}) async {
|
|
||||||
// 判断数组列表里面是否有这个设备
|
// 判断数组列表里面是否有这个设备
|
||||||
// AppLog.log("devicesList:$devicesList");
|
// AppLog.log("devicesList:$devicesList");
|
||||||
final int knownDeviceIndex = devicesList.indexWhere((ScanResult d) =>
|
final int knownDeviceIndex = devicesList.indexWhere((ScanResult d) =>
|
||||||
@ -392,15 +395,17 @@ class BlueManage {
|
|||||||
AppLog.log('调用了停止扫描的方法');
|
AppLog.log('调用了停止扫描的方法');
|
||||||
await stopScan();
|
await stopScan();
|
||||||
|
|
||||||
if ((scanResult.advertisementData.serviceUuids[0].toString()[31] == '0') && isAddEquipment == false) {
|
if ((scanResult.advertisementData.serviceUuids[0].toString()[31] == '0') &&
|
||||||
|
isAddEquipment == false) {
|
||||||
// 添加这个判断是因为有些苹果设备或者安卓等性能比较好的设备时,添加完锁之后,锁板未改变为已添加状态之前,就进行了蓝牙连接,导致添加完锁就失败,这里进行了判断,如果第一次连接失败,就清除缓存重新扫描连接
|
// 添加这个判断是因为有些苹果设备或者安卓等性能比较好的设备时,添加完锁之后,锁板未改变为已添加状态之前,就进行了蓝牙连接,导致添加完锁就失败,这里进行了判断,如果第一次连接失败,就清除缓存重新扫描连接
|
||||||
if(isReconnect == true){
|
if (isReconnect == true) {
|
||||||
AppLog.log('该锁已被重置, 重新发送扫描命令');
|
AppLog.log('该锁已被重置, 重新发送扫描命令');
|
||||||
scanDevices.clear();
|
scanDevices.clear();
|
||||||
startScanSingle(deviceName, 15, (List<ScanResult> scanDevices) {
|
startScanSingle(deviceName, 15, (List<ScanResult> scanDevices) {
|
||||||
_connectDevice(scanDevices, deviceName, connectStateCallBack, isAddEquipment: isAddEquipment, isReconnect: false);
|
_connectDevice(scanDevices, deviceName, connectStateCallBack,
|
||||||
|
isAddEquipment: isAddEquipment, isReconnect: false);
|
||||||
});
|
});
|
||||||
}else{
|
} else {
|
||||||
connectStateCallBack(BluetoothConnectionState.disconnected);
|
connectStateCallBack(BluetoothConnectionState.disconnected);
|
||||||
EasyLoading.showToast('该锁已被重置'.tr, duration: 2000.milliseconds);
|
EasyLoading.showToast('该锁已被重置'.tr, duration: 2000.milliseconds);
|
||||||
scanDevices.clear();
|
scanDevices.clear();
|
||||||
@ -459,8 +464,10 @@ class BlueManage {
|
|||||||
//循环判断服务
|
//循环判断服务
|
||||||
for (final BluetoothService service in services) {
|
for (final BluetoothService service in services) {
|
||||||
if (service.uuid == _serviceIdConnect) {
|
if (service.uuid == _serviceIdConnect) {
|
||||||
for (final BluetoothCharacteristic characteristic in service.characteristics) {
|
for (final BluetoothCharacteristic characteristic
|
||||||
if (characteristic.characteristicUuid == _characteristicIdSubscription) {
|
in service.characteristics) {
|
||||||
|
if (characteristic.characteristicUuid ==
|
||||||
|
_characteristicIdSubscription) {
|
||||||
_subScribeToCharacteristic(characteristic);
|
_subScribeToCharacteristic(characteristic);
|
||||||
bluetoothConnectionState = BluetoothConnectionState.connected;
|
bluetoothConnectionState = BluetoothConnectionState.connected;
|
||||||
connectStateCallBack(bluetoothConnectionState!);
|
connectStateCallBack(bluetoothConnectionState!);
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_bugly/flutter_bugly.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
@ -23,30 +24,31 @@ import 'tools/store_service.dart';
|
|||||||
|
|
||||||
// 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明
|
// 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明
|
||||||
FutureOr<void> main() async {
|
FutureOr<void> main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
FlutterBugly.postCatchedException(() async {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
await _setCommonServices();
|
await _setCommonServices();
|
||||||
|
|
||||||
// 设置国际化信息
|
// 设置国际化信息
|
||||||
await _initTranslation();
|
await _initTranslation();
|
||||||
|
|
||||||
final bool isLogin = await getLoginStatus();
|
final bool isLogin = await getLoginStatus();
|
||||||
if (isLogin) {
|
if (isLogin) {
|
||||||
await privacySDKInitialization();
|
await privacySDKInitialization();
|
||||||
}
|
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
|
||||||
final bool? openDeBug = await Storage.getBool(isOpenDeBug);
|
|
||||||
if (openDeBug == true) {
|
|
||||||
DeBug.showFloatWidget();
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
runApp(MyApp(isLogin: isLogin));
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
|
final bool? openDeBug = await Storage.getBool(isOpenDeBug);
|
||||||
|
if (openDeBug == true) {
|
||||||
|
DeBug.showFloatWidget();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
runApp(MyApp(isLogin: isLogin));
|
||||||
|
});
|
||||||
|
|
||||||
if (AppPlatform.isAndroid) {
|
if (AppPlatform.isAndroid) {
|
||||||
const SystemUiOverlayStyle systemUiOverlayStyle =
|
const SystemUiOverlayStyle systemUiOverlayStyle =
|
||||||
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
|
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
|
||||||
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
|
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +84,7 @@ Future<void> privacySDKInitialization() async {
|
|||||||
await jpushProvider.initJPushService();
|
await jpushProvider.initJPushService();
|
||||||
}
|
}
|
||||||
|
|
||||||
void checkChinese(){
|
void checkChinese() {
|
||||||
// 获取当前脚本的目录
|
// 获取当前脚本的目录
|
||||||
final String scriptDir = path.dirname(Platform.script.path);
|
final String scriptDir = path.dirname(Platform.script.path);
|
||||||
|
|
||||||
@ -104,4 +106,4 @@ void findChineseCharacters(Directory directory) {
|
|||||||
|
|
||||||
bool hasChineseCharacters(String input) {
|
bool hasChineseCharacters(String input) {
|
||||||
return RegExp(r'[\u4e00-\u9fa5]').hasMatch(input);
|
return RegExp(r'[\u4e00-\u9fa5]').hasMatch(input);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/scheduler.dart';
|
import 'package:flutter/scheduler.dart';
|
||||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
|
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
@ -11,8 +10,8 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
|
|||||||
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
|
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/lockSet/lockTime/getServerDatetime_entity.dart';
|
import 'package:star_lock/main/lockDetail/lockSet/lockTime/getServerDatetime_entity.dart';
|
||||||
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
|
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
|
||||||
|
import 'package:star_lock/tools/bugly/bugly_tool.dart';
|
||||||
import 'package:star_lock/tools/throttler.dart';
|
import 'package:star_lock/tools/throttler.dart';
|
||||||
|
|
||||||
import 'package:star_lock/widget/permission/permission_dialog.dart';
|
import 'package:star_lock/widget/permission/permission_dialog.dart';
|
||||||
|
|
||||||
import '../../../app_settings/app_settings.dart';
|
import '../../../app_settings/app_settings.dart';
|
||||||
@ -334,7 +333,8 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
showBlueConnetctToastTimer(
|
showBlueConnetctToastTimer(
|
||||||
outTimer: 20,
|
outTimer: 20,
|
||||||
action: () {
|
action: () {
|
||||||
FlutterBuglyPlugin.reportException(exceptionName: '开门超时处理', reason: '开门超时,断开连接');
|
// FlutterBuglyPlugin.reportException(exceptionName: '开门超时处理', reason: '开门超时,断开连接');
|
||||||
|
BuglyTool.uploadException(message: '开门超时处理', detail: '开门超时,断开连接--json');
|
||||||
resetOpenDoorState();
|
resetOpenDoorState();
|
||||||
blueManageDisconnect();
|
blueManageDisconnect();
|
||||||
});
|
});
|
||||||
@ -351,7 +351,8 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
.blueSendData(state.keyInfos.value.bluetooth!.bluetoothDeviceName!,
|
.blueSendData(state.keyInfos.value.bluetooth!.bluetoothDeviceName!,
|
||||||
(BluetoothConnectionState deviceConnectionState) async {
|
(BluetoothConnectionState deviceConnectionState) async {
|
||||||
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||||
FlutterBuglyPlugin.reportException(exceptionName: '蓝牙连接成功', reason: '蓝牙连接成功,发送开锁指令');
|
BuglyTool.uploadException(message: '蓝牙连接成功', detail: '蓝牙连接成功,发送开锁指令--json',data: {'key1':'value1','key2':'value2'});
|
||||||
|
// FlutterBuglyPlugin.reportException(exceptionName: '蓝牙连接成功', reason: '蓝牙连接成功,发送开锁指令');
|
||||||
IoSenderManage.senderOpenLock(
|
IoSenderManage.senderOpenLock(
|
||||||
lockID: BlueManage().connectDeviceName,
|
lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
|
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@ -11,6 +10,7 @@ import 'package:star_lock/flavors.dart';
|
|||||||
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_state.dart';
|
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_state.dart';
|
||||||
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
|
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
|
||||||
import 'package:star_lock/tools/aliyunRealNameAuth/aliyunRealNameAuthHandle.dart';
|
import 'package:star_lock/tools/aliyunRealNameAuth/aliyunRealNameAuthHandle.dart';
|
||||||
|
import 'package:star_lock/tools/bugly/bugly_tool.dart';
|
||||||
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
import 'package:star_lock/tools/showCupertinoAlertView.dart';
|
||||||
import 'package:star_lock/tools/showTipView.dart';
|
import 'package:star_lock/tools/showTipView.dart';
|
||||||
import 'package:star_lock/widget/flavors_img.dart';
|
import 'package:star_lock/widget/flavors_img.dart';
|
||||||
@ -90,10 +90,17 @@ class _LockDetailPageState extends State<LockDetailPage>
|
|||||||
|
|
||||||
//鑫泓佳布局
|
//鑫泓佳布局
|
||||||
Widget xhjWidget() {
|
Widget xhjWidget() {
|
||||||
final bool isShowTip =
|
final bool isShowTip = (state.keyInfos.value.keyType ==
|
||||||
(state.keyInfos.value.keyType == XSConstantMacro.keyTypeTime || state.keyInfos.value.keyType == XSConstantMacro.keyTypeLoop)
|
XSConstantMacro.keyTypeTime ||
|
||||||
&& (DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <= 15 && DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >= 0)
|
state.keyInfos.value.keyType == XSConstantMacro.keyTypeLoop) &&
|
||||||
&& (state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse || state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusWaitReceive);
|
(DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <=
|
||||||
|
15 &&
|
||||||
|
DateTool()
|
||||||
|
.compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >=
|
||||||
|
0) &&
|
||||||
|
(state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse ||
|
||||||
|
state.keyInfos.value.keyStatus ==
|
||||||
|
XSConstantMacro.keyStatusWaitReceive);
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
body: Obx(() {
|
body: Obx(() {
|
||||||
@ -1428,13 +1435,21 @@ class _LockDetailPageState extends State<LockDetailPage>
|
|||||||
if (isOpenLockNeedOnline) {
|
if (isOpenLockNeedOnline) {
|
||||||
// 不需要联网
|
// 不需要联网
|
||||||
state.openDoorModel = 0;
|
state.openDoorModel = 0;
|
||||||
FlutterBuglyPlugin.reportException(exceptionName: '点击了不需要联网开锁');
|
// FlutterBuglyPlugin.reportException(exceptionName: '点击了不需要联网开锁');
|
||||||
|
BuglyTool.uploadException(
|
||||||
|
message: '点击了不需要联网开锁',
|
||||||
|
detail: '点击了不需要联网开锁--------json',
|
||||||
|
data: {'key1': 'value1', 'key2': 'value2'});
|
||||||
AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网');
|
AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网');
|
||||||
logic.openDoorAction();
|
logic.openDoorAction();
|
||||||
} else {
|
} else {
|
||||||
// 需要联网
|
// 需要联网
|
||||||
state.openDoorModel = 2;
|
state.openDoorModel = 2;
|
||||||
FlutterBuglyPlugin.reportException(exceptionName: '点击了需要联网开锁');
|
// FlutterBuglyPlugin.reportException(exceptionName: '点击了需要联网开锁');
|
||||||
|
BuglyTool.uploadException(
|
||||||
|
message: '点击了需要联网开锁',
|
||||||
|
detail: '点击了需要联网开锁---json',
|
||||||
|
data: {'key1': 'value1', 'key2': 'value2'});
|
||||||
AppLog.log('点击开锁 state.openDoorModel = 2 需要联网');
|
AppLog.log('点击开锁 state.openDoorModel = 2 需要联网');
|
||||||
logic.getLockNetToken();
|
logic.getLockNetToken();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
|
import 'package:flutter_bugly/flutter_bugly.dart';
|
||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
import 'package:star_lock/app_settings/app_settings.dart';
|
||||||
import 'package:star_lock/flavors.dart';
|
import 'package:star_lock/flavors.dart';
|
||||||
import 'package:star_lock/login/login/entity/LoginData.dart';
|
import 'package:star_lock/login/login/entity/LoginData.dart';
|
||||||
@ -16,15 +16,15 @@ class BuglyTool {
|
|||||||
static Future<void> init() async {
|
static Future<void> init() async {
|
||||||
if (F.isProductionEnv) {
|
if (F.isProductionEnv) {
|
||||||
//生产
|
//生产
|
||||||
await FlutterBuglyPlugin.init(
|
await FlutterBugly.init(
|
||||||
appIdAndroid: '5729fb97dc',
|
androidAppId: '5729fb97dc',
|
||||||
appIdiOS: '33c4430cce',
|
iOSAppId: '33c4430cce',
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
//测试
|
//测试
|
||||||
await FlutterBuglyPlugin.init(
|
await FlutterBugly.init(
|
||||||
appIdAndroid: '5729fb97dc',
|
androidAppId: '5729fb97dc',
|
||||||
appIdiOS: '33c4430cce',
|
iOSAppId: '33c4430cce',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,28 +33,35 @@ class BuglyTool {
|
|||||||
setUserId(loginData?.userid);
|
setUserId(loginData?.userid);
|
||||||
|
|
||||||
//错误日志监控
|
//错误日志监控
|
||||||
FlutterError.onError = (FlutterErrorDetails details) async {
|
// FlutterError.onError = (FlutterErrorDetails details) async {
|
||||||
AppLog.log('error:${details.exception.toString()}',
|
// AppLog.log('error:${details.exception.toString()}',
|
||||||
stackTrace: details.stack, error: true);
|
// stackTrace: details.stack, error: true);
|
||||||
FlutterBuglyPlugin.reportException(
|
// FlutterBugly.uploadException(
|
||||||
exceptionName: details.exception.toString(),
|
// message: details.exception.toString(),
|
||||||
reason: details.stack.toString());
|
// detail: details.stack.toString());
|
||||||
Zone.current.handleUncaughtError(
|
// Zone.current.handleUncaughtError(
|
||||||
details.exception, details.stack ?? StackTrace.empty);
|
// details.exception, details.stack ?? StackTrace.empty);
|
||||||
};
|
// };
|
||||||
|
|
||||||
//错误日志监控
|
//错误日志监控
|
||||||
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
|
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
|
||||||
AppLog.log('error:$error', stackTrace: stack, error: true);
|
AppLog.log('error:$error', stackTrace: stack, error: true);
|
||||||
FlutterBuglyPlugin.reportException(
|
FlutterBugly.uploadException(
|
||||||
exceptionName: error.toString(), reason: stack.toString());
|
message: error.toString(), detail: stack.toString());
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
//关联 userid
|
//关联 userid
|
||||||
static void setUserId(int? userId) {
|
static void setUserId(int? userId) {
|
||||||
FlutterBuglyPlugin.setUserIdentifier(
|
FlutterBugly.setUserId(userId?.toString() ?? '');
|
||||||
userIdentifier: (userId ?? 0).toString());
|
}
|
||||||
|
|
||||||
|
static void uploadException({
|
||||||
|
required String message,
|
||||||
|
required String detail,
|
||||||
|
Map? data,
|
||||||
|
}) {
|
||||||
|
FlutterBugly.uploadException(message: message, detail: detail, data: data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -234,7 +234,8 @@ dependencies:
|
|||||||
colorfilter_generator: ^0.0.8
|
colorfilter_generator: ^0.0.8
|
||||||
file_picker: ^5.3.1
|
file_picker: ^5.3.1
|
||||||
# 错误日志监控
|
# 错误日志监控
|
||||||
flutter_bugly_plugin: ^0.0.9
|
# flutter_bugly_plugin: ^0.0.9
|
||||||
|
flutter_bugly: ^1.0.2
|
||||||
open_filex: ^4.4.0
|
open_filex: ^4.4.0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user