flush method
void
flush()
Implementation
void flush() {
if (_queue.isEmpty) return;
final uploadList = List.from(_queue);
_queue.clear();
final config = AutoTrackConfigManager.instance.config;
final host = config.host;
if (host != null) {
final t = DateTime.now().millisecondsSinceEpoch;
dio.post(host, data: {
'app_key': config.appKey ?? '',
'signature': config.signature!(t),
't': t,
'user_id': config.userId ?? '',
'track_id': config.trackId ?? '',
'unique_id': config.uniqueId ?? AutoTrackConfigManager.instance.deviceId,
'device_id': AutoTrackConfigManager.instance.deviceId,
'data_list': uploadList.map((e) => e.toMap()).toList(),
'app_version': AutoTrackConfigManager.instance.appVersion,
'device_info': AutoTrackConfigManager.instance.deviceInfo
}).onError((error, stackTrace) {
AutoTrackLogger.getInstance().error(error!);
return Future.value(Response(statusCode: 500, requestOptions: RequestOptions(path: host)));
});
}
}