diff --git a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt index 59b6d9c201f..272de8d339c 100644 --- a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt +++ b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt @@ -42,7 +42,7 @@ constructor( ) { init { - Log.d(TAG, "Initializing Firebase Sessions SDK.") + Log.d(TAG, "Initializing Firebase Sessions ${BuildConfig.VERSION_NAME}.") val appContext = firebaseApp.applicationContext.applicationContext if (appContext is Application) { appContext.registerActivityLifecycleCallbacks(sessionsActivityLifecycleCallbacks) diff --git a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SessionsActivityLifecycleCallbacks.kt b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SessionsActivityLifecycleCallbacks.kt index 0cdfbd1a498..9d6f37b05e6 100644 --- a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SessionsActivityLifecycleCallbacks.kt +++ b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SessionsActivityLifecycleCallbacks.kt @@ -38,6 +38,8 @@ constructor(private val sharedSessionRepository: SharedSessionRepository) : } override fun onActivityResumed(activity: Activity) { + // There is a known issue in API level 34 where in some cases with a split screen, the call to + // onActivityResumed can happen before the call to onActivityPaused. This is fixed in API 35+ if (enabled) { sharedSessionRepository.appForeground() } 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 2c33c173d95..7534ba8b1e8 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 @@ -105,12 +105,11 @@ constructor( Log.d(TAG, "App backgrounded, but local SessionData not initialized") return } - val sessionData = localSessionData - Log.d(TAG, "App backgrounded on ${processDataManager.myProcessName} - $sessionData") + Log.d(TAG, "App backgrounded on ${processDataManager.myProcessName}") CoroutineScope(backgroundDispatcher).launch { try { - sessionDataStore.updateData { + sessionDataStore.updateData { sessionData -> sessionData.copy(backgroundTime = timeProvider.currentTime()) } } catch (ex: Exception) { @@ -127,7 +126,7 @@ constructor( return } val sessionData = localSessionData - Log.d(TAG, "App foregrounded on ${processDataManager.myProcessName} - $sessionData") + Log.d(TAG, "App foregrounded on ${processDataManager.myProcessName}") // Check if maybe the session data needs to be updated if (isSessionExpired(sessionData) || isMyProcessStale(sessionData)) {