Simplify AvatarData and avoid carrying ByteArray

This commit is contained in:
ganfra 2023-02-01 15:57:00 +01:00
parent d43d433d38
commit b8860a6658
17 changed files with 99 additions and 115 deletions

View file

@ -29,7 +29,7 @@ interface MediaResolver {
}
data class Meta(
val source: MediaSource,
val source: MediaSource?,
val kind: Kind
)

View file

@ -28,6 +28,7 @@ internal class RustMediaResolver(private val client: MatrixClient) : MediaResolv
}
override suspend fun resolve(meta: MediaResolver.Meta): ByteArray? {
if (meta.source == null) return null
return when (meta.kind) {
is MediaResolver.Kind.Content -> client.loadMediaContentForSource(meta.source)
is MediaResolver.Kind.Thumbnail -> client.loadMediaThumbnailForSource(

View file

@ -29,6 +29,7 @@ import kotlinx.coroutines.cancel
import kotlinx.coroutines.cancelChildren
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.sample
@ -43,7 +44,7 @@ import org.matrix.rustcomponents.sdk.UpdateSummary
import timber.log.Timber
interface RoomSummaryDataSource {
fun roomSummaries(): Flow<List<RoomSummary>>
fun roomSummaries(): StateFlow<List<RoomSummary>>
fun setSlidingSyncRange(range: IntRange)
}
@ -98,9 +99,9 @@ internal class RustRoomSummaryDataSource(
coroutineScope.cancel()
}
@OptIn(FlowPreview::class)
override fun roomSummaries(): Flow<List<RoomSummary>> {
return roomSummaries.sample(50)
//@OptIn(FlowPreview::class)
override fun roomSummaries(): StateFlow<List<RoomSummary>> {
return roomSummaries
}
override fun setSlidingSyncRange(range: IntRange) {