mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Group preview for clarity and to limit the number of screenshots.
This commit is contained in:
+22
-1
@@ -9,12 +9,15 @@
|
|||||||
package io.element.android.libraries.matrix.ui.messages.sender
|
package io.element.android.libraries.matrix.ui.messages.sender
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clipToBounds
|
import androidx.compose.ui.draw.clipToBounds
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -136,9 +139,27 @@ private fun RowScope.SecondaryText(
|
|||||||
internal fun SenderNamePreview(
|
internal fun SenderNamePreview(
|
||||||
@PreviewParameter(SenderNameDataPreviewParam::class) senderNameData: SenderNameData,
|
@PreviewParameter(SenderNameDataPreviewParam::class) senderNameData: SenderNameData,
|
||||||
) = ElementPreview {
|
) = ElementPreview {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.padding(16.dp),
|
||||||
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||||
|
) {
|
||||||
|
sequenceOf(
|
||||||
|
SenderNameMode.Timeline(mainColor = Color.Red),
|
||||||
|
SenderNameMode.Reply,
|
||||||
|
SenderNameMode.ActionList,
|
||||||
|
).forEach { mode ->
|
||||||
|
Column {
|
||||||
|
Text(
|
||||||
|
"Rendering in mode ${mode::class.simpleName}:",
|
||||||
|
style = ElementTheme.typography.fontBodyXsRegular,
|
||||||
|
color = ElementTheme.colors.textSecondary,
|
||||||
|
)
|
||||||
SenderName(
|
SenderName(
|
||||||
senderId = senderNameData.userId,
|
senderId = senderNameData.userId,
|
||||||
senderProfile = senderNameData.profileDetails,
|
senderProfile = senderNameData.profileDetails,
|
||||||
senderNameMode = senderNameData.senderNameMode,
|
senderNameMode = mode,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-22
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.matrix.ui.messages.sender
|
package io.element.android.libraries.matrix.ui.messages.sender
|
||||||
|
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.ProfileDetails
|
import io.element.android.libraries.matrix.api.timeline.item.event.ProfileDetails
|
||||||
@@ -19,35 +18,22 @@ import io.element.android.libraries.matrix.ui.messages.reply.aProfileDetailsRead
|
|||||||
data class SenderNameData(
|
data class SenderNameData(
|
||||||
val userId: UserId,
|
val userId: UserId,
|
||||||
val profileDetails: ProfileDetails,
|
val profileDetails: ProfileDetails,
|
||||||
val senderNameMode: SenderNameMode,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
open class SenderNameDataPreviewParam : PreviewParameterProvider<SenderNameData> {
|
open class SenderNameDataPreviewParam : PreviewParameterProvider<SenderNameData> {
|
||||||
override val values: Sequence<SenderNameData>
|
override val values: Sequence<SenderNameData>
|
||||||
get() = sequenceOf(
|
get() = sequenceOf(
|
||||||
SenderNameMode.Timeline(mainColor = Color.Red),
|
aSenderNameData(),
|
||||||
SenderNameMode.Reply,
|
|
||||||
SenderNameMode.ActionList,
|
|
||||||
)
|
|
||||||
.flatMap { senderNameMode ->
|
|
||||||
sequenceOf(
|
|
||||||
aSenderNameData(
|
aSenderNameData(
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
),
|
|
||||||
aSenderNameData(
|
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
displayNameAmbiguous = true,
|
displayNameAmbiguous = true,
|
||||||
),
|
),
|
||||||
aSenderNameData(
|
aSenderNameData(
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
profileDetails = ProfileDetails.Unavailable,
|
profileDetails = ProfileDetails.Unavailable,
|
||||||
),
|
),
|
||||||
aSenderNameData(
|
aSenderNameData(
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
displayName = null,
|
displayName = null,
|
||||||
),
|
),
|
||||||
aSenderNameData(
|
aSenderNameData(
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
displayedStatus = DisplayedStatus.UserSet(
|
displayedStatus = DisplayedStatus.UserSet(
|
||||||
status = UserStatus(
|
status = UserStatus(
|
||||||
emoji = "😀",
|
emoji = "😀",
|
||||||
@@ -56,17 +42,23 @@ open class SenderNameDataPreviewParam : PreviewParameterProvider<SenderNameData>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
aSenderNameData(
|
aSenderNameData(
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
displayedStatus = DisplayedStatus.InCall(0L),
|
displayedStatus = DisplayedStatus.InCall(0L),
|
||||||
|
),
|
||||||
|
aSenderNameData(
|
||||||
|
displayNameAmbiguous = true,
|
||||||
|
displayedStatus = DisplayedStatus.UserSet(
|
||||||
|
status = UserStatus(
|
||||||
|
emoji = "😀",
|
||||||
|
text = "Should not be rendered",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun aSenderNameData(
|
private fun aSenderNameData(
|
||||||
senderNameMode: SenderNameMode,
|
userId: UserId = UserId("@alice:example.com"),
|
||||||
userId: UserId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"),
|
displayName: String? = "Alice",
|
||||||
displayName: String? = "Alice ${senderNameMode.javaClass.simpleName}",
|
|
||||||
displayNameAmbiguous: Boolean = false,
|
displayNameAmbiguous: Boolean = false,
|
||||||
displayedStatus: DisplayedStatus? = null,
|
displayedStatus: DisplayedStatus? = null,
|
||||||
profileDetails: ProfileDetails = aProfileDetailsReady(
|
profileDetails: ProfileDetails = aProfileDetailsReady(
|
||||||
@@ -77,5 +69,4 @@ private fun aSenderNameData(
|
|||||||
) = SenderNameData(
|
) = SenderNameData(
|
||||||
userId = userId,
|
userId = userId,
|
||||||
profileDetails = profileDetails,
|
profileDetails = profileDetails,
|
||||||
senderNameMode = senderNameMode,
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user