Skip to content

Commit c24f04a

Browse files
committed
Disable the activity lifecycle callbacks on app delete (#6877)
1 parent d4eb55c commit c24f04a

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ constructor(
5757
Log.d(TAG, "Sessions SDK disabled. Not listening to lifecycle events.")
5858
} else {
5959
firebaseApp.addLifecycleEventListener { _, _ ->
60-
// Log.w(
61-
// TAG,
62-
// "FirebaseApp instance deleted. Sessions library will stop collecting data.",
63-
// )
64-
// TODO(mrober): Clean up on firebase app delete
60+
Log.w(
61+
TAG,
62+
"FirebaseApp instance deleted. Sessions library will stop collecting data.",
63+
)
64+
sessionsActivityLifecycleCallbacks.onAppDelete()
6565
}
6666
}
6767
}

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/SessionsActivityLifecycleCallbacks.kt

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,23 @@ internal class SessionsActivityLifecycleCallbacks
3131
@Inject
3232
constructor(private val sharedSessionRepository: SharedSessionRepository) :
3333
ActivityLifecycleCallbacks {
34-
35-
override fun onActivityResumed(activity: Activity) = sharedSessionRepository.appForeground()
36-
37-
override fun onActivityPaused(activity: Activity) = sharedSessionRepository.appBackground()
34+
private var enabled = true
35+
36+
fun onAppDelete() {
37+
enabled = false
38+
}
39+
40+
override fun onActivityResumed(activity: Activity) {
41+
if (enabled) {
42+
sharedSessionRepository.appForeground()
43+
}
44+
}
45+
46+
override fun onActivityPaused(activity: Activity) {
47+
if (enabled) {
48+
sharedSessionRepository.appBackground()
49+
}
50+
}
3851

3952
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) = Unit
4053

0 commit comments

Comments
 (0)