Skip to content

Commit 97df89a

Browse files
authored
Remove androix.navigation dependence from :service module (#1668)
* Remove androix.navigation-fragment dependence * Replace the heavier androidx.preference with androidx.fragment which is what's needed * Remove unused dependencies from libs.version.toml * Revert reflection based usage of NavHost
1 parent 983935c commit 97df89a

3 files changed

Lines changed: 27 additions & 2 deletions

File tree

gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navig
3232
androidx-core = "androidx.core:core:1.18.0"
3333
androidx-annotation = "androidx.annotation:annotation:1.9.1"
3434
androidx-lifecycle-process = "androidx.lifecycle:lifecycle-process:2.9.4"
35-
androidx-preference-ktx = "androidx.preference:preference-ktx:1.2.1"
3635
androidx-fragment = { module = "androidx.fragment:fragment", version.ref="fragment" }
3736

3837
findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2"

services/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dependencies {
1919
implementation(libs.androidx.core)
2020
implementation(libs.androidx.navigation.runtime.ktx)
2121
implementation(libs.androidx.lifecycle.process)
22-
implementation(libs.androidx.preference.ktx)
22+
implementation(libs.androidx.fragment)
2323

2424
testImplementation(libs.androidx.test.core)
2525
testImplementation(libs.robolectric)

services/src/test/java/io/opentelemetry/android/internal/services/visiblescreen/VisibleScreenTrackerTest.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.app.Application
1010
import android.app.Application.ActivityLifecycleCallbacks
1111
import androidx.fragment.app.DialogFragment
1212
import androidx.fragment.app.Fragment
13+
import androidx.navigation.NavHost
1314
import androidx.navigation.fragment.NavHostFragment
1415
import io.mockk.impl.annotations.RelaxedMockK
1516
import io.mockk.junit5.MockKExtension
@@ -115,6 +116,29 @@ internal class VisibleScreenTrackerTest {
115116
)
116117
}
117118

119+
@Test
120+
fun fragmentLifecycle_customNavHostIgnored() {
121+
val visibleScreenTracker = this.visibleScreenService
122+
val fragment = mockk<Fragment>()
123+
val customNavHost = mockk<CustomNavHostFragment>()
124+
125+
visibleScreenTracker.fragmentResumed(fragment)
126+
visibleScreenTracker.fragmentResumed(customNavHost)
127+
assertEquals(
128+
fragment.javaClass.simpleName,
129+
visibleScreenTracker.currentlyVisibleScreen,
130+
)
131+
assertNull(visibleScreenTracker.previouslyVisibleScreen)
132+
133+
visibleScreenTracker.fragmentPaused(customNavHost)
134+
visibleScreenTracker.fragmentPaused(fragment)
135+
assertEquals("unknown", visibleScreenTracker.currentlyVisibleScreen)
136+
assertEquals(
137+
fragment.javaClass.simpleName,
138+
visibleScreenTracker.previouslyVisibleScreen,
139+
)
140+
}
141+
118142
@Test
119143
fun fragmentLifecycle_dialogFragment() {
120144
val visibleScreenTracker = this.visibleScreenService
@@ -174,4 +198,6 @@ internal class VisibleScreenTrackerTest {
174198

175199
private val visibleScreenService: VisibleScreenTracker
176200
get() = VisibleScreenTrackerImpl(application)
201+
202+
private abstract class CustomNavHostFragment : Fragment(), NavHost
177203
}

0 commit comments

Comments
 (0)