diff --git a/android/build.gradle.kts b/android/build.gradle.kts index e8a6e54..501b20c 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -95,7 +95,7 @@ dependencies { mavenPublishing { publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) - signAllPublications() // disabled for local publishing + signAllPublications() coordinates(groupId, artifactId, version.toString()) diff --git a/android/src/androidTest/java/com/formbricks/android/FormbricksInstrumentedTest.kt b/android/src/androidTest/java/com/formbricks/android/FormbricksInstrumentedTest.kt index e6b3841..0f20ecb 100644 --- a/android/src/androidTest/java/com/formbricks/android/FormbricksInstrumentedTest.kt +++ b/android/src/androidTest/java/com/formbricks/android/FormbricksInstrumentedTest.kt @@ -89,7 +89,10 @@ class FormbricksInstrumentedTest { assertEquals(workspaceId, Formbricks.workspaceId) // User manager default state. There is no user yet. - assertEquals(UserManager.displays?.count(), 0) + // displays getter returns null when SharedPreferences key absent (no + // emptySet default like segments/responses), and logout() in setUp + // cleared the key. + assertNull(UserManager.displays) assertEquals(UserManager.responses?.count(), 0) assertEquals(UserManager.segments?.count(), 0) diff --git a/android/src/main/java/com/formbricks/android/manager/UserManager.kt b/android/src/main/java/com/formbricks/android/manager/UserManager.kt index 83ae473..57e3f44 100644 --- a/android/src/main/java/com/formbricks/android/manager/UserManager.kt +++ b/android/src/main/java/com/formbricks/android/manager/UserManager.kt @@ -112,12 +112,16 @@ object UserManager { fun syncUserStateIfNeeded() { val id = userId val expiresAt = expiresAt - if (id != null && expiresAt != null && Date().before(expiresAt)) { + if (id != null && expiresAt != null && !Date().before(expiresAt)) { syncUser(id) } else { - backingSegments = emptyList() - backingDisplays = emptyList() - backingResponses = emptyList() + // Drop only the in-memory caches. Assigning emptyList() would mask the + // persisted SharedPreferences arrays because the lazy getters fall back + // to disk only when the backing is null; a non-null empty list + // short-circuits the elvis/null-check and the persisted values never load. + backingSegments = null + backingDisplays = null + backingResponses = null } }