Dubhe
Committed by GitHub

feat: add uploadInterval config

... ... @@ -22,7 +22,8 @@ class AutoTrackConfig {
this.enableClick = true,
this.enableUpload = false,
this.enableDrag = false,
this.enableIgnoreNullKey = false
this.enableIgnoreNullKey = false,
this.uploadInterval
}) {
trackId ??= const Uuid().v4().replaceAll('-', '');
signature ??= (t) => sha256.convert(utf8.encode('$appKey$t$appSecret')).toString();
... ... @@ -35,6 +36,8 @@ class AutoTrackConfig {
String? userId;
String? uniqueId;
int? uploadInterval;
Function? signature;
List<AutoTrackPageConfig> pageConfigs;
... ...
... ... @@ -41,6 +41,8 @@ class AutoTrackConfigManager {
_deviceId = md5.convert(utf8.encode('${(_baseDeviceInfo as IosDeviceInfo).identifierForVendor}#${config.appKey}')).toString();
} else if (_baseDeviceInfo is AndroidDeviceInfo) {
_deviceId = md5.convert(utf8.encode('${(_baseDeviceInfo as AndroidDeviceInfo).serialNumber}#${config.appKey}')).toString();
} else if (_baseDeviceInfo is MacOsDeviceInfo) {
_deviceId = '${(_baseDeviceInfo as MacOsDeviceInfo).hostName}-${(_baseDeviceInfo as MacOsDeviceInfo).computerName}';
} else {
_deviceId = '';
}
... ...
... ... @@ -23,7 +23,7 @@ class AutoTrackQueue {
void start() {
if (_timer != null) return;
_timer = Timer.periodic(const Duration(seconds: 10), (timer) {
_timer = Timer.periodic(Duration(seconds: AutoTrackConfigManager.instance.config.uploadInterval ?? 10), (timer) {
flush();
});
}
... ...
... ... @@ -16,8 +16,7 @@ class DragInfo {
dragInfo._beginOffset = begin;
dragInfo._endOffset = end;
dragInfo._duration = duration;
dragInfo._ignore = AutoTrackConfigManager.instance.isIgnoreElement(
pageElement.widget.key ?? ValueKey(pageInfo.pageManualKey));
dragInfo._ignore = pageInfo.ignore;
double dx = dragInfo.endOffset.dx - dragInfo.beginOffset.dx;
double dy = dragInfo.endOffset.dy - dragInfo.beginOffset.dy;
... ...
... ... @@ -51,7 +51,7 @@ class _AutoTrackPanGestureRecognizer extends PanGestureRecognizer {
if (beginEvent != null) {
final distance = (beginEvent!.position.dx - event.position.dx).abs() +
(beginEvent!.position.dy - event.position.dy).abs();
if (distance > 30) {
if (distance > 50) {
final info = DragInfo.from(
begin: beginEvent!.position,
end: event.position,
... ...