diff --git a/dd-sdk-android-core/api/apiSurface b/dd-sdk-android-core/api/apiSurface index 75d2a22bfc..1133ce7e50 100644 --- a/dd-sdk-android-core/api/apiSurface +++ b/dd-sdk-android-core/api/apiSurface @@ -71,7 +71,7 @@ data class com.datadog.android.api.context.AccountInfo data class com.datadog.android.api.context.DatadogContext constructor(com.datadog.android.DatadogSite, String, String, String, String, Int, String, String, String, TimeInfo, ProcessInfo, NetworkInfo, DeviceInfo, UserInfo, AccountInfo?, com.datadog.android.privacy.TrackingConsent, String?, Map>) data class com.datadog.android.api.context.DeviceInfo - constructor(String, String, String, DeviceType, String, String, String, String, String, Int?, LocaleInfo) + constructor(String, String, String, DeviceType, String, String, String, String, String, Int?, LocaleInfo, Int, Int?, Boolean?) enum com.datadog.android.api.context.DeviceType - MOBILE - TABLET diff --git a/dd-sdk-android-core/api/dd-sdk-android-core.api b/dd-sdk-android-core/api/dd-sdk-android-core.api index 92a2a3e8b7..5e7fde6153 100644 --- a/dd-sdk-android-core/api/dd-sdk-android-core.api +++ b/dd-sdk-android-core/api/dd-sdk-android-core.api @@ -209,10 +209,13 @@ public final class com/datadog/android/api/context/DatadogContext { } public final class com/datadog/android/api/context/DeviceInfo { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;ILjava/lang/Integer;Ljava/lang/Boolean;)V public final fun component1 ()Ljava/lang/String; public final fun component10 ()Ljava/lang/Integer; public final fun component11 ()Lcom/datadog/android/api/context/LocaleInfo; + public final fun component12 ()I + public final fun component13 ()Ljava/lang/Integer; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Lcom/datadog/android/api/context/DeviceType; @@ -221,8 +224,8 @@ public final class com/datadog/android/api/context/DeviceInfo { public final fun component7 ()Ljava/lang/String; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;)Lcom/datadog/android/api/context/DeviceInfo; - public static synthetic fun copy$default (Lcom/datadog/android/api/context/DeviceInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;ILjava/lang/Object;)Lcom/datadog/android/api/context/DeviceInfo; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;ILjava/lang/Integer;Ljava/lang/Boolean;)Lcom/datadog/android/api/context/DeviceInfo; + public static synthetic fun copy$default (Lcom/datadog/android/api/context/DeviceInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Lcom/datadog/android/api/context/LocaleInfo;ILjava/lang/Integer;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/api/context/DeviceInfo; public fun equals (Ljava/lang/Object;)Z public final fun getArchitecture ()Ljava/lang/String; public final fun getDeviceBrand ()Ljava/lang/String; @@ -231,11 +234,14 @@ public final class com/datadog/android/api/context/DeviceInfo { public final fun getDeviceName ()Ljava/lang/String; public final fun getDeviceType ()Lcom/datadog/android/api/context/DeviceType; public final fun getLocaleInfo ()Lcom/datadog/android/api/context/LocaleInfo; + public final fun getLogicalCpuCount ()I public final fun getNumberOfDisplays ()Ljava/lang/Integer; public final fun getOsMajorVersion ()Ljava/lang/String; public final fun getOsName ()Ljava/lang/String; public final fun getOsVersion ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Integer; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public fun toString ()Ljava/lang/String; } diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/api/context/DeviceInfo.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/api/context/DeviceInfo.kt index 91bb055895..18cd9e1b1b 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/api/context/DeviceInfo.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/api/context/DeviceInfo.kt @@ -20,6 +20,10 @@ package com.datadog.android.api.context * @property architecture The CPU architecture of the device. * @property numberOfDisplays The number of displays on the device. * @property localeInfo locale information on the device such as timezone and region settings. + * @property logicalCpuCount Number of logical CPU cores available for scheduling on the device at + * runtime, as reported by the operating system. + * @property totalRam Total RAM available on the device in Megabytes. + * @property isLowRam Whether the device is considered a low RAM device by the OS. */ data class DeviceInfo( val deviceName: String, @@ -32,5 +36,8 @@ data class DeviceInfo( val osVersion: String, val architecture: String, val numberOfDisplays: Int?, - val localeInfo: LocaleInfo + val localeInfo: LocaleInfo, + val logicalCpuCount: Int, + val totalRam: Int?, + val isLowRam: Boolean? ) diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogContextProvider.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogContextProvider.kt index 4b0306c8e2..0804b7f863 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogContextProvider.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogContextProvider.kt @@ -53,7 +53,10 @@ internal class DatadogContextProvider( currentLocale = currentLocale, timeZone = timeZone ) - } + }, + logicalCpuCount = logicalCpuCount, + totalRam = totalRam, + isLowRam = isLowRam ) }, userInfo = coreFeature.userInfoProvider.getUserInfo(), diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/NoOpContextProvider.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/NoOpContextProvider.kt index d938d676a6..fa1f0737c6 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/NoOpContextProvider.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/NoOpContextProvider.kt @@ -55,7 +55,10 @@ internal class NoOpContextProvider : ContextProvider { locales = emptyList(), currentLocale = "", timeZone = "" - ) + ), + logicalCpuCount = 0, + totalRam = null, + isLowRam = null ), userInfo = UserInfo(null, null, null, null, emptyMap()), accountInfo = null, diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/AndroidInfoProvider.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/AndroidInfoProvider.kt index c4c0569599..01064e9821 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/AndroidInfoProvider.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/AndroidInfoProvider.kt @@ -35,4 +35,10 @@ internal interface AndroidInfoProvider { val currentLocale: String val timeZone: String + + val logicalCpuCount: Int + + val totalRam: Int? + + val isLowRam: Boolean? } diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/DefaultAndroidInfoProvider.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/DefaultAndroidInfoProvider.kt index ed5bf5fdf2..4ff3a4bc68 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/DefaultAndroidInfoProvider.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/DefaultAndroidInfoProvider.kt @@ -6,6 +6,7 @@ package com.datadog.android.core.internal.system +import android.app.ActivityManager import android.app.UiModeManager import android.content.Context import android.content.pm.PackageManager @@ -129,10 +130,35 @@ internal class DefaultAndroidInfoProvider( } } + override val logicalCpuCount: Int by lazy { + Runtime.getRuntime().availableProcessors() + } + + override val totalRam: Int? by lazy { + try { + val activityManager = appContext.getSystemService(ActivityManager::class.java) + val info = ActivityManager.MemoryInfo() + activityManager.getMemoryInfo(info) + (info.totalMem / MB_IN_BYTES).toInt() + } catch (_: Exception) { + null + } + } + + override val isLowRam: Boolean? by lazy { + try { + val activityManager = appContext.getSystemService(ActivityManager::class.java) + activityManager.isLowRamDevice + } catch (_: Exception) { + null + } + } + companion object { const val FEATURE_GOOGLE_ANDROID_TV = "com.google.android.tv" const val MIN_TABLET_WIDTH_DP = 800 + const val MB_IN_BYTES = 1048576L private fun resolveDeviceType(model: String, appContext: Context): DeviceType { return if (isTv(appContext)) { diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/NoOpAndroidInfoProvider.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/NoOpAndroidInfoProvider.kt index 85163b6475..3c727ac613 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/NoOpAndroidInfoProvider.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/system/NoOpAndroidInfoProvider.kt @@ -22,4 +22,7 @@ internal class NoOpAndroidInfoProvider : AndroidInfoProvider { override val locales: List = emptyList() override val currentLocale: String = "" override val timeZone: String = "" + override val logicalCpuCount: Int = 0 + override val totalRam: Int? = null + override val isLowRam: Boolean? = null } diff --git a/dd-sdk-android-core/src/test/kotlin/com/datadog/android/utils/forge/AndroidInfoProviderForgeryFactory.kt b/dd-sdk-android-core/src/test/kotlin/com/datadog/android/utils/forge/AndroidInfoProviderForgeryFactory.kt index 7125af2d21..a87b267a73 100644 --- a/dd-sdk-android-core/src/test/kotlin/com/datadog/android/utils/forge/AndroidInfoProviderForgeryFactory.kt +++ b/dd-sdk-android-core/src/test/kotlin/com/datadog/android/utils/forge/AndroidInfoProviderForgeryFactory.kt @@ -27,6 +27,9 @@ internal class AndroidInfoProviderForgeryFactory : ForgeryFactory = locales override val currentLocale: String = currentLocale override val timeZone: String = timeZone + override val logicalCpuCount: Int = logicalCpuCount + override val totalRam: Int? = totalRam + override val isLowRam: Boolean? = isLowRam } } } diff --git a/dd-sdk-android-core/src/testFixtures/kotlin/com/datadog/android/tests/elmyr/DeviceInfoForgeryFactory.kt b/dd-sdk-android-core/src/testFixtures/kotlin/com/datadog/android/tests/elmyr/DeviceInfoForgeryFactory.kt index eee7cca114..bda565d90e 100644 --- a/dd-sdk-android-core/src/testFixtures/kotlin/com/datadog/android/tests/elmyr/DeviceInfoForgeryFactory.kt +++ b/dd-sdk-android-core/src/testFixtures/kotlin/com/datadog/android/tests/elmyr/DeviceInfoForgeryFactory.kt @@ -24,7 +24,10 @@ class DeviceInfoForgeryFactory : ForgeryFactory { osMajorVersion = forge.aString(), architecture = forge.aString(), numberOfDisplays = forge.aNullable { forge.anInt() }, - localeInfo = forge.getForgery() + localeInfo = forge.getForgery(), + logicalCpuCount = forge.anInt(), + totalRam = forge.aNullable { anInt() }, + isLowRam = forge.aNullable { aBool() } ) } } diff --git a/detekt_custom_safe_calls.yml b/detekt_custom_safe_calls.yml index dfa8197661..4af246f3a6 100644 --- a/detekt_custom_safe_calls.yml +++ b/detekt_custom_safe_calls.yml @@ -20,6 +20,7 @@ datadog: - "android.content.Context.createDeviceProtectedStorageContext()" - "android.content.Context.getSharedPreferences(kotlin.String?, kotlin.Int)" - "android.content.Context.getSystemService(kotlin.String)" + - "android.content.Context.getSystemService(java.lang.Class)" - "android.content.Context.registerComponentCallbacks(android.content.ComponentCallbacks?)" - "android.content.Context.registerReceiver(android.content.BroadcastReceiver?, android.content.IntentFilter?)" - "android.content.Context.registerReceiver(android.content.BroadcastReceiver?, android.content.IntentFilter?, kotlin.Int)" diff --git a/detekt_custom_unsafe_calls.yml b/detekt_custom_unsafe_calls.yml index 6bfdf5f211..397978b8a0 100644 --- a/detekt_custom_unsafe_calls.yml +++ b/detekt_custom_unsafe_calls.yml @@ -3,6 +3,8 @@ datadog: knownThrowingCalls: # region Android - "android.app.ActivityManager.getHistoricalProcessExitReasons(kotlin.String?, kotlin.Int, kotlin.Int):java.lang.RuntimeException" + - "android.app.ActivityManager.MemoryInfo.constructor():java.lang.RuntimeException" + - "android.app.ActivityManager.getMemoryInfo(android.app.ActivityManager.MemoryInfo?):java.lang.RuntimeException" - "android.app.ApplicationExitInfo.getTraceInputStream():java.io.IOException" - "android.content.pm.PackageManager.getPackageInfo(kotlin.String, android.content.pm.PackageManager.PackageInfoFlags):android.content.pm.PackageManager.NameNotFoundException" - "android.content.pm.PackageManager.getPackageInfo(kotlin.String, kotlin.Int):android.content.pm.PackageManager.NameNotFoundException" diff --git a/features/dd-sdk-android-logs/api/apiSurface b/features/dd-sdk-android-logs/api/apiSurface index 3551b0d639..82b68aa224 100644 --- a/features/dd-sdk-android-logs/api/apiSurface +++ b/features/dd-sdk-android-logs/api/apiSurface @@ -41,7 +41,7 @@ data class com.datadog.android.log.model.LogEvent fun fromJson(kotlin.String): LogEvent fun fromJsonObject(com.google.gson.JsonObject): LogEvent data class LogEventDevice - constructor(Type? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(Type? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): LogEventDevice diff --git a/features/dd-sdk-android-logs/api/dd-sdk-android-logs.api b/features/dd-sdk-android-logs/api/dd-sdk-android-logs.api index 648bd18f40..b954a482d2 100644 --- a/features/dd-sdk-android-logs/api/dd-sdk-android-logs.api +++ b/features/dd-sdk-android-logs/api/dd-sdk-android-logs.api @@ -273,11 +273,14 @@ public final class com/datadog/android/log/model/LogEvent$Error$Companion { public final class com/datadog/android/log/model/LogEvent$LogEventDevice { public static final field Companion Lcom/datadog/android/log/model/LogEvent$LogEventDevice$Companion; public fun ()V - public fun (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/log/model/LogEvent$Type; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -286,8 +289,8 @@ public final class com/datadog/android/log/model/LogEvent$LogEventDevice { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; - public static synthetic fun copy$default (Lcom/datadog/android/log/model/LogEvent$LogEventDevice;Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; + public final fun copy (Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; + public static synthetic fun copy$default (Lcom/datadog/android/log/model/LogEvent$LogEventDevice;Lcom/datadog/android/log/model/LogEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/log/model/LogEvent$LogEventDevice; @@ -297,12 +300,15 @@ public final class com/datadog/android/log/model/LogEvent$LogEventDevice { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/log/model/LogEvent$Type; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } diff --git a/features/dd-sdk-android-logs/src/main/kotlin/com/datadog/android/log/internal/domain/DatadogLogGenerator.kt b/features/dd-sdk-android-logs/src/main/kotlin/com/datadog/android/log/internal/domain/DatadogLogGenerator.kt index 60ff79d843..79dcef31f5 100644 --- a/features/dd-sdk-android-logs/src/main/kotlin/com/datadog/android/log/internal/domain/DatadogLogGenerator.kt +++ b/features/dd-sdk-android-logs/src/main/kotlin/com/datadog/android/log/internal/domain/DatadogLogGenerator.kt @@ -224,7 +224,10 @@ internal class DatadogLogGenerator( name = deviceInfo.deviceName, model = deviceInfo.deviceModel, brand = deviceInfo.deviceBrand, - architecture = deviceInfo.architecture + architecture = deviceInfo.architecture, + logicalCpuCount = deviceInfo.logicalCpuCount, + totalRam = deviceInfo.totalRam, + isLowRam = deviceInfo.isLowRam ) private fun resolveDeviceType(deviceType: DeviceType): LogEvent.Type = when (deviceType) { diff --git a/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/log/internal/domain/event/LogEventSerializerTest.kt b/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/log/internal/domain/event/LogEventSerializerTest.kt index 5563be23c1..b7b8a9c402 100644 --- a/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/log/internal/domain/event/LogEventSerializerTest.kt +++ b/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/log/internal/domain/event/LogEventSerializerTest.kt @@ -455,13 +455,16 @@ internal class LogEventSerializerTest { val deviceName = deviceInfo.name val deviceModel = deviceInfo.model val deviceBrand = deviceInfo.brand - val deviceArhitecture = deviceInfo.architecture + val deviceArchitecture = deviceInfo.architecture val deviceLocale = deviceInfo.locale val deviceLocales = deviceInfo.locales val deviceTimezone = deviceInfo.timeZone val deviceBatteryLevel = deviceInfo.batteryLevel val devicePowerSavingMode = deviceInfo.powerSavingMode val deviceBrightnessLevel = deviceInfo.brightnessLevel + val deviceLogicalCpuCount = deviceInfo.logicalCpuCount + val deviceTotalRam = deviceInfo.totalRam + val deviceIsLowRam = deviceInfo.isLowRam if (deviceType != null) { hasField(KEY_TYPE, deviceType.name.lowercase(Locale.US)) } else { @@ -482,8 +485,8 @@ internal class LogEventSerializerTest { } else { doesNotHaveField(KEY_BRAND) } - if (deviceArhitecture != null) { - hasField(KEY_ARCHITECTURE, deviceArhitecture) + if (deviceArchitecture != null) { + hasField(KEY_ARCHITECTURE, deviceArchitecture) } else { doesNotHaveField(KEY_ARCHITECTURE) } @@ -517,6 +520,21 @@ internal class LogEventSerializerTest { } else { doesNotHaveField(KEY_BRIGHTNESS_LEVEL) } + if (deviceLogicalCpuCount != null) { + hasField(KEY_LOGICAL_CPU_COUNT, deviceLogicalCpuCount) + } else { + doesNotHaveField(KEY_LOGICAL_CPU_COUNT) + } + if (deviceTotalRam != null) { + hasField(KEY_TOTAL_RAM, deviceTotalRam) + } else { + doesNotHaveField(KEY_TOTAL_RAM) + } + if (deviceIsLowRam != null) { + hasField(KEY_IS_LOW_RAM, deviceIsLowRam) + } else { + doesNotHaveField(KEY_IS_LOW_RAM) + } } // endregion @@ -567,5 +585,8 @@ internal class LogEventSerializerTest { private const val KEY_BATTERY_LEVEL = "battery_level" private const val KEY_POWER_SAVING_MODE = "power_saving_mode" private const val KEY_BRIGHTNESS_LEVEL = "brightness_level" + private const val KEY_IS_LOW_RAM = "is_low_ram" + private const val KEY_LOGICAL_CPU_COUNT = "logical_cpu_count" + private const val KEY_TOTAL_RAM = "total_ram" } } diff --git a/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/utils/forge/LogEventForgeryFactory.kt b/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/utils/forge/LogEventForgeryFactory.kt index cc48777645..82c388e2ac 100644 --- a/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/utils/forge/LogEventForgeryFactory.kt +++ b/features/dd-sdk-android-logs/src/test/kotlin/com/datadog/android/utils/forge/LogEventForgeryFactory.kt @@ -103,6 +103,9 @@ internal class LogEventForgeryFactory : ForgeryFactory { model = deviceInfo.deviceModel, brand = deviceInfo.deviceBrand, architecture = deviceInfo.architecture, + isLowRam = deviceInfo.isLowRam, + logicalCpuCount = deviceInfo.logicalCpuCount, + totalRam = deviceInfo.totalRam, locale = forge.aNullable { anAlphabeticalString() }, locales = forge.aNullable { aList { anAlphabeticalString() } }, timeZone = forge.aNullable { anAlphabeticalString() }, diff --git a/features/dd-sdk-android-rum/api/apiSurface b/features/dd-sdk-android-rum/api/apiSurface index b1a08be0db..c21934c98d 100644 --- a/features/dd-sdk-android-rum/api/apiSurface +++ b/features/dd-sdk-android-rum/api/apiSurface @@ -419,7 +419,7 @@ data class com.datadog.android.rum.model.ActionEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -717,7 +717,7 @@ data class com.datadog.android.rum.model.ErrorEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -1067,7 +1067,7 @@ data class com.datadog.android.rum.model.LongTaskEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -1332,7 +1332,7 @@ data class com.datadog.android.rum.model.ResourceEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -1704,7 +1704,7 @@ data class com.datadog.android.rum.model.ViewEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2114,7 +2114,7 @@ data class com.datadog.android.rum.model.VitalAppLaunchEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2364,7 +2364,7 @@ data class com.datadog.android.rum.model.VitalOperationStepEvent fun fromJson(kotlin.String): Os fun fromJsonObject(com.google.gson.JsonObject): Os data class Device - constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(DeviceType? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2570,7 +2570,7 @@ data class com.datadog.android.telemetry.model.TelemetryConfigurationEvent fun fromJson(kotlin.String): Telemetry fun fromJsonObject(com.google.gson.JsonObject): Telemetry data class Device - constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null) + constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2700,7 +2700,7 @@ data class com.datadog.android.telemetry.model.TelemetryDebugEvent fun fromJson(kotlin.String): Telemetry fun fromJsonObject(com.google.gson.JsonObject): Telemetry data class Device - constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null) + constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2769,7 +2769,7 @@ data class com.datadog.android.telemetry.model.TelemetryErrorEvent fun fromJson(kotlin.String): Telemetry fun fromJsonObject(com.google.gson.JsonObject): Telemetry data class Device - constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null) + constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device @@ -2843,7 +2843,7 @@ data class com.datadog.android.telemetry.model.TelemetryUsageEvent fun fromJson(kotlin.String): Telemetry fun fromJsonObject(com.google.gson.JsonObject): Telemetry data class Device - constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null) + constructor(kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device diff --git a/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api b/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api index 6ec2c5cff5..4418fb3267 100644 --- a/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api +++ b/features/dd-sdk-android-rum/api/dd-sdk-android-rum.api @@ -1071,11 +1071,14 @@ public final class com/datadog/android/rum/model/ActionEvent$DdSession$Companion public final class com/datadog/android/rum/model/ActionEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/ActionEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/ActionEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -1084,8 +1087,8 @@ public final class com/datadog/android/rum/model/ActionEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/ActionEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ActionEvent$Device;Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ActionEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/ActionEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ActionEvent$Device;Lcom/datadog/android/rum/model/ActionEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ActionEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/ActionEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/ActionEvent$Device; @@ -1095,12 +1098,15 @@ public final class com/datadog/android/rum/model/ActionEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/ActionEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -1931,11 +1937,14 @@ public final class com/datadog/android/rum/model/ErrorEvent$DdSession$Companion public final class com/datadog/android/rum/model/ErrorEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/ErrorEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/ErrorEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -1944,8 +1953,8 @@ public final class com/datadog/android/rum/model/ErrorEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/ErrorEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ErrorEvent$Device;Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ErrorEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/ErrorEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ErrorEvent$Device;Lcom/datadog/android/rum/model/ErrorEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ErrorEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/ErrorEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/ErrorEvent$Device; @@ -1955,12 +1964,15 @@ public final class com/datadog/android/rum/model/ErrorEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/ErrorEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -2973,11 +2985,14 @@ public final class com/datadog/android/rum/model/LongTaskEvent$DdSession$Compani public final class com/datadog/android/rum/model/LongTaskEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/LongTaskEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -2986,8 +3001,8 @@ public final class com/datadog/android/rum/model/LongTaskEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/LongTaskEvent$Device;Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/LongTaskEvent$Device;Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/LongTaskEvent$Device; @@ -2997,12 +3012,15 @@ public final class com/datadog/android/rum/model/LongTaskEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/LongTaskEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -3883,11 +3901,14 @@ public final class com/datadog/android/rum/model/ResourceEvent$DeliveryType$Comp public final class com/datadog/android/rum/model/ResourceEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/ResourceEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/ResourceEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -3896,8 +3917,8 @@ public final class com/datadog/android/rum/model/ResourceEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/ResourceEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ResourceEvent$Device;Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ResourceEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/ResourceEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ResourceEvent$Device;Lcom/datadog/android/rum/model/ResourceEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ResourceEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/ResourceEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/ResourceEvent$Device; @@ -3907,12 +3928,15 @@ public final class com/datadog/android/rum/model/ResourceEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/ResourceEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -5201,11 +5225,14 @@ public final class com/datadog/android/rum/model/ViewEvent$DdSession$Companion { public final class com/datadog/android/rum/model/ViewEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/ViewEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/ViewEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -5214,8 +5241,8 @@ public final class com/datadog/android/rum/model/ViewEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/ViewEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ViewEvent$Device;Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ViewEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/ViewEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/ViewEvent$Device;Lcom/datadog/android/rum/model/ViewEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/ViewEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/ViewEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/ViewEvent$Device; @@ -5225,12 +5252,15 @@ public final class com/datadog/android/rum/model/ViewEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/ViewEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -6580,11 +6610,14 @@ public final class com/datadog/android/rum/model/VitalAppLaunchEvent$DdSession$C public final class com/datadog/android/rum/model/VitalAppLaunchEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -6593,8 +6626,8 @@ public final class com/datadog/android/rum/model/VitalAppLaunchEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device;Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device;Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/VitalAppLaunchEvent$Device; @@ -6604,12 +6637,15 @@ public final class com/datadog/android/rum/model/VitalAppLaunchEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/VitalAppLaunchEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -7358,11 +7394,14 @@ public final class com/datadog/android/rum/model/VitalOperationStepEvent$DdSessi public final class com/datadog/android/rum/model/VitalOperationStepEvent$Device { public static final field Companion Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -7371,8 +7410,8 @@ public final class com/datadog/android/rum/model/VitalOperationStepEvent$Device public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device;Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; + public final fun copy (Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device;Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$Device; @@ -7382,12 +7421,15 @@ public final class com/datadog/android/rum/model/VitalOperationStepEvent$Device public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/rum/model/VitalOperationStepEvent$DeviceType; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -8317,20 +8359,26 @@ public final class com/datadog/android/telemetry/model/TelemetryConfigurationEve public final class com/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device { public static final field Companion Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device$Companion; public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; + public final fun component4 ()Ljava/lang/Number; + public final fun component5 ()Ljava/lang/Number; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/telemetry/model/TelemetryConfigurationEvent$Device; public final fun getArchitecture ()Ljava/lang/String; public final fun getBrand ()Ljava/lang/String; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -8668,20 +8716,26 @@ public final class com/datadog/android/telemetry/model/TelemetryDebugEvent$Dd$Co public final class com/datadog/android/telemetry/model/TelemetryDebugEvent$Device { public static final field Companion Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device$Companion; public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; + public final fun component4 ()Ljava/lang/Number; + public final fun component5 ()Ljava/lang/Number; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/telemetry/model/TelemetryDebugEvent$Device; public final fun getArchitecture ()Ljava/lang/String; public final fun getBrand ()Ljava/lang/String; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -8906,20 +8960,26 @@ public final class com/datadog/android/telemetry/model/TelemetryErrorEvent$Dd$Co public final class com/datadog/android/telemetry/model/TelemetryErrorEvent$Device { public static final field Companion Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device$Companion; public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; + public final fun component4 ()Ljava/lang/Number; + public final fun component5 ()Ljava/lang/Number; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/telemetry/model/TelemetryErrorEvent$Device; public final fun getArchitecture ()Ljava/lang/String; public final fun getBrand ()Ljava/lang/String; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } @@ -9185,20 +9245,26 @@ public final class com/datadog/android/telemetry/model/TelemetryUsageEvent$Dd$Co public final class com/datadog/android/telemetry/model/TelemetryUsageEvent$Device { public static final field Companion Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device$Companion; public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; + public final fun component4 ()Ljava/lang/Number; + public final fun component5 ()Ljava/lang/Number; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/telemetry/model/TelemetryUsageEvent$Device; public final fun getArchitecture ()Ljava/lang/String; public final fun getBrand ()Ljava/lang/String; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } diff --git a/features/dd-sdk-android-rum/src/main/json/rum/_common-schema.json b/features/dd-sdk-android-rum/src/main/json/rum/_common-schema.json index 20d84c547b..1eb244b786 100644 --- a/features/dd-sdk-android-rum/src/main/json/rum/_common-schema.json +++ b/features/dd-sdk-android-rum/src/main/json/rum/_common-schema.json @@ -355,6 +355,21 @@ "type": "number", "description": "Current screen brightness level (0.0 to 1.0).", "readOnly": true + }, + "logical_cpu_count": { + "type": "number", + "description": "Number of logical CPU cores available for scheduling on the device at runtime, as reported by the operating system.", + "readOnly": true + }, + "total_ram": { + "type" : "number", + "description": "Total RAM in megabytes", + "readOnly": true + }, + "is_low_ram": { + "type": "boolean", + "description": "Whether the device is considered a low RAM device.", + "readOnly": true } } }, diff --git a/features/dd-sdk-android-rum/src/main/json/telemetry/_common-schema.json b/features/dd-sdk-android-rum/src/main/json/telemetry/_common-schema.json index dad6677151..ef1ed52c2e 100644 --- a/features/dd-sdk-android-rum/src/main/json/telemetry/_common-schema.json +++ b/features/dd-sdk-android-rum/src/main/json/telemetry/_common-schema.json @@ -126,6 +126,21 @@ "model": { "type": "string", "description": "Model of the device" + }, + "logical_cpu_count": { + "type": "number", + "description": "Number of logical CPU cores available for scheduling on the device at runtime, as reported by the operating system.", + "readOnly": true + }, + "total_ram": { + "type" : "number", + "description": "Total RAM in megabytes", + "readOnly": true + }, + "is_low_ram": { + "type": "boolean", + "description": "Whether the device is considered a low RAM device.", + "readOnly": true } } }, diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporter.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporter.kt index a5be64dba9..d8b6427c15 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporter.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporter.kt @@ -252,7 +252,10 @@ internal class DatadogLateCrashReporter( name = deviceInfo.deviceName, model = deviceInfo.deviceModel, brand = deviceInfo.deviceBrand, - architecture = deviceInfo.architecture + architecture = deviceInfo.architecture, + logicalCpuCount = deviceInfo.logicalCpuCount, + totalRam = deviceInfo.totalRam, + isLowRam = deviceInfo.isLowRam ), dd = ErrorEvent.Dd( session = ErrorEvent.DdSession(), diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumActionScope.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumActionScope.kt index a049b8a634..e06f49982b 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumActionScope.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumActionScope.kt @@ -344,7 +344,10 @@ internal class RumActionScope( brand = datadogContext.deviceInfo.deviceBrand, architecture = datadogContext.deviceInfo.architecture, locales = datadogContext.deviceInfo.localeInfo.locales, - timeZone = datadogContext.deviceInfo.localeInfo.timeZone + timeZone = datadogContext.deviceInfo.localeInfo.timeZone, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = ActionEvent.Context(additionalProperties = getCustomAttributes().toMutableMap()), dd = ActionEvent.Dd( diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScope.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScope.kt index 6c00b9541e..7e40b320ff 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScope.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScope.kt @@ -341,7 +341,10 @@ internal class RumResourceScope( brand = datadogContext.deviceInfo.deviceBrand, architecture = datadogContext.deviceInfo.architecture, locales = datadogContext.deviceInfo.localeInfo.locales, - timeZone = datadogContext.deviceInfo.localeInfo.timeZone + timeZone = datadogContext.deviceInfo.localeInfo.timeZone, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = ResourceEvent.Context(additionalProperties = getCustomAttributes().toMutableMap()), dd = ResourceEvent.Dd( @@ -502,7 +505,10 @@ internal class RumResourceScope( name = datadogContext.deviceInfo.deviceName, model = datadogContext.deviceInfo.deviceModel, brand = datadogContext.deviceInfo.deviceBrand, - architecture = datadogContext.deviceInfo.architecture + architecture = datadogContext.deviceInfo.architecture, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = ErrorEvent.Context(additionalProperties = getCustomAttributes().toMutableMap()), dd = ErrorEvent.Dd( diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScope.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScope.kt index 68ea62ba1e..607bb26ee2 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScope.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScope.kt @@ -397,7 +397,10 @@ internal open class RumViewScope( timeZone = datadogContext.deviceInfo.localeInfo.timeZone, batteryLevel = batteryInfo.batteryLevel, powerSavingMode = batteryInfo.lowPowerMode, - brightnessLevel = displayInfo.screenBrightness + brightnessLevel = displayInfo.screenBrightness, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), os = VitalOperationStepEvent.Os( name = datadogContext.deviceInfo.osName, @@ -795,7 +798,10 @@ internal open class RumViewScope( timeZone = datadogContext.deviceInfo.localeInfo.timeZone, batteryLevel = batteryInfo.batteryLevel, powerSavingMode = batteryInfo.lowPowerMode, - brightnessLevel = displayInfo.screenBrightness + brightnessLevel = displayInfo.screenBrightness, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = ErrorEvent.Context(additionalProperties = errorCustomAttributes), dd = ErrorEvent.Dd( @@ -1337,7 +1343,10 @@ internal open class RumViewScope( timeZone = datadogContext.deviceInfo.localeInfo.timeZone, batteryLevel = batteryInfo.batteryLevel, powerSavingMode = batteryInfo.lowPowerMode, - brightnessLevel = displayInfo.screenBrightness + brightnessLevel = displayInfo.screenBrightness, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = ViewEvent.Context(additionalProperties = viewCustomAttributes), dd = ViewEvent.Dd( @@ -1510,7 +1519,10 @@ internal open class RumViewScope( name = datadogContext.deviceInfo.deviceName, model = datadogContext.deviceInfo.deviceModel, brand = datadogContext.deviceInfo.deviceBrand, - architecture = datadogContext.deviceInfo.architecture + architecture = datadogContext.deviceInfo.architecture, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), context = LongTaskEvent.Context(additionalProperties = longTaskCustomAttributes), dd = LongTaskEvent.Dd( diff --git a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/telemetry/internal/TelemetryEventHandler.kt b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/telemetry/internal/TelemetryEventHandler.kt index a576288c19..2b853c4c3a 100644 --- a/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/telemetry/internal/TelemetryEventHandler.kt +++ b/features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/telemetry/internal/TelemetryEventHandler.kt @@ -225,7 +225,10 @@ internal class TelemetryEventHandler( device = TelemetryDebugEvent.Device( architecture = datadogContext.deviceInfo.architecture, brand = datadogContext.deviceInfo.deviceBrand, - model = datadogContext.deviceInfo.deviceModel + model = datadogContext.deviceInfo.deviceModel, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), os = TelemetryDebugEvent.Os( build = datadogContext.deviceInfo.deviceBuildId, @@ -280,7 +283,10 @@ internal class TelemetryEventHandler( device = TelemetryErrorEvent.Device( architecture = datadogContext.deviceInfo.architecture, brand = datadogContext.deviceInfo.deviceBrand, - model = datadogContext.deviceInfo.deviceModel + model = datadogContext.deviceInfo.deviceModel, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), os = TelemetryErrorEvent.Os( build = datadogContext.deviceInfo.deviceBuildId, @@ -352,7 +358,10 @@ internal class TelemetryEventHandler( device = TelemetryConfigurationEvent.Device( architecture = datadogContext.deviceInfo.architecture, brand = datadogContext.deviceInfo.deviceBrand, - model = datadogContext.deviceInfo.deviceModel + model = datadogContext.deviceInfo.deviceModel, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), os = TelemetryConfigurationEvent.Os( build = datadogContext.deviceInfo.deviceBuildId, @@ -444,7 +453,10 @@ internal class TelemetryEventHandler( device = TelemetryUsageEvent.Device( architecture = datadogContext.deviceInfo.architecture, brand = datadogContext.deviceInfo.deviceBrand, - model = datadogContext.deviceInfo.deviceModel + model = datadogContext.deviceInfo.deviceModel, + logicalCpuCount = datadogContext.deviceInfo.logicalCpuCount, + totalRam = datadogContext.deviceInfo.totalRam, + isLowRam = datadogContext.deviceInfo.isLowRam ), os = TelemetryUsageEvent.Os( build = datadogContext.deviceInfo.deviceBuildId, diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ErrorEventAssert.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ErrorEventAssert.kt index e94ad7fa54..932cbc1028 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ErrorEventAssert.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ErrorEventAssert.kt @@ -479,7 +479,10 @@ internal class ErrorEventAssert(actual: ErrorEvent) : model: String, brand: String, type: ErrorEvent.DeviceType, - architecture: String + architecture: String, + isLowRam: Boolean?, + logicalCpuCount: Int, + totalRam: Int? ): ErrorEventAssert { assertThat(actual.device?.name) .overridingErrorMessage( @@ -507,6 +510,24 @@ internal class ErrorEventAssert(actual: ErrorEvent) : " but was ${actual.device?.architecture}" ) .isEqualTo(architecture) + assertThat(actual.device?.isLowRam) + .overridingErrorMessage( + "Expected event data to have device.isLowRam $isLowRam" + + " but was ${actual.device?.isLowRam}" + ) + .isEqualTo(isLowRam) + assertThat(actual.device?.logicalCpuCount) + .overridingErrorMessage( + "Expected event data to have device.logicalCpuCount $logicalCpuCount" + + " but was ${actual.device?.logicalCpuCount}" + ) + .isEqualTo(logicalCpuCount) + assertThat(actual.device?.totalRam) + .overridingErrorMessage( + "Expected event data to have device.totalRam $totalRam" + + " but was ${actual.device?.totalRam}" + ) + .isEqualTo(totalRam) return this } diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ViewEventAssert.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ViewEventAssert.kt index 8e618312ea..98130d8e0e 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ViewEventAssert.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/assertj/ViewEventAssert.kt @@ -584,7 +584,10 @@ internal class ViewEventAssert(actual: ViewEvent) : model: String, brand: String, type: ViewEvent.DeviceType, - architecture: String + architecture: String, + logicalCpuCount: Int, + totalRam: Int?, + isLowRam: Boolean? ): ViewEventAssert { assertThat(actual.device?.name) .overridingErrorMessage( @@ -612,6 +615,24 @@ internal class ViewEventAssert(actual: ViewEvent) : " but was ${actual.device?.architecture}" ) .isEqualTo(architecture) + assertThat(actual.device?.logicalCpuCount) + .overridingErrorMessage( + "Expected event data to have device.logicalCpuCount $logicalCpuCount" + + " but was ${actual.device?.logicalCpuCount}" + ) + .isEqualTo(logicalCpuCount) + assertThat(actual.device?.totalRam) + .overridingErrorMessage( + "Expected event data to have device.totalRam $totalRam" + + " but was ${actual.device?.totalRam}" + ) + .isEqualTo(totalRam) + assertThat(actual.device?.isLowRam) + .overridingErrorMessage( + "Expected event data to have device.isLowRam $isLowRam" + + " but was ${actual.device?.isLowRam}" + ) + .isEqualTo(isLowRam) return this } diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporterTest.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporterTest.kt index 46b52983bf..4e4b0c1c55 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporterTest.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/DatadogLateCrashReporterTest.kt @@ -220,7 +220,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -323,7 +326,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -470,7 +476,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -576,7 +585,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -778,7 +790,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -863,7 +878,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -963,7 +981,10 @@ internal class DatadogLateCrashReporterTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) .hasOsInfo( fakeDatadogContext.deviceInfo.osName, diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScopeTest.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScopeTest.kt index 031500a135..c302663bfa 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScopeTest.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumResourceScopeTest.kt @@ -1280,7 +1280,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1363,7 +1366,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1442,7 +1448,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1543,7 +1552,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1645,7 +1657,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1744,7 +1759,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1844,7 +1862,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1927,7 +1948,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2010,7 +2034,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2092,7 +2119,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2175,7 +2205,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2262,7 +2295,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2350,7 +2386,10 @@ internal class RumResourceScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScopeTest.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScopeTest.kt index 92a34301af..b135542b4e 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScopeTest.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScopeTest.kt @@ -623,7 +623,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -707,7 +710,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -787,7 +793,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -877,7 +886,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -964,7 +976,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1047,7 +1062,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1117,7 +1135,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1202,7 +1223,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1294,7 +1318,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1382,7 +1409,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1467,7 +1497,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1587,7 +1620,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1682,7 +1718,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1786,7 +1825,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1884,7 +1926,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -1960,7 +2005,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2056,7 +2104,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2157,7 +2208,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2268,7 +2322,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2371,7 +2428,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2486,7 +2546,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -2697,7 +2760,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3487,7 +3553,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3570,7 +3639,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3646,7 +3718,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3721,7 +3796,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3798,7 +3876,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -3877,7 +3958,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4016,7 +4100,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4096,7 +4183,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4178,7 +4268,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4233,7 +4326,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4314,7 +4410,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4397,7 +4496,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4452,7 +4554,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4549,7 +4654,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4604,7 +4712,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4686,7 +4797,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -4769,7 +4883,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toErrorSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.isLowRam, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5441,7 +5558,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5528,7 +5648,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5588,7 +5711,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5690,7 +5816,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5786,7 +5915,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5884,7 +6016,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -5964,7 +6099,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -6249,7 +6387,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -6331,7 +6472,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -6412,7 +6556,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -6503,7 +6650,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, @@ -6594,7 +6744,10 @@ internal class RumViewScopeTest { fakeDatadogContext.deviceInfo.deviceModel, fakeDatadogContext.deviceInfo.deviceBrand, fakeDatadogContext.deviceInfo.deviceType.toViewSchemaType(), - fakeDatadogContext.deviceInfo.architecture + fakeDatadogContext.deviceInfo.architecture, + fakeDatadogContext.deviceInfo.logicalCpuCount, + fakeDatadogContext.deviceInfo.totalRam, + fakeDatadogContext.deviceInfo.isLowRam ) hasOsInfo( fakeDatadogContext.deviceInfo.osName, diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/assertj/DeserializedActionEventAssert.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/assertj/DeserializedActionEventAssert.kt index 85db4bcfae..6557337278 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/assertj/DeserializedActionEventAssert.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/assertj/DeserializedActionEventAssert.kt @@ -24,7 +24,7 @@ internal class DeserializedActionEventAssert(actual: ActionEvent) : .isEqualTo(expected) assertThat(actual.device) .usingRecursiveComparison() - .ignoringFields("batteryLevel", "brightnessLevel") + .ignoringFields("batteryLevel", "brightnessLevel", "totalRam", "logicalCpuCount") .isEqualTo(expected.device) assertNumberFieldEquals(actual.device?.batteryLevel, expected.device?.batteryLevel) assertNumberFieldEquals(actual.device?.brightnessLevel, expected.device?.brightnessLevel) diff --git a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/forge/TelemetryUsageEventForgeryFactory.kt b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/forge/TelemetryUsageEventForgeryFactory.kt index 8870c0e106..fc3cbdc953 100644 --- a/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/forge/TelemetryUsageEventForgeryFactory.kt +++ b/features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/utils/forge/TelemetryUsageEventForgeryFactory.kt @@ -45,7 +45,10 @@ internal class TelemetryUsageEventForgeryFactory : ForgeryFactory { timeZone = forge.aNullable { anAlphabeticalString() }, batteryLevel = forge.aNullable { aDouble(min = 0.0, max = 100.0) }, powerSavingMode = forge.aNullable { aBool() }, - brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) } + brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) }, + isLowRam = forge.aNullable { aBool() }, + logicalCpuCount = forge.aNullable { anInt() }, + totalRam = forge.aNullable { anInt() } ) }, context = forge.aNullable { diff --git a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/LongTaskEventForgeryFactory.kt b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/LongTaskEventForgeryFactory.kt index 9587dae32e..7a92b2d7a5 100644 --- a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/LongTaskEventForgeryFactory.kt +++ b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/LongTaskEventForgeryFactory.kt @@ -98,7 +98,10 @@ class LongTaskEventForgeryFactory : timeZone = forge.aNullable { anAlphabeticalString() }, batteryLevel = forge.aNullable { aDouble(min = 0.0, max = 100.0) }, powerSavingMode = forge.aNullable { aBool() }, - brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) } + brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) }, + isLowRam = forge.aNullable { aBool() }, + logicalCpuCount = forge.aNullable { anInt() }, + totalRam = forge.aNullable { anInt() } ) }, context = forge.aNullable { diff --git a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ResourceEventForgeryFactory.kt b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ResourceEventForgeryFactory.kt index bfc8b94965..68ac7e11cc 100644 --- a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ResourceEventForgeryFactory.kt +++ b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ResourceEventForgeryFactory.kt @@ -135,7 +135,10 @@ class ResourceEventForgeryFactory : timeZone = forge.aNullable { anAlphabeticalString() }, batteryLevel = forge.aNullable { anInt(min = 0, max = 100) }, powerSavingMode = forge.aNullable { aBool() }, - brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) } + brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) }, + isLowRam = forge.aNullable { aBool() }, + logicalCpuCount = forge.aNullable { anInt() }, + totalRam = forge.aNullable { anInt() } ) }, context = forge.aNullable { diff --git a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ViewEventForgeryFactory.kt b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ViewEventForgeryFactory.kt index f286653ba4..21328d1988 100644 --- a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ViewEventForgeryFactory.kt +++ b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/ViewEventForgeryFactory.kt @@ -132,7 +132,10 @@ class ViewEventForgeryFactory : ForgeryFactory { timeZone = forge.aNullable { anAlphabeticalString() }, batteryLevel = forge.aNullable { aDouble(min = 0.0, max = 100.0) }, powerSavingMode = forge.aNullable { aBool() }, - brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) } + brightnessLevel = forge.aNullable { aDouble(min = 0.0, max = 1.0) }, + isLowRam = forge.aNullable { aBool() }, + logicalCpuCount = forge.aNullable { anInt() }, + totalRam = forge.aNullable { anInt() } ) }, context = forge.aNullable { diff --git a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/VitalAppLaunchEventForgeryFactory.kt b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/VitalAppLaunchEventForgeryFactory.kt index 83a988debf..b5de0ff655 100644 --- a/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/VitalAppLaunchEventForgeryFactory.kt +++ b/features/dd-sdk-android-rum/src/testFixtures/kotlin/com/datadog/android/rum/utils/forge/VitalAppLaunchEventForgeryFactory.kt @@ -46,7 +46,10 @@ class VitalAppLaunchEventForgeryFactory : ForgeryFactory { model = forge.aString(), brand = forge.aString(), type = forge.aValueFrom(VitalAppLaunchEvent.DeviceType::class.java), - architecture = forge.aString() + architecture = forge.aString(), + isLowRam = forge.aNullable { aBool() }, + logicalCpuCount = forge.aNullable { anInt() }, + totalRam = forge.aNullable { anInt() } ) }, context = forge.aNullable { diff --git a/features/dd-sdk-android-trace/api/apiSurface b/features/dd-sdk-android-trace/api/apiSurface index 6cf16b399c..a3aeeaee78 100644 --- a/features/dd-sdk-android-trace/api/apiSurface +++ b/features/dd-sdk-android-trace/api/apiSurface @@ -95,7 +95,7 @@ data class com.datadog.android.trace.model.SpanEvent fun fromJson(kotlin.String): Network fun fromJsonObject(com.google.gson.JsonObject): Network data class Device - constructor(Type? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null) + constructor(Type? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.String? = null, kotlin.collections.List? = null, kotlin.String? = null, kotlin.Number? = null, kotlin.Boolean? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Number? = null, kotlin.Boolean? = null) fun toJson(): com.google.gson.JsonElement companion object fun fromJson(kotlin.String): Device diff --git a/features/dd-sdk-android-trace/api/dd-sdk-android-trace.api b/features/dd-sdk-android-trace/api/dd-sdk-android-trace.api index 10997e84de..87fedd77c3 100644 --- a/features/dd-sdk-android-trace/api/dd-sdk-android-trace.api +++ b/features/dd-sdk-android-trace/api/dd-sdk-android-trace.api @@ -237,11 +237,14 @@ public final class com/datadog/android/trace/model/SpanEvent$Dd$Companion { public final class com/datadog/android/trace/model/SpanEvent$Device { public static final field Companion Lcom/datadog/android/trace/model/SpanEvent$Device$Companion; public fun ()V - public fun (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)V - public synthetic fun (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lcom/datadog/android/trace/model/SpanEvent$Type; public final fun component10 ()Ljava/lang/Boolean; public final fun component11 ()Ljava/lang/Number; + public final fun component12 ()Ljava/lang/Number; + public final fun component13 ()Ljava/lang/Number; + public final fun component14 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; @@ -250,8 +253,8 @@ public final class com/datadog/android/trace/model/SpanEvent$Device { public final fun component7 ()Ljava/util/List; public final fun component8 ()Ljava/lang/String; public final fun component9 ()Ljava/lang/Number; - public final fun copy (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;)Lcom/datadog/android/trace/model/SpanEvent$Device; - public static synthetic fun copy$default (Lcom/datadog/android/trace/model/SpanEvent$Device;Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;ILjava/lang/Object;)Lcom/datadog/android/trace/model/SpanEvent$Device; + public final fun copy (Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;)Lcom/datadog/android/trace/model/SpanEvent$Device; + public static synthetic fun copy$default (Lcom/datadog/android/trace/model/SpanEvent$Device;Lcom/datadog/android/trace/model/SpanEvent$Type;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Boolean;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/datadog/android/trace/model/SpanEvent$Device; public fun equals (Ljava/lang/Object;)Z public static final fun fromJson (Ljava/lang/String;)Lcom/datadog/android/trace/model/SpanEvent$Device; public static final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/trace/model/SpanEvent$Device; @@ -261,12 +264,15 @@ public final class com/datadog/android/trace/model/SpanEvent$Device { public final fun getBrightnessLevel ()Ljava/lang/Number; public final fun getLocale ()Ljava/lang/String; public final fun getLocales ()Ljava/util/List; + public final fun getLogicalCpuCount ()Ljava/lang/Number; public final fun getModel ()Ljava/lang/String; public final fun getName ()Ljava/lang/String; public final fun getPowerSavingMode ()Ljava/lang/Boolean; public final fun getTimeZone ()Ljava/lang/String; + public final fun getTotalRam ()Ljava/lang/Number; public final fun getType ()Lcom/datadog/android/trace/model/SpanEvent$Type; public fun hashCode ()I + public final fun isLowRam ()Ljava/lang/Boolean; public final fun toJson ()Lcom/google/gson/JsonElement; public fun toString ()Ljava/lang/String; } diff --git a/features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/domain/event/BaseSpanEventMapper.kt b/features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/domain/event/BaseSpanEventMapper.kt index 783eb507e2..a4af024ad3 100644 --- a/features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/domain/event/BaseSpanEventMapper.kt +++ b/features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/domain/event/BaseSpanEventMapper.kt @@ -34,7 +34,10 @@ internal abstract class BaseSpanEventMapper : ContextAwareMapper { model = deviceInfo.deviceModel, brand = deviceInfo.deviceBrand, architecture = deviceInfo.architecture, + isLowRam = deviceInfo.isLowRam, + logicalCpuCount = deviceInfo.logicalCpuCount, + totalRam = deviceInfo.totalRam, locale = forge.aNullable { anAlphabeticalString() }, locales = forge.aNullable { aList { anAlphabeticalString() } }, timeZone = forge.aNullable { anAlphabeticalString() }, diff --git a/tools/benchmark/src/main/json/span-schema.json b/tools/benchmark/src/main/json/span-schema.json index 1c3448c63a..449ee214ba 100644 --- a/tools/benchmark/src/main/json/span-schema.json +++ b/tools/benchmark/src/main/json/span-schema.json @@ -263,6 +263,21 @@ "type": "string", "description": "The CPU architecture of the device that is reporting the error", "readOnly": true + }, + "processor_count": { + "type" : "number", + "description": "Number of device processors", + "readOnly": true + }, + "total_ram": { + "type" : "number", + "description": "Total RAM in megabytes", + "readOnly": true + }, + "is_low_ram_device": { + "type": "boolean", + "description": "Whether the device is considered a low RAM device.", + "readOnly": true } } },