Delete local room related entities with cascade

This commit is contained in:
Florian Renaud 2022-07-04 17:47:48 +02:00
parent f4b50f1e0f
commit 0d9cd2b3a3

View file

@ -25,6 +25,7 @@ import org.matrix.android.sdk.internal.database.model.RoomEntity
import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
import org.matrix.android.sdk.internal.database.model.TimelineEventEntity
import org.matrix.android.sdk.internal.database.model.deleteOnCascade
import org.matrix.android.sdk.internal.database.query.where
import org.matrix.android.sdk.internal.database.query.whereRoomId
import org.matrix.android.sdk.internal.di.SessionDatabase
@ -59,10 +60,10 @@ internal class DefaultDeleteLocalRoomTask @Inject constructor(
?.deleteAllFromRealm()
TimelineEventEntity.whereRoomId(realm, roomId = roomId).findAll()
?.also { Timber.i("## DeleteLocalRoomTask - TimelineEventEntity - delete ${it.size} entries") }
?.deleteAllFromRealm()
?.forEach { it.deleteOnCascade(true) }
ChunkEntity.where(realm, roomId = roomId).findAll()
?.also { Timber.i("## DeleteLocalRoomTask - ChunkEntity - delete ${it.size} entries") }
?.deleteAllFromRealm()
?.forEach { it.deleteOnCascade(deleteStateEvents = true, canDeleteRoot = true) }
RoomSummaryEntity.where(realm, roomId = roomId).findAll()
?.also { Timber.i("## DeleteLocalRoomTask - RoomSummaryEntity - delete ${it.size} entries") }
?.deleteAllFromRealm()