getDeviceInfoContext static method
Future<SelfDescribing?>
getDeviceInfoContext(
)
Implementation
static Future<SelfDescribing?> getDeviceInfoContext() async {
final deviceFCM =
await cacheInstance.getValue(KeyConfig.gkNotificationToken);
final deviceInfoJson = await cacheInstance.getValue(KeyConfig.gkDeviceInfo);
final deviceInfo = deviceInfoJson != null ? jsonDecode(deviceInfoJson) : {};
// If no device id then dont pass the deviceInfoSchema
final deviceId = deviceInfo[KeyConfig.gkDeviceUniqueId];
if (deviceId == null || deviceId.toString().isEmpty) {
return null;
}
// ADD META TO THE USER DEVICE SCHEMA
final metaItems = <Map<String, dynamic>>[];
final isVersionAddedInMeta = metaItems.any((item) => item['property'] == 'sdk_version');
if (!isVersionAddedInMeta) {
metaItems.add({
'property': 'sdk_version',
'value': KPSdkVersion.version,
});
metaItems.add({
'property': 'platform',
'value': 'flutter',
});
}
return _createContext(
'user_device/jsonschema/1-0-0',
{
'device_id': deviceId,
'android_ad_id':
Platform.isAndroid ? deviceInfo[KeyConfig.gkGoogleAdId] : '',
'ios_ad_id': Platform.isIOS ? deviceInfo[KeyConfig.gkGoogleAdId] : '',
'fcm_token': deviceFCM ?? '',
'app_domain': deviceInfo[KeyConfig.gkAppDomain],
'device_type': Platform.operatingSystem.toLowerCase(),
'app_version': deviceInfo[KeyConfig.gkAppVersion],
'meta': metaItems,
},
);
}