Merge pull request #1862 from vector-im/feature/bma/moreTests

Remove lambda default value
This commit is contained in:
Benoit Marty 2023-11-24 11:00:34 +01:00 committed by GitHub
commit 05ba424e75
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 436 additions and 230 deletions

View file

@ -450,10 +450,10 @@ private fun MessagesViewTopBar(
roomAvatar: AvatarData?,
inRoomCallsEnabled: Boolean,
isCallOngoing: Boolean,
onRoomDetailsClicked: () -> Unit,
onJoinCallClicked: () -> Unit,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onRoomDetailsClicked: () -> Unit = {},
onJoinCallClicked: () -> Unit = {},
onBackPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,

View file

@ -58,9 +58,9 @@ private const val BUBBLE_WIDTH_RATIO = 0.85f
fun MessageEventBubble(
state: BubbleState,
interactionSource: MutableInteractionSource,
onClick: () -> Unit,
onLongClick: () -> Unit,
modifier: Modifier = Modifier,
onClick: () -> Unit = {},
onLongClick: () -> Unit = {},
content: @Composable () -> Unit = {},
) {
fun bubbleShape(): Shape {
@ -144,6 +144,8 @@ internal fun MessageEventBubblePreview(@PreviewParameter(BubbleStateProvider::cl
MessageEventBubble(
state = state,
interactionSource = remember { MutableInteractionSource() },
onClick = {},
onLongClick = {},
) {
// Render the state as a text to better understand the previews
Box(

View file

@ -31,8 +31,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
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.designsystem.theme.components.Surface
private val CORNER_RADIUS = 8.dp
@ -42,9 +42,9 @@ private val CORNER_RADIUS = 8.dp
fun MessageStateEventContainer(
@Suppress("UNUSED_PARAMETER") isHighlighted: Boolean,
interactionSource: MutableInteractionSource,
onClick: () -> Unit,
onLongClick: () -> Unit,
modifier: Modifier = Modifier,
onClick: () -> Unit = {},
onLongClick: () -> Unit = {},
content: @Composable () -> Unit = {},
) {
// Ignore isHighlighted for now, we need a design decision on it.
@ -73,12 +73,16 @@ internal fun MessageStateEventContainerPreview() = ElementPreview {
MessageStateEventContainer(
isHighlighted = false,
interactionSource = remember { MutableInteractionSource() },
onClick = {},
onLongClick = {},
) {
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
}
MessageStateEventContainer(
isHighlighted = true,
interactionSource = remember { MutableInteractionSource() },
onClick = {},
onLongClick = {},
) {
Spacer(modifier = Modifier.size(width = 120.dp, height = 32.dp))
}

View file

@ -39,9 +39,9 @@ fun TimelineItemTextView(
content: TimelineItemTextBasedContent,
interactionSource: MutableInteractionSource,
extraPadding: ExtraPadding,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
CompositionLocalProvider(LocalContentColor provides ElementTheme.colors.textPrimary) {
val htmlDocument = content.htmlDocument
@ -79,5 +79,7 @@ internal fun TimelineItemTextViewPreview(
content = content,
interactionSource = remember { MutableInteractionSource() },
extraPadding = ExtraPadding(nbChars = 8),
onTextClicked = {},
onTextLongClicked = {},
)
}

View file

@ -58,8 +58,8 @@ import io.element.android.features.messages.impl.timeline.components.event.Extra
import io.element.android.features.messages.impl.timeline.components.event.getDpSize
import io.element.android.features.messages.impl.timeline.components.event.noExtraPadding
import io.element.android.libraries.designsystem.components.ClickableLinkText
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.designsystem.text.toDp
import io.element.android.libraries.designsystem.theme.components.Surface
import io.element.android.libraries.designsystem.theme.components.Text
@ -80,9 +80,9 @@ fun HtmlDocument(
document: Document,
extraPadding: ExtraPadding,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
FlowRow(
modifier = modifier,
@ -106,16 +106,16 @@ fun HtmlDocument(
private fun HtmlBody(
body: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
@Composable
fun NodesFlowRode(
nodes: Iterator<Node>,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
) = FlowRow(
horizontalArrangement = Arrangement.spacedBy(2.dp, Alignment.Start),
verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.Top),
@ -181,9 +181,9 @@ private fun Element.isInline(): Boolean {
private fun HtmlBlock(
element: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val blockModifier = modifier
.padding(top = 4.dp)
@ -239,9 +239,9 @@ private fun HtmlBlock(
private fun HtmlInline(
element: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
Box(modifier) {
val styledText = buildAnnotatedString {
@ -281,9 +281,9 @@ private fun HtmlPreformatted(
private fun HtmlParagraph(
paragraph: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
Box(modifier) {
val styledText = buildAnnotatedString {
@ -300,9 +300,9 @@ private fun HtmlParagraph(
private fun HtmlBlockquote(
blockquote: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val color = MaterialTheme.colorScheme.onBackground
Box(
@ -333,9 +333,9 @@ private fun HtmlBlockquote(
private fun HtmlHeading(
heading: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val style = when (heading.tagName().lowercase()) {
"h1" -> MaterialTheme.typography.headlineLarge.copy(fontSize = 30.sp)
@ -366,9 +366,9 @@ private fun HtmlHeading(
private fun HtmlMxReply(
mxReply: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val blockquote = mxReply.childNodes().firstOrNull() ?: return
val shape = RoundedCornerShape(12.dp)
@ -419,16 +419,17 @@ private fun HtmlMxReply(
private fun HtmlOrderedList(
orderedList: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val delimiter = "."
HtmlListItems(
list = orderedList,
marker = { index -> "$index$delimiter" },
modifier = modifier,
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
onTextClicked = onTextClicked,
onTextLongClicked = onTextLongClicked,
interactionSource = interactionSource
)
}
@ -437,16 +438,17 @@ private fun HtmlOrderedList(
private fun HtmlUnorderedList(
unorderedList: Element,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
val marker = ""
HtmlListItems(
list = unorderedList,
marker = { marker },
modifier = modifier,
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
onTextClicked = onTextClicked,
onTextLongClicked = onTextLongClicked,
interactionSource = interactionSource
)
}
@ -456,9 +458,9 @@ private fun HtmlListItems(
list: Element,
marker: (Int) -> String,
interactionSource: MutableInteractionSource,
onTextClicked: () -> Unit,
onTextLongClicked: () -> Unit,
modifier: Modifier = Modifier,
onTextClicked: () -> Unit = {},
onTextLongClicked: () -> Unit = {},
) {
Column(modifier = modifier) {
for ((index, node) in list.children().withIndex()) {
@ -468,7 +470,12 @@ private fun HtmlListItems(
append("${marker(index + 1)} ")
appendInlineChildrenElements(node.childNodes(), MaterialTheme.colorScheme)
}
HtmlText(text = text, interactionSource = remember { MutableInteractionSource() })
HtmlText(
text = text,
interactionSource = remember { MutableInteractionSource() },
onClick = onTextClicked,
onLongClick = onTextLongClicked,
)
} else {
for (innerNode in node.childNodes()) {
when (innerNode) {
@ -478,15 +485,18 @@ private fun HtmlListItems(
append("${marker(index + 1)} ")
}
HtmlText(
text = text, onClick = onTextClicked,
onLongClick = onTextLongClicked, interactionSource = interactionSource
text = text,
onClick = onTextClicked,
onLongClick = onTextLongClicked,
interactionSource = interactionSource
)
}
}
is Element -> HtmlBlock(
element = innerNode,
modifier = Modifier.padding(start = 4.dp),
onTextClicked = onTextClicked, onTextLongClicked = onTextLongClicked,
onTextClicked = onTextClicked,
onTextLongClicked = onTextLongClicked,
interactionSource = interactionSource
)
}
@ -595,10 +605,10 @@ fun AnnotatedString.Builder.safeAppendInlineContent(chipId: String, ownText: Str
private fun HtmlText(
text: AnnotatedString,
interactionSource: MutableInteractionSource,
onClick: () -> Unit,
onLongClick: () -> Unit,
modifier: Modifier = Modifier,
style: TextStyle = LocalTextStyle.current,
onClick: () -> Unit = {},
onLongClick: () -> Unit = {},
) {
val inlineContentMap = persistentMapOf<String, InlineTextContent>()
ClickableLinkText(
@ -618,6 +628,8 @@ internal fun HtmlDocumentPreview(@PreviewParameter(DocumentProvider::class) docu
HtmlDocument(
document = document,
extraPadding = noExtraPadding,
interactionSource = remember { MutableInteractionSource() }
interactionSource = remember { MutableInteractionSource() },
onTextClicked = {},
onTextLongClicked = {},
)
}