From 14b92b8363915234d7d4b3e4d5173c1f353a961b Mon Sep 17 00:00:00 2001 From: Stanley Peng Date: Wed, 29 Nov 2023 11:46:33 -0800 Subject: [PATCH] add client id and session id setter --- .../main/java/io/constructor/core/ConstructorIo.kt | 14 ++++++++++++++ .../io/constructor/data/local/PreferencesHelper.kt | 4 ++++ .../data/local/PreferencesHelperTest.kt | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/library/src/main/java/io/constructor/core/ConstructorIo.kt b/library/src/main/java/io/constructor/core/ConstructorIo.kt index f92a93d2..89a349fd 100755 --- a/library/src/main/java/io/constructor/core/ConstructorIo.kt +++ b/library/src/main/java/io/constructor/core/ConstructorIo.kt @@ -126,11 +126,25 @@ object ConstructorIo { */ fun getSessionId() = preferenceHelper.getSessionId() + /** + * Sets the sessionId + */ + fun setSessionId(sessionId: Int) { + preferenceHelper.setSessionId(sessionId); + } + /** * Returns the current client identifier (a random GUID assigned to the app running on the device) */ fun getClientId() = preferenceHelper.id + /** + * Sets the clientId + */ + fun setClientId(clientId: String) { + preferenceHelper.id = clientId; + } + internal fun testInit(context: Context?, constructorIoConfig: ConstructorIoConfig, dataManager: DataManager, preferenceHelper: PreferencesHelper, configMemoryHolder: ConfigMemoryHolder) { if (context == null) { throw IllegalStateException("Context is null, please init library using ConstructorIo.with(context)") diff --git a/library/src/main/java/io/constructor/data/local/PreferencesHelper.kt b/library/src/main/java/io/constructor/data/local/PreferencesHelper.kt index 92444aba..fb836adb 100755 --- a/library/src/main/java/io/constructor/data/local/PreferencesHelper.kt +++ b/library/src/main/java/io/constructor/data/local/PreferencesHelper.kt @@ -62,6 +62,10 @@ constructor(@ConstructorSdk val preferences: SharedPreferences) { return preferences.getInt(SESSION_ID, 1) } + fun setSessionId(sessionId: Int) { + preferences.edit().putInt(SESSION_ID, sessionId).apply() + } + internal fun resetSession(sessionIncrementAction: ((String) -> Unit)?): Int { val sessionId = 1 preferences.edit().putInt(SESSION_ID, sessionId).apply() diff --git a/library/src/test/java/io/constructor/data/local/PreferencesHelperTest.kt b/library/src/test/java/io/constructor/data/local/PreferencesHelperTest.kt index c9b10e6e..0c958632 100755 --- a/library/src/test/java/io/constructor/data/local/PreferencesHelperTest.kt +++ b/library/src/test/java/io/constructor/data/local/PreferencesHelperTest.kt @@ -57,6 +57,12 @@ class PreferencesHelperTest { assertEquals(1, preferencesHelper.getSessionId()) } + @Test + fun saveAndRetrieveSessionId() { + preferencesHelper.setSessionId(123); + assertEquals(123, preferencesHelper.getSessionId()) + } + @Test fun getSessionIdAfter30Minutes() { preferencesHelper.resetSession(null)