|
1 | 1 | package io.customer.messaginginapp.gist.data |
2 | 2 |
|
3 | 3 | import com.google.gson.Gson |
4 | | -import com.google.gson.reflect.TypeToken |
5 | 4 | import io.customer.messaginginapp.di.inAppMessagingManager |
6 | 5 | import io.customer.messaginginapp.di.inAppPreferenceStore |
7 | 6 | import io.customer.messaginginapp.gist.data.model.BroadcastFrequency |
@@ -32,7 +31,6 @@ internal class AnonymousMessageManagerImpl() : AnonymousMessageManager { |
32 | 31 |
|
33 | 32 | companion object { |
34 | 33 | private const val ANONYMOUS_MESSAGES_EXPIRY_MINUTES = 60L |
35 | | - private val ANONYMOUS_MESSAGE_LIST_TYPE = object : TypeToken<List<Message>>() {}.type |
36 | 34 | } |
37 | 35 |
|
38 | 36 | override fun updateAnonymousMessagesLocalStore(messages: List<Message>) { |
@@ -117,11 +115,13 @@ internal class AnonymousMessageManagerImpl() : AnonymousMessageManager { |
117 | 115 | inAppPreferenceStore.setAnonymousDismissed(anonymousId, true) |
118 | 116 | logger.debug("Marked anonymous message $anonymousId as permanently dismissed (count=1)") |
119 | 117 | } |
| 118 | + |
120 | 119 | anonymousDetails.delay > 0 -> { |
121 | 120 | val nextShowTimeMillis = System.currentTimeMillis() + (anonymousDetails.delay * 1000L) |
122 | 121 | inAppPreferenceStore.setAnonymousNextShowTime(anonymousId, nextShowTimeMillis) |
123 | 122 | logger.debug("Marked anonymous message $anonymousId as seen, shown $numberOfTimesShown times, next show time: ${java.util.Date(nextShowTimeMillis)}") |
124 | 123 | } |
| 124 | + |
125 | 125 | else -> { |
126 | 126 | logger.debug("Marked anonymous message $anonymousId as seen, shown $numberOfTimesShown times, no delay restriction") |
127 | 127 | } |
@@ -152,7 +152,9 @@ internal class AnonymousMessageManagerImpl() : AnonymousMessageManager { |
152 | 152 | val anonymousMessagesJson = inAppPreferenceStore.getAnonymousMessages() ?: return emptyList() |
153 | 153 |
|
154 | 154 | return try { |
155 | | - gson.fromJson<List<Message>>(anonymousMessagesJson, ANONYMOUS_MESSAGE_LIST_TYPE) ?: emptyList() |
| 155 | + // Use Array<Message> to avoid R8/ProGuard issues with generic TypeToken |
| 156 | + val messagesArray = gson.fromJson(anonymousMessagesJson, Array<Message>::class.java) |
| 157 | + messagesArray?.toList() ?: emptyList() |
156 | 158 | } catch (e: Exception) { |
157 | 159 | logger.debug("Error parsing stored anonymous messages: ${e.message}") |
158 | 160 | emptyList() |
|
0 commit comments