From cc9e032197d918f68b1e1bbe91851db2dd8ffec9 Mon Sep 17 00:00:00 2001 From: pandeymangg Date: Thu, 21 May 2026 17:41:56 +0530 Subject: [PATCH 1/2] fixes backing data empty list bug --- android/build.gradle.kts | 2 +- .../com/formbricks/android/manager/UserManager.kt | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) 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/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 } } From fe89df02d6af6223ccdf58c704a5849010b4094f Mon Sep 17 00:00:00 2001 From: pandeymangg Date: Thu, 21 May 2026 17:54:47 +0530 Subject: [PATCH 2/2] test fix --- .../com/formbricks/android/FormbricksInstrumentedTest.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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)