Skip to content

Commit 04cfe9b

Browse files
authored
Merge pull request #2212 from OneSignal/NPE-getScheduleBackgroundRunIn
[Fix] NPE by getScheduleBackgroundRunIn
2 parents 4f0191f + 2c16b3c commit 04cfe9b

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/SessionModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.onesignal.session
33
import com.onesignal.common.modules.IModule
44
import com.onesignal.common.services.ServiceBuilder
55
import com.onesignal.core.internal.background.IBackgroundService
6+
import com.onesignal.core.internal.startup.IBootstrapService
67
import com.onesignal.core.internal.startup.IStartableService
78
import com.onesignal.session.internal.SessionManager
89
import com.onesignal.session.internal.influence.IInfluenceManager
@@ -39,6 +40,7 @@ internal class SessionModule : IModule {
3940
.provides<ISessionService>()
4041
.provides<IStartableService>()
4142
.provides<IBackgroundService>()
43+
.provides<IBootstrapService>()
4244
builder.register<SessionListener>().provides<IStartableService>()
4345
builder.register<SessionManager>().provides<ISessionManager>()
4446
}

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/session/internal/session/impl/SessionService.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.onesignal.core.internal.application.IApplicationService
66
import com.onesignal.core.internal.background.IBackgroundService
77
import com.onesignal.core.internal.config.ConfigModel
88
import com.onesignal.core.internal.config.ConfigModelStore
9+
import com.onesignal.core.internal.startup.IBootstrapService
910
import com.onesignal.core.internal.startup.IStartableService
1011
import com.onesignal.core.internal.time.ITime
1112
import com.onesignal.debug.LogLevel
@@ -32,7 +33,7 @@ internal class SessionService(
3233
private val _configModelStore: ConfigModelStore,
3334
private val _sessionModelStore: SessionModelStore,
3435
private val _time: ITime,
35-
) : ISessionService, IStartableService, IBackgroundService, IApplicationLifecycleHandler {
36+
) : ISessionService, IBootstrapService, IStartableService, IBackgroundService, IApplicationLifecycleHandler {
3637
override val startTime: Long
3738
get() = session!!.startTime
3839

@@ -50,9 +51,12 @@ internal class SessionService(
5051
// True if app has been foregrounded at least once since the app started
5152
private var hasFocused = false
5253

53-
override fun start() {
54+
override fun bootstrap() {
5455
session = _sessionModelStore.model
5556
config = _configModelStore.model
57+
}
58+
59+
override fun start() {
5660
_applicationService.addApplicationLifecycleHandler(this)
5761
}
5862

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/session/SessionServiceTests.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ private class Mocks {
1818
return mockSessionModelStore
1919
}
2020

21-
val sessionService = SessionService(MockHelper.applicationService(), MockHelper.configModelStore(), mockSessionModelStore, MockHelper.time(currentTime))
21+
val sessionService =
22+
SessionService(MockHelper.applicationService(), MockHelper.configModelStore(), mockSessionModelStore, MockHelper.time(currentTime))
2223

2324
val spyCallback = spyk<ISessionLifecycleHandler>()
2425
}
@@ -29,6 +30,7 @@ class SessionServiceTests : FunSpec({
2930
val mocks = Mocks()
3031
val sessionService = mocks.sessionService
3132

33+
sessionService.bootstrap()
3234
sessionService.start()
3335
val sessionModelStore = mocks.sessionModelStore { it.isValid = false }
3436
sessionService.subscribe(mocks.spyCallback)
@@ -50,6 +52,7 @@ class SessionServiceTests : FunSpec({
5052
val sessionModelStore = mocks.sessionModelStore()
5153

5254
// When
55+
sessionService.bootstrap()
5356
sessionService.start()
5457
sessionService.onFocus(true)
5558
sessionService.subscribe(mocks.spyCallback)
@@ -73,6 +76,7 @@ class SessionServiceTests : FunSpec({
7376
val mocks = Mocks()
7477
val sessionService = mocks.sessionService
7578

79+
sessionService.bootstrap()
7680
sessionService.start()
7781
val sessionModelStore =
7882
mocks.sessionModelStore {
@@ -101,6 +105,7 @@ class SessionServiceTests : FunSpec({
101105
val mocks = Mocks()
102106
val sessionService = mocks.sessionService
103107

108+
sessionService.bootstrap()
104109
sessionService.start()
105110
val sessionModelStore =
106111
mocks.sessionModelStore {
@@ -125,6 +130,7 @@ class SessionServiceTests : FunSpec({
125130
val mocks = Mocks()
126131
val sessionService = mocks.sessionService
127132

133+
sessionService.bootstrap()
128134
sessionService.start()
129135
val sessionModelStore =
130136
mocks.sessionModelStore {
@@ -147,6 +153,7 @@ class SessionServiceTests : FunSpec({
147153
mocks.sessionModelStore { it.isValid = false }
148154
val sessionService = mocks.sessionService
149155
sessionService.subscribe(mocks.spyCallback)
156+
sessionService.bootstrap()
150157
sessionService.start()
151158

152159
// When

0 commit comments

Comments
 (0)