Dubhe
Committed by GitHub

feat: add device info and app version

1 import 'package:auto_track/auto_track/config/queue.dart'; 1 import 'package:auto_track/auto_track/config/queue.dart';
  2 +import 'package:device_info_plus/device_info_plus.dart';
2 import 'package:flutter/widgets.dart'; 3 import 'package:flutter/widgets.dart';
  4 +import 'package:package_info_plus/package_info_plus.dart';
3 5
4 import 'config.dart'; 6 import 'config.dart';
5 7
6 class AutoTrackConfigManager { 8 class AutoTrackConfigManager {
7 static final AutoTrackConfigManager instance = AutoTrackConfigManager._(); 9 static final AutoTrackConfigManager instance = AutoTrackConfigManager._();
8 - AutoTrackConfigManager._(); 10 +
  11 +
  12 + AutoTrackConfigManager._() {
  13 + PackageInfo.fromPlatform().then((value) => _appVersion = value.version);
  14 + DeviceInfoPlugin().deviceInfo.then((value) => _deviceInfo = value.data);
  15 + }
  16 +
  17 + String _appVersion = '';
  18 + String get appVersion => _appVersion;
  19 +
  20 + Map<String, dynamic> _deviceInfo = {};
  21 + Map<String, dynamic> get deviceInfo => _deviceInfo;
  22 +
9 23
10 AutoTrackConfig _config = AutoTrackConfig(); 24 AutoTrackConfig _config = AutoTrackConfig();
11 AutoTrackConfig get config => _config; 25 AutoTrackConfig get config => _config;
@@ -48,6 +48,8 @@ class AutoTrackQueue { @@ -48,6 +48,8 @@ class AutoTrackQueue {
48 'user_id': config.userId ?? '', 48 'user_id': config.userId ?? '',
49 'track_id': config.trackId ?? '', 49 'track_id': config.trackId ?? '',
50 'data_list': uploadList.map((e) => e.toMap()).toList(), 50 'data_list': uploadList.map((e) => e.toMap()).toList(),
  51 + 'app_version': AutoTrackConfigManager.instance.appVersion,
  52 + 'device_info': AutoTrackConfigManager.instance.deviceInfo
51 }).onError((error, stackTrace) { 53 }).onError((error, stackTrace) {
52 AutoTrackLogger.getInstance().error(error!); 54 AutoTrackLogger.getInstance().error(error!);
53 return Future.value(Response(statusCode: 500, requestOptions: RequestOptions(path: host))); 55 return Future.value(Response(statusCode: 500, requestOptions: RequestOptions(path: host)));
@@ -9,9 +9,11 @@ environment: @@ -9,9 +9,11 @@ environment:
9 9
10 dependencies: 10 dependencies:
11 crypto: ^3.0.3 11 crypto: ^3.0.3
  12 + device_info_plus: ^9.1.2
12 dio: ^5.4.1 13 dio: ^5.4.1
13 flutter: 14 flutter:
14 sdk: flutter 15 sdk: flutter
  16 + package_info_plus: ^5.0.1
15 plugin_platform_interface: ^2.0.2 17 plugin_platform_interface: ^2.0.2
16 uuid: ^4.3.3 18 uuid: ^4.3.3
17 19