Browse Source

Remove unused `RoomSummary` cache (#3647)

pull/3662/head
Jorge Martin Espinosa 1 week ago committed by GitHub
parent
commit
22f79f2726
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 21
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryListProcessor.kt

21
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryListProcessor.kt

@ -25,7 +25,6 @@ class RoomSummaryListProcessor( @@ -25,7 +25,6 @@ class RoomSummaryListProcessor(
private val coroutineContext: CoroutineContext,
private val roomSummaryDetailsFactory: RoomSummaryFactory = RoomSummaryFactory(),
) {
private val roomSummariesByIdentifier = HashMap<String, RoomSummary>()
private val mutex = Mutex()
suspend fun postUpdate(updates: List<RoomListEntriesUpdate>) {
@ -40,7 +39,7 @@ class RoomSummaryListProcessor( @@ -40,7 +39,7 @@ class RoomSummaryListProcessor(
suspend fun rebuildRoomSummaries() {
updateRoomSummaries {
forEachIndexed { i, summary ->
val result = buildAndCacheRoomSummaryForIdentifier(summary.roomId.value)
val result = buildRoomSummaryForIdentifier(summary.roomId.value)
if (result != null) {
this[i] = result
}
@ -97,23 +96,17 @@ class RoomSummaryListProcessor( @@ -97,23 +96,17 @@ class RoomSummaryListProcessor(
}
private suspend fun buildSummaryForRoomListEntry(entry: RoomListItem): RoomSummary {
return buildAndCacheRoomSummaryForRoomListItem(entry)
return buildRoomSummaryForRoomListItem(entry)
}
private suspend fun buildAndCacheRoomSummaryForIdentifier(identifier: String): RoomSummary? {
val builtRoomSummary = roomListService.roomOrNull(identifier)?.use { roomListItem ->
buildAndCacheRoomSummaryForRoomListItem(roomListItem)
private suspend fun buildRoomSummaryForIdentifier(identifier: String): RoomSummary? {
return roomListService.roomOrNull(identifier)?.use { roomListItem ->
buildRoomSummaryForRoomListItem(roomListItem)
}
if (builtRoomSummary == null) {
roomSummariesByIdentifier.remove(identifier)
}
return builtRoomSummary
}
private suspend fun buildAndCacheRoomSummaryForRoomListItem(roomListItem: RoomListItem): RoomSummary {
val builtRoomSummary = roomSummaryDetailsFactory.create(roomListItem = roomListItem)
roomSummariesByIdentifier[builtRoomSummary.roomId.value] = builtRoomSummary
return builtRoomSummary
private suspend fun buildRoomSummaryForRoomListItem(roomListItem: RoomListItem): RoomSummary {
return roomSummaryDetailsFactory.create(roomListItem = roomListItem)
}
private suspend fun updateRoomSummaries(block: suspend MutableList<RoomSummary>.() -> Unit) = withContext(coroutineContext) {

Loading…
Cancel
Save