Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/core/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ dependencies {
testImplementation "com.github.xgouchet.Elmyr:jvm:1.3.1"
testImplementation "org.mockito.kotlin:mockito-kotlin:5.1.0"
testImplementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testImplementation("org.mockito:mockito-inline:5.2.0")

unmock 'org.robolectric:android-all:4.4_r1-robolectric-r2'
detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:1.23.8"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ class DdSdkImplementation(
val dm = context?.getSystemService(Context.DISPLAY_SERVICE) as? DisplayManager ?: return 60.0
val display: Display = dm.getDisplay(Display.DEFAULT_DISPLAY) ?: return DEFAULT_REFRESH_HZ

return display.supportedModes.maxOf { it.refreshRate.toDouble() }
return display.supportedModes.maxOfOrNull { it.refreshRate.toDouble() } ?: DEFAULT_REFRESH_HZ
}

// endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@

package com.datadog.reactnative

import android.content.Context
import android.content.pm.PackageInfo
import android.hardware.display.DisplayManager
import android.os.Looper
import android.util.Log
import android.view.Choreographer
import android.view.Display
import com.datadog.android.DatadogSite
import com.datadog.android.core.configuration.BatchProcessingLevel
import com.datadog.android.core.configuration.BatchSize
Expand Down Expand Up @@ -71,6 +74,8 @@ import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource
import org.mockito.Answers
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`
import org.mockito.junit.jupiter.MockitoExtension
import org.mockito.junit.jupiter.MockitoSettings
import org.mockito.kotlin.any
Expand Down Expand Up @@ -3452,6 +3457,29 @@ internal class DdSdkTest {
assertThat(frameTimeSeconds).isEqualTo(0.016, Offset.offset(0.001))
}

@Test
fun `M getMaxDisplayRefreshRate returns default when supportedModes is empty`() {
// Given
val mockContext = mock(Context::class.java)
val mockDisplayManager = mock(DisplayManager::class.java)
val mockDisplay = mock(Display::class.java)

`when`(mockContext.getSystemService(Context.DISPLAY_SERVICE)).thenReturn(mockDisplayManager)
`when`(mockDisplayManager.getDisplay(Display.DEFAULT_DISPLAY)).thenReturn(mockDisplay)
`when`(mockDisplay.supportedModes).thenReturn(arrayOf())

// When
val result = testedBridgeSdk.normalizeFrameTime(
frameTimeSeconds = 0.016,
context = mockContext,
fpsBudget = null,
deviceDisplayFps = null
)

// Then
assertThat(result).isEqualTo(0.016, Offset.offset(0.001))
}

// endregion

// region Internal
Expand Down
Loading