@@ -6,6 +6,9 @@ import com.amplitude.android.EventQueueMessage.EnterForeground
66import com.amplitude.android.EventQueueMessage.Event
77import com.amplitude.android.EventQueueMessage.ExitForeground
88import com.amplitude.android.EventQueueMessage.SetIdentity
9+ import com.amplitude.android.IdentityField.DeviceId
10+ import com.amplitude.android.IdentityField.ResetDeviceId
11+ import com.amplitude.android.IdentityField.UserId
912import com.amplitude.core.Storage
1013import com.amplitude.core.Storage.Constants
1114import com.amplitude.core.Storage.Constants.LAST_EVENT_ID
@@ -18,6 +21,7 @@ import kotlinx.coroutines.channels.onFailure
1821import kotlinx.coroutines.launch
1922import java.util.concurrent.atomic.AtomicBoolean
2023import java.util.concurrent.atomic.AtomicLong
24+ import com.amplitude.android.Amplitude as AndroidAmplitude
2125
2226private const val DEFAULT_SESSION_ID = - 1L
2327private const val DEFAULT_EVENT_ID_OR_TIME = 0L
@@ -107,14 +111,16 @@ class Timeline(
107111 refreshSessionTime(message.timestamp)
108112 }
109113 is SetIdentity -> {
114+ val editIdentity = amplitude.idContainer.identityManager.editIdentity()
115+
110116 when (val field = message.field) {
111- is IdentityField . UserId -> {
112- amplitude.idContainer.identityManager.editIdentity ()
113- .setUserId(field.value).commit()
114- }
115- is IdentityField . DeviceId -> {
116- amplitude.idContainer.identityManager.editIdentity()
117- .setDeviceId(field.value).commit( )
117+ is UserId -> editIdentity.setUserId(field.value).commit()
118+ is DeviceId -> editIdentity.setDeviceId(field.value).commit ()
119+ is ResetDeviceId -> {
120+ editIdentity.setDeviceId( null ).commit()
121+ (amplitude as AndroidAmplitude ).androidContextPlugin.initializeDeviceId(
122+ amplitude.configuration as Configuration ,
123+ )
118124 }
119125 }
120126 }
@@ -242,6 +248,8 @@ sealed class IdentityField {
242248 data class UserId (val value : String? ) : IdentityField()
243249
244250 data class DeviceId (val value : String ) : IdentityField()
251+
252+ data object ResetDeviceId : IdentityField ()
245253}
246254
247255sealed class EventQueueMessage {
0 commit comments