Skip to content

Commit fa66d70

Browse files
authored
Fix offline persisted drafts not cleared on logout (#6379)
* Fix offline persisted drafts not cleared on logout * Remove wrongly committed file.
1 parent d9141e0 commit fa66d70

3 files changed

Lines changed: 26 additions & 0 deletions

File tree

stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/offline/repository/domain/message/internal/DatabaseMessageRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ internal class DatabaseMessageRepository(
260260
replyMessageCache.evictAll()
261261
dbMutex.withLock {
262262
messageDao.deleteAll()
263+
messageDao.deleteAllDrafts()
263264
replyMessageDao.deleteAll()
264265
}
265266
}

stream-chat-android-client/src/main/java/io/getstream/chat/android/client/internal/offline/repository/domain/message/internal/MessageDao.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ internal interface MessageDao {
266266
types: List<String>,
267267
): List<MessageEntity>
268268

269+
@Query("DELETE FROM $DRAFT_MESSAGE_ENTITY_TABLE_NAME")
270+
suspend fun deleteAllDrafts()
271+
269272
private companion object {
270273
private const val SQLITE_MAX_VARIABLE_NUMBER: Int = 999
271274
private const val NO_LIMIT: Int = -1

stream-chat-android-client/src/test/java/io/getstream/chat/android/client/internal/offline/repository/MessageRepositoryTests.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,26 @@ internal class MessageRepositoryTests {
217217
// then
218218
verify(messageDao).deleteMessages(messageIds)
219219
}
220+
221+
@Test
222+
fun `when calling clear, then all related tables are cleared`() = runTest(testDispatcher) {
223+
// given
224+
val repository = DatabaseMessageRepository(
225+
this,
226+
messageDao,
227+
replyMessageDao,
228+
pollDao,
229+
::randomUser,
230+
randomUser(id = "currentUserId"),
231+
emptySet(),
232+
)
233+
234+
// when
235+
repository.clear()
236+
237+
// then
238+
verify(messageDao).deleteAll()
239+
verify(messageDao).deleteAllDrafts()
240+
verify(replyMessageDao).deleteAll()
241+
}
220242
}

0 commit comments

Comments
 (0)