Merge branch 'develop' into feature/fga/fix_timeline_back_pagination_loop
This commit is contained in:
commit
f548dadfd7
42 changed files with 86 additions and 89 deletions
1
changelog.d/1940.bugfix
Normal file
1
changelog.d/1940.bugfix
Normal file
|
|
@ -0,0 +1 @@
|
|||
Fix scaling of timeline images: don't crop, don't set min/max aspect ratio values.
|
||||
|
|
@ -213,7 +213,8 @@ class TimelinePresenter @AssistedInject constructor(
|
|||
newMostRecentItemId != prevMostRecentItemIdValue
|
||||
if (hasNewEvent) {
|
||||
val newMostRecentEvent = newMostRecentItem as? TimelineItem.Event
|
||||
val fromMe = newMostRecentEvent?.localSendState != null
|
||||
// Scroll to bottom if the new event is from me, even if sent from another device
|
||||
val fromMe = newMostRecentEvent?.isMine == true
|
||||
newEventState.value = if (fromMe) {
|
||||
NewEventState.FromMe
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -99,10 +99,9 @@ fun MessageEventBubble(
|
|||
}
|
||||
|
||||
// Ignore state.isHighlighted for now, we need a design decision on it.
|
||||
val backgroundBubbleColor = if (state.isMine) {
|
||||
ElementTheme.colors.messageFromMeBackground
|
||||
} else {
|
||||
ElementTheme.colors.messageFromOtherBackground
|
||||
val backgroundBubbleColor = when {
|
||||
state.isMine -> ElementTheme.colors.messageFromMeBackground
|
||||
else -> ElementTheme.colors.messageFromOtherBackground
|
||||
}
|
||||
val bubbleShape = bubbleShape()
|
||||
Box(
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ private fun MessageEventBubbleContent(
|
|||
) {
|
||||
when (timestampPosition) {
|
||||
TimestampPosition.Overlay ->
|
||||
Box(modifier) {
|
||||
Box(modifier, contentAlignment = Alignment.Center) {
|
||||
content()
|
||||
TimelineEventTimestampView(
|
||||
event = event,
|
||||
|
|
@ -650,7 +650,7 @@ internal fun TimelineItemEventRowPreview() = ElementPreview {
|
|||
event = aTimelineItemEvent(
|
||||
isMine = it,
|
||||
content = aTimelineItemImageContent().copy(
|
||||
aspectRatio = 5f
|
||||
aspectRatio = 2.5f
|
||||
),
|
||||
groupPosition = TimelineItemGroupPosition.Last,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ internal fun TimelineItemEventRowWithReplyPreview(
|
|||
isMine = it,
|
||||
timelineItemReactions = aTimelineItemReactions(count = 0),
|
||||
content = aTimelineItemImageContent().copy(
|
||||
aspectRatio = 5f
|
||||
aspectRatio = 2.5f
|
||||
),
|
||||
inReplyTo = inReplyToDetails,
|
||||
isThreaded = true,
|
||||
|
|
|
|||
|
|
@ -25,9 +25,8 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
private const val MAX_HEIGHT_IN_DP = 360f
|
||||
private const val MIN_ASPECT_RATIO = 0.6f
|
||||
private const val MAX_ASPECT_RATIO = 4f
|
||||
private const val MIN_HEIGHT_IN_DP = 100
|
||||
private const val MAX_HEIGHT_IN_DP = 360
|
||||
private const val DEFAULT_ASPECT_RATIO = 1.33f
|
||||
|
||||
@Composable
|
||||
|
|
@ -37,11 +36,11 @@ fun TimelineItemAspectRatioBox(
|
|||
contentAlignment: Alignment = Alignment.TopStart,
|
||||
content: @Composable (BoxScope.() -> Unit),
|
||||
) {
|
||||
val safeAspectRatio = (aspectRatio ?: DEFAULT_ASPECT_RATIO).coerceIn(MIN_ASPECT_RATIO, MAX_ASPECT_RATIO)
|
||||
val safeAspectRatio = aspectRatio ?: DEFAULT_ASPECT_RATIO
|
||||
Box(
|
||||
modifier = modifier
|
||||
.heightIn(max = MAX_HEIGHT_IN_DP.dp)
|
||||
.aspectRatio(safeAspectRatio, true),
|
||||
.heightIn(min = MIN_HEIGHT_IN_DP.dp, max = MAX_HEIGHT_IN_DP.dp)
|
||||
.aspectRatio(safeAspectRatio, false),
|
||||
contentAlignment = contentAlignment,
|
||||
content = content
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@ package io.element.android.features.messages.impl.timeline.components.event
|
|||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContentProvider
|
||||
import io.element.android.libraries.designsystem.components.BlurHashAsyncImage
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.matrix.ui.media.MediaRequestData
|
||||
|
||||
@Composable
|
||||
|
|
@ -34,12 +33,11 @@ fun TimelineItemImageView(
|
|||
) {
|
||||
TimelineItemAspectRatioBox(
|
||||
aspectRatio = content.aspectRatio,
|
||||
modifier = modifier
|
||||
modifier = modifier,
|
||||
) {
|
||||
BlurHashAsyncImage(
|
||||
model = MediaRequestData(content.preferredMediaSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
|
||||
blurHash = content.blurhash,
|
||||
contentScale = ContentScale.Crop,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
|||
import io.element.android.libraries.matrix.api.timeline.MatrixTimeline
|
||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventReaction
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.ReactionSender
|
||||
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem
|
||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||
|
|
@ -205,7 +204,7 @@ class TimelinePresenterTest {
|
|||
consumeItemsUntilPredicate { it.timelineItems.size == 1 }
|
||||
// Mimics sending a message, and assert newEventState is FromMe
|
||||
timeline.updateTimelineItems { items ->
|
||||
val event = anEventTimelineItem(content = aMessageContent(), localSendState = LocalEventSendState.Sent(AN_EVENT_ID))
|
||||
val event = anEventTimelineItem(content = aMessageContent(), isOwn = true)
|
||||
items + listOf(MatrixTimelineItem.Event("1", event))
|
||||
}
|
||||
consumeItemsUntilPredicate { it.timelineItems.size == 2 }
|
||||
|
|
@ -366,7 +365,7 @@ class TimelinePresenterTest {
|
|||
messagesNavigator: FakeMessagesNavigator = FakeMessagesNavigator(),
|
||||
endPollAction: EndPollAction = FakeEndPollAction(),
|
||||
sendPollResponseAction: SendPollResponseAction = FakeSendPollResponseAction(),
|
||||
): TimelinePresenter {
|
||||
): TimelinePresenter {
|
||||
return TimelinePresenter(
|
||||
timelineItemsFactory = timelineItemsFactory,
|
||||
room = FakeMatrixRoom(matrixTimeline = timeline),
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c40273c36eb1479f284e75fa91d4a75b1ae97edd0242dda37a2d4a8f10394928
|
||||
size 138700
|
||||
oid sha256:301b6cc63cc5e075aa70e0d4d67da5a3fd96049f834f5d04665e905de6860d89
|
||||
size 123525
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9765d4c28463df920063a46f3aaaa29df816ba44c424ae4fac6c9e2380cb64ee
|
||||
size 138717
|
||||
oid sha256:d03c9055f17ecba10787da59bc7d598b9b397c52f70f930a4603c58bb26b2d60
|
||||
size 123995
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:06617cda0f93ce0ea26b2a77a243371cdaf4f9a2956d8159ecb7196f7f6fe082
|
||||
size 139282
|
||||
oid sha256:f4fe06708cd1f1e49254779bce07f6751792a94fa9065882385efad1ac8663c2
|
||||
size 124159
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7d444f76e3eed1fe8291a25b24a8712427747a728270244cfa3842260b9c1b2d
|
||||
size 139335
|
||||
oid sha256:b1c09f5b8c68f493a04541a7ce77ca33d98c41e56c020e355dfc4419406592ae
|
||||
size 124700
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3c1b0ba1c320f576b62b1a27387a9f9a46e09e9f063e02700bd8ccded1f99f68
|
||||
size 150335
|
||||
oid sha256:1ca195029059318ae3c0d78982024f026546e9ecbbe3484262c459541a72b0d4
|
||||
size 139498
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:47da4816749072a1521ce4890eaa7a432d534e594b7561ccb232f1f986644386
|
||||
size 146063
|
||||
oid sha256:056f97085265006349952cab7ce090cf613ffd2d99e6b1746f0274228d8f85f9
|
||||
size 135870
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d05bc70fe365692805c5627f6a8e24190ca9e2f3873f3dc1afffeb18b97b4834
|
||||
size 131802
|
||||
oid sha256:711686ff22c31041ff142d7ba8bb6af3352f5b8383e88ed3258f0ba1dbd8dada
|
||||
size 167432
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:48f35f2c39b7b124c4df7dc0d9ddd97e40be2a70b784834dc99ac134d05ab74e
|
||||
size 151274
|
||||
oid sha256:1c17b41f0a27e5e197a50dd8018561769ff8ee7166b4f08aebec13b1020b0641
|
||||
size 171777
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8b61fcac5c3b5107e86d0dec94f38543277e3ca1c8d54ec2c6a606692fe1a6c4
|
||||
size 129785
|
||||
oid sha256:ac9dd0ab14d1c25f97274feadc122506ce1411efa0966e9b97e8e9105f90ec89
|
||||
size 165158
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:acabd4ae5b0404418de449b47d2e037cbc3cbfe86c699bb4a912dcaad9658597
|
||||
size 119825
|
||||
oid sha256:07dd3eef2dcf3e5b9ad9e2b765f2c855e77550a4d9f67abaec58770e96aa055f
|
||||
size 154167
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c45c7f0dd89c5ae639b763417a3a055eee29f7db91db320068b5fae9178231c0
|
||||
size 117849
|
||||
oid sha256:52563ac5d69e50244537181e1ce3d94d18713ae4833f1f24190b579237ebf27b
|
||||
size 152512
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:28f6897219f94ffff48953ea387ea91914e731d53862511b1e81ddbd4f9f81a7
|
||||
size 126184
|
||||
oid sha256:212f7662c10e40beed0441d8a7bf63b29039cda2cfd107cc913540fffca2fb8c
|
||||
size 161102
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2b7ea11a870467df04e66236ec3ee85d96b6c0b3ea38ffe2a60721bf4e5794f9
|
||||
size 116505
|
||||
oid sha256:50f79dcf56fcede4a87ec8cfc0ecae2b983102123c92ee976661a270036a59ee
|
||||
size 151464
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3293abf633684ad534cdf27eb8bec831090afcb40268f54dccd6d8a39fc5ca38
|
||||
size 120153
|
||||
oid sha256:321be7239a8421f7be80e9be9e3befb14543285bebbab08de2e33acd519de9d6
|
||||
size 154468
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:798be7ee710c62eabfba8ee89cc3b0ed9f0b3250f491d7a03c7695dcb9c96a16
|
||||
size 127201
|
||||
oid sha256:aa2d9a694e1e2c2816769caf15bb16906bd82567c4eaa3b0e00837518b41b8d2
|
||||
size 162373
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2bfa1880ffbf6d154df5f5130ff19b079e2db9496791fb417f71e186c6ad9dc2
|
||||
size 116859
|
||||
oid sha256:59cd8489ec06f17beb95990e06c5fdf726a22761ccb87212cf99919f231f0237
|
||||
size 151677
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd0bcd7381de78ddb833d2912d6895c10bcf6ef537687f659780177ebbc5b352
|
||||
size 115888
|
||||
oid sha256:7a9ed336d0c4ebfe6dfbaa8c8d5a5efd760003eb55369811bed7d30954910677
|
||||
size 150970
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c02b2a2b48c8b7c24a082eaf112d98b21ac9e5df8db2ecbce8fe16f00356b38e
|
||||
size 129442
|
||||
oid sha256:64a98bd4cfc092eab2ab27472d7895df87ca7d58ef0ca319a4468be5696125f8
|
||||
size 165098
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ea1594733269d422572619828e66bb4177a60a0cc2910c7c700c2b2db0e73e81
|
||||
size 148333
|
||||
oid sha256:324e0df2a6c27363d98c898ebcc907cb2b30a23481ef6ed2d4d9f5a35b20aff4
|
||||
size 169342
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c51f5ffe2df513e2868d4672750fec64bd97ad942fdd6b1f74ebe3437c200c1c
|
||||
size 127782
|
||||
oid sha256:55675ed0ab4ad9e30f4bb000912ad5413903bdb12e3cee48bf337ae811c6afaa
|
||||
size 163210
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d404d2d2828018013b29a58e14c87aacc5ae40924cc68cf237c0d5fdfde2622d
|
||||
size 117909
|
||||
oid sha256:6236e2f6f7b9f7e5512394d53acdf1ffb98ae9a515d09d8d418322bdce252301
|
||||
size 152787
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:439da7c5062743bc80036b829525089185b5c3394fa12458dbbb299b63226b1d
|
||||
size 115892
|
||||
oid sha256:4b7c2ed87c849b9f22a4d767261ec970ff397396f00a1e289bbf9a87c260e5ec
|
||||
size 151068
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1c367d94ecdf82b40051920782e98f6b138b443d1d47887aa25dc718f2a3847a
|
||||
size 124231
|
||||
oid sha256:e1f740c97ee0c69aec6d11067738d1b81cfb95e0e078affe93ce79eb3f79df63
|
||||
size 159375
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3244853b7f42894529ecdc55a812530a528db1883ff51d390507bb846560d128
|
||||
size 114393
|
||||
oid sha256:fbfd1da880da72462ece7550bff5c6789b32c9a294c56626e00f1ba21baed569
|
||||
size 149837
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af627492f704c63ff337354a2f5259ffc5452018a518190b9a2dbba5efd68597
|
||||
size 118409
|
||||
oid sha256:e54db5eefb4c3d539e79beb82e860dfc2fbc775c75da18be541fb852f661682c
|
||||
size 153188
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8a1e67039cb6f46ef7d3f10ef25057a3fd35531564178c56498d28649edfed49
|
||||
size 125289
|
||||
oid sha256:3a498a0f7d71103472e2d30780a40eddb4699114f46526976bcd4bc7dfb5f229
|
||||
size 160488
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:47943a4a887e34fe7133ef53218759f2ba69db06cde76b064763eee69007f662
|
||||
size 114754
|
||||
oid sha256:39c1df36664808d4af9b3ac2881e648bafdf5354376b74f0ca7c731cb05072be
|
||||
size 150007
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:82bf809126a9d41a610c36e4dfbf584c91c40e595d71e875f5afd3b8ffdc1bc4
|
||||
size 113881
|
||||
oid sha256:de3d3ef7e6b65220c7df8a25f2d1539990ef0a47b7e6f2d53b1f53a0e351af4c
|
||||
size 149396
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:11da400ec4d40643f4cf601c795d8c7d6488b4526d0f80127fc3aaf68024e871
|
||||
size 153433
|
||||
oid sha256:1173aed6e70d09e8c8c8db2032e28464caee6da101c0fe7fc160482d477f7d18
|
||||
size 190846
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c79824aea14c0a42fdd21d50763092e08f20cedb8b6b0b1e450d8dc028e8cf3
|
||||
size 148228
|
||||
oid sha256:e15bf90ad85964a4365eaf0cb47e2856ef8c2846047e22302497014059aca11f
|
||||
size 187016
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fa6571e27635039a0b104c9062dbf01b6134982ba27f960f9394b4bd10b09313
|
||||
size 230532
|
||||
oid sha256:2489cb6ab856106d527134b51b90342885b21585cb3f7a929385a187eef2f12c
|
||||
size 208912
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:30e8b758628d2f319662ca803fc222e01845cf6c0156af2ab729b21e13a7fe22
|
||||
size 231421
|
||||
oid sha256:f38480a36ab69497fa1d7a5b92ce581f422bf834961d336343662f9024a43d19
|
||||
size 209748
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2689767ba1970a99cc2c0e1fc911fd61d4f43f4a13cadfa49ec22c205de21849
|
||||
size 229850
|
||||
oid sha256:bb3d9e761e12a8038b5dbd7b4e6c66c9e4cc65c798f79944a5626a6e205458c7
|
||||
size 208390
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f4edb8dc7eed92cef41ec6081dbbaf96f4d6170acb61575b045a39fcc9e231b2
|
||||
size 230752
|
||||
oid sha256:de0a4c9214993a733998f638c257556203369a506947ba5ec9042648347bd978
|
||||
size 209261
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue