Skip to content

Commit dedab04

Browse files
committed
Detect timezone changes on new sessions
Tack onto existing SessionListener's TrackSessionStartOperation call so this update would be combined. Otherwise, because the TrackSessionStartOperation has flush = true, the timing may mean 2 user update requests are made when it could be combined. Cons: the Session Listener is encroaching beyond what its scope should be.
1 parent 059cc4d commit dedab04

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.onesignal.session.internal.session.ISessionService
1111
import com.onesignal.user.internal.identity.IdentityModelStore
1212
import com.onesignal.user.internal.operations.TrackSessionEndOperation
1313
import com.onesignal.user.internal.operations.TrackSessionStartOperation
14+
import com.onesignal.user.internal.properties.PropertiesModelStore
1415

1516
/**
1617
* The [SessionListener] is responsible for subscribing itself as an [ISessionLifecycleHandler]
@@ -33,13 +34,16 @@ internal class SessionListener(
3334
private val _sessionService: ISessionService,
3435
private val _configModelStore: ConfigModelStore,
3536
private val _identityModelStore: IdentityModelStore,
37+
private val _propertiesModelStore: PropertiesModelStore,
3638
private val _outcomeEventsController: IOutcomeEventsController,
3739
) : IStartableService, ISessionLifecycleHandler {
3840
override fun start() {
3941
_sessionService.subscribe(this)
4042
}
4143

4244
override fun onSessionStarted() {
45+
// Detect any user updates to send with the TrackSessionStartOperation
46+
_propertiesModelStore.model.update()
4347
_operationRepo.enqueue(TrackSessionStartOperation(_configModelStore.model.appId, _identityModelStore.model.onesignalId), true)
4448
}
4549

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/properties/PropertiesModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.onesignal.user.internal.properties
22

3+
import com.onesignal.common.TimeUtils
34
import com.onesignal.common.modeling.MapModel
45
import com.onesignal.common.modeling.Model
56
import org.json.JSONObject
@@ -122,4 +123,8 @@ class PropertiesModel : Model() {
122123

123124
return null
124125
}
126+
127+
fun update() {
128+
timezone = TimeUtils.getTimeZoneId()
129+
}
125130
}

0 commit comments

Comments
 (0)