-
Notifications
You must be signed in to change notification settings - Fork 7
/
_device_info_util_device.dart
50 lines (45 loc) · 1.74 KB
/
_device_info_util_device.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import 'dart:io';
import 'dart:ui';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:raygun4flutter/src/logging/raygun_logger.dart';
import 'package:raygun4flutter/src/messages/raygun_environment_message.dart';
Future<RaygunEnvironmentMessage> fromDeviceInfo() async {
final environment = RaygunEnvironmentMessage();
final window = PlatformDispatcher.instance.implicitView;
environment.windowsBoundHeight = window?.physicalSize.height.toInt();
environment.windowsBoundWidth = window?.physicalSize.width.toInt();
environment.locale = PlatformDispatcher.instance.locale.toLanguageTag();
environment.utcOffset = DateTime.now().timeZoneOffset.inHours.toDouble();
try {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isIOS) {
final info = await deviceInfo.iosInfo;
environment.oSVersion = info.systemVersion;
environment.deviceName = info.name;
environment.deviceCode = info.model;
}
if (Platform.isAndroid) {
final info = await deviceInfo.androidInfo;
environment.brand = info.brand;
environment.oSVersion = info.version.sdkInt.toString();
environment.deviceName = info.device;
}
if (Platform.isLinux) {
final info = await deviceInfo.linuxInfo;
environment.deviceName = info.name;
environment.oSVersion = info.version;
}
if (Platform.isMacOS) {
final info = await deviceInfo.macOsInfo;
environment.deviceName = info.computerName;
environment.oSVersion = info.osRelease;
}
if (Platform.isWindows) {
final info = await deviceInfo.windowsInfo;
environment.deviceName = info.computerName;
}
} catch (e) {
RaygunLogger.e('Could not load device info: $e');
}
return environment;
}