From 199db78c581a7f8507ec6d85bd39a3118a29d066 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sat, 7 Nov 2020 17:08:02 +0100 Subject: [PATCH] Fill out experimental analytics device id --- lib/analytics_exp.dart | 35 +++++++++++++++++++++++++++++++++++ lib/app.dart | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/lib/analytics_exp.dart b/lib/analytics_exp.dart index cda24dd0..9d02f21b 100644 --- a/lib/analytics_exp.dart +++ b/lib/analytics_exp.dart @@ -1,3 +1,7 @@ +import 'dart:io'; + +import 'package:device_info/device_info.dart'; + // - https://support.google.com/firebase/answer/7029846?hl=en // - https://support.google.com/firebase/answer/6317485?hl=en @@ -29,6 +33,37 @@ class Device { String language; bool isLimitedAdTracking; int timeZoneOffsetSeconds; + + static Future build() async { + var device = Device(); + var deviceInfo = DeviceInfoPlugin(); + if (Platform.isAndroid) { + var d = await deviceInfo.androidInfo; + device.category = "mobile"; + device.mobileBrandName = d.brand; + device.mobileModelName = d.model; + device.mobileOsHardwareModel = ""; + device.operatingSystem = "android"; + device.operatingSystemVersion = ""; + device.vendorId = ""; + device.language = ""; + device.isLimitedAdTracking = true; + } else if (Platform.isIOS) { + var d = await deviceInfo.iosInfo; + device.category = "mobile"; + device.mobileBrandName = ""; + device.mobileModelName = d.model; + device.mobileOsHardwareModel = ""; + device.operatingSystem = d.systemName; + device.operatingSystemVersion = d.systemVersion; + device.vendorId = d.identifierForVendor; + device.language = ""; + device.isLimitedAdTracking = true; + } + + device.timeZoneOffsetSeconds = DateTime.now().timeZoneOffset.inSeconds; + return device; + } } class Geo { diff --git a/lib/app.dart b/lib/app.dart index 925630b4..c203eadb 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -91,7 +91,7 @@ class JournalApp extends StatefulWidget { var isPhysicalDevice = true; try { - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + var deviceInfo = DeviceInfoPlugin(); if (Platform.isAndroid) { var info = await deviceInfo.androidInfo; isPhysicalDevice = info.isPhysicalDevice;