diff --git a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SharedSessionRepository.kt b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SharedSessionRepository.kt index c33b4800005..ed2479646d8 100644 --- a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SharedSessionRepository.kt +++ b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SharedSessionRepository.kt @@ -98,7 +98,6 @@ constructor( CoroutineScope(backgroundDispatcher).launch { try { sessionDataStore.updateData { - // TODO(mrober): Double check time makes sense? sessionData.copy(backgroundTime = timeProvider.currentTime()) } } catch (ex: Exception) { @@ -138,10 +137,17 @@ constructor( currentSessionData.processDataMap } + val currentSession = + if (isColdStart) { + // For a cold start, do not keep the current session + null + } else { + currentSessionData.sessionDetails + } + // This is an expression, and returns the updated session data if (isSessionExpired || isColdStart) { - val newSessionDetails = - sessionGenerator.generateNewSession(currentSessionData.sessionDetails) + val newSessionDetails = sessionGenerator.generateNewSession(currentSession) sessionFirelogPublisher.mayLogSession(sessionDetails = newSessionDetails) processDataManager.onSessionGenerated() currentSessionData.copy( diff --git a/firebase-sessions/src/test/kotlin/com/google/firebase/sessions/SharedSessionRepositoryTest.kt b/firebase-sessions/src/test/kotlin/com/google/firebase/sessions/SharedSessionRepositoryTest.kt index 38ab0ca37a4..5adc708e36b 100644 --- a/firebase-sessions/src/test/kotlin/com/google/firebase/sessions/SharedSessionRepositoryTest.kt +++ b/firebase-sessions/src/test/kotlin/com/google/firebase/sessions/SharedSessionRepositoryTest.kt @@ -127,9 +127,7 @@ class SharedSessionRepositoryTest { fakeDataStore.close() assertThat(sharedSessionRepository.localSessionData.sessionDetails) - .isEqualTo( - SessionDetails(SESSION_ID_1, SESSION_ID_INIT, 1, fakeTimeProvider.currentTime().us) - ) + .isEqualTo(SessionDetails(SESSION_ID_1, SESSION_ID_1, 0, fakeTimeProvider.currentTime().us)) } @Test