fixing flickering images when typing

This commit is contained in:
Adam Brown 2022-06-08 18:40:18 +01:00
parent c2c6296e9a
commit e3ac2586ad

View File

@ -218,6 +218,9 @@ private fun <T : RoomEvent> LazyItemScope.AlignedBubble(
@Composable @Composable
private fun MessageImage(content: BubbleContent<RoomEvent.Image>) { private fun MessageImage(content: BubbleContent<RoomEvent.Image>) {
val context = LocalContext.current
val fetcherFactory = remember { DecryptingFetcherFactory(context) }
Box(modifier = Modifier.padding(start = 6.dp)) { Box(modifier = Modifier.padding(start = 6.dp)) {
Box( Box(
Modifier Modifier
@ -245,8 +248,8 @@ private fun MessageImage(content: BubbleContent<RoomEvent.Image>) {
Image( Image(
modifier = Modifier.size(content.message.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)), modifier = Modifier.size(content.message.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)),
painter = rememberAsyncImagePainter( painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current) model = ImageRequest.Builder(context)
.fetcherFactory(DecryptingFetcherFactory(LocalContext.current)) .fetcherFactory(fetcherFactory)
.data(content.message) .data(content.message)
.build() .build()
), ),
@ -387,6 +390,8 @@ private fun ReplyBubbleContent(content: BubbleContent<RoomEvent.Reply>) {
.width(IntrinsicSize.Max) .width(IntrinsicSize.Max)
.defaultMinSize(minWidth = 50.dp) .defaultMinSize(minWidth = 50.dp)
) { ) {
val context = LocalContext.current
val fetcherFactory = remember { DecryptingFetcherFactory(context) }
Column( Column(
Modifier Modifier
.background(if (content.isNotSelf) SmallTalkTheme.extendedColors.otherBubbleReplyBackground else SmallTalkTheme.extendedColors.selfBubbleReplyBackground) .background(if (content.isNotSelf) SmallTalkTheme.extendedColors.otherBubbleReplyBackground else SmallTalkTheme.extendedColors.selfBubbleReplyBackground)
@ -415,8 +420,8 @@ private fun ReplyBubbleContent(content: BubbleContent<RoomEvent.Reply>) {
Image( Image(
modifier = Modifier.size(replyingTo.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)), modifier = Modifier.size(replyingTo.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)),
painter = rememberAsyncImagePainter( painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current) model = ImageRequest.Builder(context)
.fetcherFactory(DecryptingFetcherFactory(LocalContext.current)) .fetcherFactory(fetcherFactory)
.data(replyingTo) .data(replyingTo)
.build() .build()
), ),
@ -452,9 +457,9 @@ private fun ReplyBubbleContent(content: BubbleContent<RoomEvent.Reply>) {
Image( Image(
modifier = Modifier.size(message.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)), modifier = Modifier.size(message.imageMeta.scale(LocalDensity.current, LocalConfiguration.current)),
painter = rememberAsyncImagePainter( painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current) model = ImageRequest.Builder(context)
.data(content.message) .data(content.message)
.fetcherFactory(DecryptingFetcherFactory(LocalContext.current)) .fetcherFactory(fetcherFactory)
.build() .build()
), ),
contentDescription = null, contentDescription = null,