Skip to content

Commit 8623a75

Browse files
committed
Revert "implementation added"
This reverts commit 280de6b.
1 parent fb17d38 commit 8623a75

File tree

19 files changed

+320
-12
lines changed

19 files changed

+320
-12
lines changed

core/api/core.api

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,38 @@ public final class io/customer/sdk/data/model/Region$US : io/customer/sdk/data/m
269269
public static final field INSTANCE Lio/customer/sdk/data/model/Region$US;
270270
}
271271

272+
public final class io/customer/sdk/data/model/Settings {
273+
public static final field Companion Lio/customer/sdk/data/model/Settings$Companion;
274+
public synthetic fun <init> (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
275+
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
276+
public final fun component1 ()Ljava/lang/String;
277+
public final fun component2 ()Ljava/lang/String;
278+
public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lio/customer/sdk/data/model/Settings;
279+
public static synthetic fun copy$default (Lio/customer/sdk/data/model/Settings;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/customer/sdk/data/model/Settings;
280+
public fun equals (Ljava/lang/Object;)Z
281+
public final fun getApiHost ()Ljava/lang/String;
282+
public final fun getWriteKey ()Ljava/lang/String;
283+
public fun hashCode ()I
284+
public fun toString ()Ljava/lang/String;
285+
public static final fun write$Self (Lio/customer/sdk/data/model/Settings;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
286+
}
287+
288+
public final class io/customer/sdk/data/model/Settings$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
289+
public static final field INSTANCE Lio/customer/sdk/data/model/Settings$$serializer;
290+
public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor;
291+
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
292+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/customer/sdk/data/model/Settings;
293+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
294+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
295+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/customer/sdk/data/model/Settings;)V
296+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
297+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
298+
}
299+
300+
public final class io/customer/sdk/data/model/Settings$Companion {
301+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
302+
}
303+
272304
public final class io/customer/sdk/events/Metric : java/lang/Enum {
273305
public static final field Clicked Lio/customer/sdk/events/Metric;
274306
public static final field Converted Lio/customer/sdk/events/Metric;

core/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ plugins {
55
id 'com.android.library'
66
id 'kotlin-android'
77
id 'com.twilio.apkscale'
8+
id 'org.jetbrains.kotlin.plugin.serialization'
89
}
910

1011
ext {
@@ -38,4 +39,7 @@ dependencies {
3839
api project(":base")
3940
api Dependencies.androidxCoreKtx
4041
implementation Dependencies.coroutinesAndroid
42+
// Use this as API so customers can provide objects serializations without
43+
// needing to add it as a dependency to their app
44+
api(Dependencies.kotlinxSerializationJson)
4145
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.customer.sdk.data.model
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class Settings(val writeKey: String, val apiHost: String)

core/src/main/kotlin/io/customer/sdk/data/store/GlobalPreferenceStore.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@ package io.customer.sdk.data.store
22

33
import android.content.Context
44
import androidx.core.content.edit
5+
import io.customer.sdk.data.model.Settings
6+
import kotlinx.serialization.json.Json
57

68
/**
79
* Store for global preferences that are not tied to a specific api key, user
810
* or any other entity.
911
*/
1012
interface GlobalPreferenceStore {
1113
fun saveDeviceToken(token: String)
14+
fun saveSettings(value: String)
1215
fun getDeviceToken(): String?
16+
fun getSettings(): Settings?
1317
fun removeDeviceToken()
1418
fun clear(key: String)
1519
fun clearAll()
@@ -27,13 +31,27 @@ internal class GlobalPreferenceStoreImpl(
2731
putString(KEY_DEVICE_TOKEN, token)
2832
}
2933

34+
override fun saveSettings(value: String) = prefs.edit {
35+
putString(KEY_CONFIG_SETTINGS, value)
36+
}
37+
3038
override fun getDeviceToken(): String? = prefs.read {
3139
getString(KEY_DEVICE_TOKEN, null)
3240
}
3341

42+
override fun getSettings(): Settings? = prefs.read {
43+
runCatching {
44+
Json.decodeFromString(
45+
Settings.serializer(),
46+
getString(KEY_CONFIG_SETTINGS, null) ?: return null
47+
)
48+
}.getOrNull()
49+
}
50+
3451
override fun removeDeviceToken() = clear(KEY_DEVICE_TOKEN)
3552

3653
companion object {
3754
private const val KEY_DEVICE_TOKEN = "device_token"
55+
private const val KEY_CONFIG_SETTINGS = "config_settings"
3856
}
3957
}

datapipelines/src/main/kotlin/io/customer/datapipelines/util/EventNames.kt renamed to core/src/main/kotlin/io/customer/sdk/util/EventNames.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package io.customer.datapipelines.util
1+
package io.customer.sdk.util
22

33
/**
44
* Event names to identify specific events in data pipelines so they can be
55
* reflected on Journeys.
66
*/
7-
internal object EventNames {
7+
object EventNames {
88
const val DEVICE_UPDATE = "Device Created or Updated"
99
const val DEVICE_DELETE = "Device Deleted"
1010
const val METRIC_DELIVERY = "Report Delivery Event"

datapipelines/api/datapipelines.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ public final class io/customer/sdk/CustomerIO : io/customer/sdk/DataPipelineInst
174174
public fun getProfileAttributes ()Ljava/util/Map;
175175
public fun getRegisteredDeviceToken ()Ljava/lang/String;
176176
public fun getUserId ()Ljava/lang/String;
177+
public final fun getWriteKey ()Ljava/lang/String;
177178
public fun identify (Ljava/lang/String;Ljava/lang/Object;Lkotlinx/serialization/SerializationStrategy;)V
178179
public fun initialize ()V
179180
public static final fun instance ()Lio/customer/sdk/CustomerIO;

datapipelines/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,4 @@ dependencies {
3939

4040
implementation(Dependencies.segment)
4141
implementation Dependencies.androidxProcessLifecycle
42-
// Use this as API so customers can provide objects serializations without
43-
// needing to add it as a dependency to their app
44-
api(Dependencies.kotlinxSerializationJson)
4542
}

datapipelines/src/main/kotlin/io/customer/datapipelines/migration/TrackingMigrationProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import com.segment.analytics.kotlin.core.platform.EnrichmentClosure
1010
import com.segment.analytics.kotlin.core.utilities.putAll
1111
import com.segment.analytics.kotlin.core.utilities.putInContextUnderKey
1212
import io.customer.datapipelines.extensions.toJsonObject
13-
import io.customer.datapipelines.util.EventNames
1413
import io.customer.datapipelines.util.SegmentInstantFormatter
1514
import io.customer.sdk.CustomerIO
1615
import io.customer.sdk.core.di.SDKComponent
1716
import io.customer.sdk.core.util.Logger
17+
import io.customer.sdk.util.EventNames
1818
import io.customer.tracking.migration.MigrationAssistant
1919
import io.customer.tracking.migration.MigrationProcessor
2020
import io.customer.tracking.migration.request.MigrationTask

datapipelines/src/main/kotlin/io/customer/datapipelines/plugins/AutoTrackDeviceAttributesPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.segment.analytics.kotlin.core.BaseEvent
55
import com.segment.analytics.kotlin.core.TrackEvent
66
import com.segment.analytics.kotlin.core.platform.Plugin
77
import com.segment.analytics.kotlin.core.utilities.putAll
8-
import io.customer.datapipelines.util.EventNames
8+
import io.customer.sdk.util.EventNames
99
import kotlinx.serialization.json.buildJsonObject
1010
import kotlinx.serialization.json.jsonObject
1111

datapipelines/src/main/kotlin/io/customer/sdk/CustomerIO.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import io.customer.datapipelines.plugins.ContextPlugin
2323
import io.customer.datapipelines.plugins.CustomerIODestination
2424
import io.customer.datapipelines.plugins.DataPipelinePublishedEvents
2525
import io.customer.datapipelines.plugins.ScreenFilterPlugin
26-
import io.customer.datapipelines.util.EventNames
2726
import io.customer.sdk.communication.Event
2827
import io.customer.sdk.communication.subscribe
2928
import io.customer.sdk.core.di.AndroidSDKComponent
@@ -32,9 +31,12 @@ import io.customer.sdk.core.module.CustomerIOModule
3231
import io.customer.sdk.core.util.CioLogLevel
3332
import io.customer.sdk.core.util.Logger
3433
import io.customer.sdk.data.model.CustomAttributes
34+
import io.customer.sdk.data.model.Settings
3535
import io.customer.sdk.events.TrackMetric
36+
import io.customer.sdk.util.EventNames
3637
import io.customer.tracking.migration.MigrationProcessor
3738
import kotlinx.serialization.SerializationStrategy
39+
import kotlinx.serialization.json.Json
3840
import kotlinx.serialization.serializer
3941

4042
/**
@@ -173,6 +175,14 @@ class CustomerIO private constructor(
173175
logger.debug("CustomerIO SDK initialized with DataPipelines module.")
174176
// Migrate unsent events from previous version
175177
migrateTrackingEvents()
178+
179+
// save settings to storage
180+
analytics.configuration.let { config ->
181+
val settings = Settings(writeKey = config.writeKey, apiHost = config.apiHost)
182+
globalPreferenceStore.saveSettings(
183+
Json.encodeToString(Settings.serializer(), settings)
184+
)
185+
}
176186
}
177187

178188
override var profileAttributes: CustomAttributes
@@ -282,6 +292,9 @@ class CustomerIO private constructor(
282292
override val userId: String?
283293
get() = analytics.userId()
284294

295+
val writeKey: String
296+
get() = analytics.configuration.writeKey
297+
285298
override var deviceAttributes: CustomAttributes
286299
get() = emptyMap()
287300
set(value) {

0 commit comments

Comments
 (0)