Skip to content

Commit

Permalink
Fix session start tracking
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabio Tacke committed Nov 17, 2021
1 parent 558c957 commit 2ae390a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
21 changes: 15 additions & 6 deletions app/src/main/java/tice/AppFlow.kt
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ class AppFlow constructor(val application: TICEApplication) : LifecycleObserver,

private lateinit var workManager: WorkManager

private var appInitialized = false

@OptIn(ExperimentalStdlibApi::class)
fun initApp(): Job {
val initJob = Job()
Expand Down Expand Up @@ -203,15 +205,22 @@ class AppFlow constructor(val application: TICEApplication) : LifecycleObserver,
}

val versionCode = BuildConfig.VERSION_CODE

tracker.get().setProperty(0, "android-$versionCode")
tracker.get().start()
trackSessionStart()

if (BuildConfig.APPLICATION_ID != "app.tice.TICE.development") {
tracker.get().start()
}
appInitialized = true

return initJob
}

private fun trackSessionStart() {
val lang =
ConfigurationCompat.getLocales(application.applicationContext.resources.configuration)[0].language
tracker.get().track(TrackerEvent.sessionStart(lang))
}

fun onStop() {
logger.debug("OnStop called")
val sessionDuration = Date().time - (sessionStart ?: Date()).time
Expand All @@ -228,10 +237,10 @@ class AppFlow constructor(val application: TICEApplication) : LifecycleObserver,
fun onMoveToForeground() {
_isInForeground = AppStatusProvider.Status.FOREGROUND

val lang =
ConfigurationCompat.getLocales(application.applicationContext.resources.configuration)[0].language
tracker.get().track(TrackerEvent.sessionStart(lang))
sessionStart = Date()
if (appInitialized) {
trackSessionStart()
}
}

@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
Expand Down
7 changes: 0 additions & 7 deletions app/src/test/java/tice/AppFlowTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -324,19 +324,12 @@ internal class AppFlowTest {
fun onMoveToForeground() = runBlocking {
val defaultStatus = appFlow.status

val slot = slot<TrackerEvent>()
every { mockTracker.track(capture(slot), any()) } answers { }

appFlow.onMoveToForeground()

val newStatus = appFlow.status

Assertions.assertEquals(defaultStatus, AppStatusProvider.Status.BACKGROUND)
Assertions.assertEquals(newStatus, AppStatusProvider.Status.FOREGROUND)

verify(exactly = 1) { mockTracker.track(any()) }
Assertions.assertEquals(slot.captured.name, "SessionStart")
Assertions.assertEquals(slot.captured.detail, testLanguage)
}

@Test
Expand Down

0 comments on commit 2ae390a

Please sign in to comment.