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

@ -32,8 +32,8 @@ import io.element.android.features.createroom.impl.components.UserListView
import io.element.android.features.createroom.impl.userlist.UserListEvents
import io.element.android.features.createroom.impl.userlist.UserListState
import io.element.android.libraries.designsystem.components.button.BackButton
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.aliasScreenTitle
import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text
@ -46,9 +46,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun AddPeopleView(
state: UserListState,
onBackPressed: () -> Unit,
onNextPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onNextPressed: () -> Unit = {},
) {
Scaffold(
modifier = modifier,
@ -77,6 +77,8 @@ fun AddPeopleView(
.fillMaxWidth(),
state = state,
showBackButton = false,
onUserSelected = { },
onUserDeselected = {},
)
}
}
@ -86,9 +88,9 @@ fun AddPeopleView(
@Composable
private fun AddPeopleViewTopBar(
hasSelectedUsers: Boolean,
onBackPressed: () -> Unit,
onNextPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onNextPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -112,5 +114,9 @@ private fun AddPeopleViewTopBar(
@PreviewsDayNight
@Composable
internal fun AddPeopleViewPreview(@PreviewParameter(AddPeopleUserListStateProvider::class) state: UserListState) = ElementPreview {
AddPeopleView(state = state)
AddPeopleView(
state = state,
onBackPressed = {},
onNextPressed = {},
)
}

View file

@ -41,9 +41,9 @@ import io.element.android.libraries.theme.ElementTheme
@Composable
fun RoomPrivacyOption(
roomPrivacyItem: RoomPrivacyItem,
onOptionSelected: (RoomPrivacyItem) -> Unit,
modifier: Modifier = Modifier,
isSelected: Boolean = false,
onOptionSelected: (RoomPrivacyItem) -> Unit = {},
) {
Row(
modifier
@ -97,10 +97,12 @@ internal fun RoomPrivacyOptionPreview() = ElementPreview {
Column {
RoomPrivacyOption(
roomPrivacyItem = aRoomPrivacyItem,
onOptionSelected = {},
isSelected = true,
)
RoomPrivacyOption(
roomPrivacyItem = aRoomPrivacyItem,
onOptionSelected = {},
isSelected = false,
)
}

View file

@ -33,8 +33,8 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
fun SearchMultipleUsersResultItem(
searchResult: UserSearchResult,
isUserSelected: Boolean,
onCheckedChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
onCheckedChange: (Boolean) -> Unit = {},
) {
if (searchResult.isUnresolved) {
CheckableUnresolvedUserRow(
@ -62,12 +62,40 @@ internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { Con
@Composable
private fun ContentToPreview() {
Column {
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = false)
SearchMultipleUsersResultItem(
searchResult = UserSearchResult(
aMatrixUser(),
isUnresolved = false
),
isUserSelected = false,
onCheckedChange = {}
)
HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), isUserSelected = true)
SearchMultipleUsersResultItem(
searchResult = UserSearchResult(
aMatrixUser(),
isUnresolved = false
),
isUserSelected = true,
onCheckedChange = {}
)
HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = false)
SearchMultipleUsersResultItem(
searchResult = UserSearchResult(
aMatrixUser(),
isUnresolved = true
),
isUserSelected = false,
onCheckedChange = {}
)
HorizontalDivider()
SearchMultipleUsersResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true), isUserSelected = true)
SearchMultipleUsersResultItem(
searchResult = UserSearchResult(
aMatrixUser(),
isUnresolved = true
),
isUserSelected = true,
onCheckedChange = {}
)
}
}

View file

@ -33,8 +33,8 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
@Composable
fun SearchSingleUserResultItem(
searchResult: UserSearchResult,
onClick: () -> Unit,
modifier: Modifier = Modifier,
onClick: () -> Unit = {},
) {
if (searchResult.isUnresolved) {
UnresolvedUserRow(
@ -58,8 +58,14 @@ internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { Conten
@Composable
private fun ContentToPreview() {
Column {
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false))
SearchSingleUserResultItem(
searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false),
onClick = {},
)
HorizontalDivider()
SearchSingleUserResultItem(searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true))
SearchSingleUserResultItem(
searchResult = UserSearchResult(aMatrixUser(), isUnresolved = true),
onClick = {},
)
}
}

View file

@ -52,13 +52,13 @@ fun SearchUserBar(
selectedUsers: ImmutableList<MatrixUser>,
active: Boolean,
isMultiSelectionEnabled: Boolean,
onActiveChanged: (Boolean) -> Unit,
onTextChanged: (String) -> Unit,
onUserSelected: (MatrixUser) -> Unit,
onUserDeselected: (MatrixUser) -> Unit,
modifier: Modifier = Modifier,
showBackButton: Boolean = true,
placeHolderTitle: String = stringResource(CommonStrings.common_search_for_someone),
onActiveChanged: (Boolean) -> Unit = {},
onTextChanged: (String) -> Unit = {},
onUserSelected: (MatrixUser) -> Unit = {},
onUserDeselected: (MatrixUser) -> Unit = {},
) {
val columnState = rememberLazyListState()

View file

@ -26,18 +26,18 @@ import androidx.compose.ui.unit.dp
import io.element.android.features.createroom.impl.userlist.UserListEvents
import io.element.android.features.createroom.impl.userlist.UserListState
import io.element.android.features.createroom.impl.userlist.UserListStateProvider
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.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.components.SelectedUsersList
@Composable
fun UserListView(
state: UserListState,
onUserSelected: (MatrixUser) -> Unit,
onUserDeselected: (MatrixUser) -> Unit,
modifier: Modifier = Modifier,
showBackButton: Boolean = true,
onUserSelected: (MatrixUser) -> Unit = {},
onUserDeselected: (MatrixUser) -> Unit = {},
) {
Column(
modifier = modifier,
@ -79,5 +79,9 @@ fun UserListView(
@PreviewsDayNight
@Composable
internal fun UserListViewPreview(@PreviewParameter(UserListStateProvider::class) state: UserListState) = ElementPreview {
UserListView(state = state)
UserListView(
state = state,
onUserSelected = {},
onUserDeselected = {},
)
}

View file

@ -167,9 +167,9 @@ fun ConfigureRoomView(
@Composable
private fun ConfigureRoomToolbar(
isNextActionEnabled: Boolean,
onBackPressed: () -> Unit,
onNextPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onNextPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -194,9 +194,9 @@ private fun ConfigureRoomToolbar(
private fun RoomNameWithAvatar(
avatarUri: Uri?,
roomName: String,
onAvatarClick: () -> Unit,
onRoomNameChanged: (String) -> Unit,
modifier: Modifier = Modifier,
onAvatarClick: () -> Unit = {},
onRoomNameChanged: (String) -> Unit = {},
) {
Row(
modifier = modifier,
@ -221,8 +221,8 @@ private fun RoomNameWithAvatar(
@Composable
private fun RoomTopic(
topic: String,
onTopicChanged: (String) -> Unit,
modifier: Modifier = Modifier,
onTopicChanged: (String) -> Unit = {},
) {
LabelledTextField(
modifier = modifier,
@ -240,8 +240,8 @@ private fun RoomTopic(
@Composable
private fun RoomPrivacyOptions(
selected: RoomPrivacy?,
onOptionSelected: (RoomPrivacyItem) -> Unit,
modifier: Modifier = Modifier,
onOptionSelected: (RoomPrivacyItem) -> Unit = {},
) {
val items = roomPrivacyItems()
Column(modifier = modifier.selectableGroup()) {

View file

@ -55,11 +55,11 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun CreateRoomRootView(
state: CreateRoomRootState,
onClosePressed: () -> Unit,
onNewRoomClicked: () -> Unit,
onOpenDM: (RoomId) -> Unit,
onInviteFriendsClicked: () -> Unit,
modifier: Modifier = Modifier,
onClosePressed: () -> Unit = {},
onNewRoomClicked: () -> Unit = {},
onOpenDM: (RoomId) -> Unit = {},
onInviteFriendsClicked: () -> Unit = {},
) {
Scaffold(
modifier = modifier.fillMaxWidth(),
@ -81,6 +81,7 @@ fun CreateRoomRootView(
onUserSelected = {
state.eventSink(CreateRoomRootEvents.StartDM(it))
},
onUserDeselected = { },
)
if (!state.userListState.isSearchActive) {
@ -111,8 +112,8 @@ fun CreateRoomRootView(
@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun CreateRoomRootViewTopBar(
onClosePressed: () -> Unit,
modifier: Modifier = Modifier,
onClosePressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -134,9 +135,9 @@ private fun CreateRoomRootViewTopBar(
@Composable
private fun CreateRoomActionButtonsList(
state: CreateRoomRootState,
onNewRoomClicked: () -> Unit,
onInvitePeopleClicked: () -> Unit,
modifier: Modifier = Modifier,
onNewRoomClicked: () -> Unit = {},
onInvitePeopleClicked: () -> Unit = {},
) {
Column(modifier = modifier) {
CreateRoomActionButton(
@ -156,8 +157,8 @@ private fun CreateRoomActionButtonsList(
private fun CreateRoomActionButton(
@DrawableRes iconRes: Int,
text: String,
onClick: () -> Unit,
modifier: Modifier = Modifier,
onClick: () -> Unit = {},
) {
Row(
modifier = modifier
@ -187,5 +188,9 @@ internal fun CreateRoomRootViewPreview(@PreviewParameter(CreateRoomRootStateProv
ElementPreview {
CreateRoomRootView(
state = state,
onClosePressed = {},
onNewRoomClicked = {},
onOpenDM = {},
onInviteFriendsClicked = {},
)
}

View file

@ -53,9 +53,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun InviteListView(
state: InviteListState,
onBackClicked: () -> Unit,
onInviteAccepted: (RoomId) -> Unit,
modifier: Modifier = Modifier,
onBackClicked: () -> Unit = {},
onInviteAccepted: (RoomId) -> Unit = {},
) {
if (state.acceptedAction is Async.Success) {
LaunchedEffect(state.acceptedAction) {
@ -113,8 +113,8 @@ fun InviteListView(
@Composable
private fun InviteListContent(
state: InviteListState,
onBackClicked: () -> Unit,
modifier: Modifier = Modifier,
onBackClicked: () -> Unit = {},
) {
Scaffold(
modifier = modifier,
@ -173,5 +173,9 @@ private fun InviteListContent(
@PreviewsDayNight
@Composable
internal fun InviteListViewPreview(@PreviewParameter(InviteListStateProvider::class) state: InviteListState) = ElementPreview {
InviteListView(state)
InviteListView(
state = state,
onBackClicked = {},
onInviteAccepted = {},
)
}

View file

@ -45,8 +45,8 @@ import io.element.android.features.invitelist.impl.model.InviteListInviteSummary
import io.element.android.features.invitelist.impl.model.InviteSender
import io.element.android.libraries.designsystem.atomic.atoms.UnreadIndicatorAtom
import io.element.android.libraries.designsystem.components.avatar.Avatar
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.Button
import io.element.android.libraries.designsystem.theme.components.ButtonSize
import io.element.android.libraries.designsystem.theme.components.OutlinedButton
@ -59,9 +59,9 @@ private val minHeight = 72.dp
@Composable
internal fun InviteSummaryRow(
invite: InviteListInviteSummary,
onAcceptClicked: () -> Unit,
onDeclineClicked: () -> Unit,
modifier: Modifier = Modifier,
onAcceptClicked: () -> Unit = {},
onDeclineClicked: () -> Unit = {},
) {
Box(
modifier = modifier
@ -79,8 +79,8 @@ internal fun InviteSummaryRow(
@Composable
private fun DefaultInviteSummaryRow(
invite: InviteListInviteSummary,
onAcceptClicked: () -> Unit = {},
onDeclineClicked: () -> Unit = {},
onAcceptClicked: () -> Unit,
onDeclineClicked: () -> Unit,
) {
Row(
modifier = Modifier
@ -187,5 +187,9 @@ private fun SenderRow(sender: InviteSender) {
@PreviewsDayNight
@Composable
internal fun InviteSummaryRowPreview(@PreviewParameter(InviteListInviteSummaryProvider::class) data: InviteListInviteSummary) = ElementPreview {
InviteSummaryRow(data)
InviteSummaryRow(
invite = data,
onAcceptClicked = {},
onDeclineClicked = {},
)
}

View file

@ -68,8 +68,8 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun SendLocationView(
state: SendLocationState,
navigateUp: () -> Unit,
modifier: Modifier = Modifier,
navigateUp: () -> Unit = {},
) {
LaunchedEffect(Unit) {
state.eventSink(SendLocationEvents.RequestPermissions)

View file

@ -67,8 +67,8 @@ import kotlinx.collections.immutable.toImmutableMap
@Composable
fun ShowLocationView(
state: ShowLocationState,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
) {
when (state.permissionDialog) {
ShowLocationState.Dialog.None -> Unit

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 = {},
)
}

View file

@ -38,9 +38,9 @@ import io.element.android.libraries.theme.ElementTheme
@Composable
fun DefaultNotificationSettingOption(
mode: RoomNotificationMode,
onOptionSelected: (RoomNotificationMode) -> Unit,
modifier: Modifier = Modifier,
isSelected: Boolean = false,
onOptionSelected: (RoomNotificationMode) -> Unit = {},
) {
val subtitle = when(mode) {
RoomNotificationMode.ALL_MESSAGES -> stringResource(id = R.string.screen_notification_settings_edit_mode_all_messages)
@ -86,10 +86,12 @@ internal fun DefaultNotificationSettingOptionPreview() = ElementPreview {
DefaultNotificationSettingOption(
mode = RoomNotificationMode.ALL_MESSAGES,
isSelected = true,
onOptionSelected = {},
)
DefaultNotificationSettingOption(
mode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY,
isSelected = false,
onOptionSelected = {},
)
}
}

View file

@ -70,7 +70,7 @@ fun RageshakeDetectionView(
@Composable
private fun TakeScreenshot(
onScreenshotTaken: (ImageResult) -> Unit = {}
onScreenshotTaken: (ImageResult) -> Unit
) {
val view = LocalView.current
LaunchedEffect(Unit) {

View file

@ -34,8 +34,8 @@ import androidx.compose.ui.unit.dp
import io.element.android.features.roomdetails.impl.R
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.button.BackButton
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.aliasScreenTitle
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Scaffold
@ -58,9 +58,9 @@ import kotlinx.collections.immutable.ImmutableList
@Composable
fun RoomInviteMembersView(
state: RoomInviteMembersState,
onBackPressed: () -> Unit,
onSendPressed: (List<MatrixUser>) -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onSendPressed: (List<MatrixUser>) -> Unit = {},
) {
Scaffold(
modifier = modifier,
@ -113,9 +113,9 @@ fun RoomInviteMembersView(
@Composable
private fun RoomInviteMembersTopBar(
canSend: Boolean,
onBackPressed: () -> Unit,
onSendPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onSendPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -143,11 +143,11 @@ private fun RoomInviteMembersSearchBar(
state: SearchBarResultState<ImmutableList<InvitableUser>>,
selectedUsers: ImmutableList<MatrixUser>,
active: Boolean,
onActiveChanged: (Boolean) -> Unit,
onTextChanged: (String) -> Unit,
onUserToggled: (MatrixUser) -> Unit,
modifier: Modifier = Modifier,
placeHolderTitle: String = stringResource(CommonStrings.common_search_for_someone),
onActiveChanged: (Boolean) -> Unit = {},
onTextChanged: (String) -> Unit = {},
onUserToggled: (MatrixUser) -> Unit = {},
) {
SearchBar(
query = query,
@ -219,5 +219,9 @@ private fun RoomInviteMembersSearchBar(
@PreviewsDayNight
@Composable
internal fun RoomInviteMembersPreview(@PreviewParameter(RoomInviteMembersStateProvider::class) state: RoomInviteMembersState) = ElementPreview {
RoomInviteMembersView(state)
RoomInviteMembersView(
state = state,
onBackPressed = {},
onSendPressed = {},
)
}

View file

@ -177,8 +177,8 @@ private fun LazyListScope.roomMemberListSection(
@Composable
private fun RoomMemberListItem(
roomMember: RoomMember,
onClick: () -> Unit,
modifier: Modifier = Modifier,
onClick: () -> Unit = {},
) {
MatrixUserRow(
modifier = modifier.clickable(onClick = onClick),
@ -195,9 +195,9 @@ private fun RoomMemberListItem(
@Composable
private fun RoomMemberListTopBar(
canInvite: Boolean,
onBackPressed: () -> Unit,
onInvitePressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
onInvitePressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,

View file

@ -37,10 +37,10 @@ import io.element.android.libraries.theme.ElementTheme
@Composable
fun RoomNotificationSettingsOption(
roomNotificationSettingsItem: RoomNotificationSettingsItem,
onOptionSelected: (RoomNotificationSettingsItem) -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
isSelected: Boolean = false,
onOptionSelected: (RoomNotificationSettingsItem) -> Unit = {},
) {
Row(
modifier
@ -83,10 +83,12 @@ internal fun RoomPrivacyOptionPreview() = ElementPreview {
Column {
RoomNotificationSettingsOption(
roomNotificationSettingsItem = roomNotificationSettingsItems().first(),
onOptionSelected = {},
isSelected = true,
)
RoomNotificationSettingsOption(
roomNotificationSettingsItem = roomNotificationSettingsItems().last(),
onOptionSelected = {},
isSelected = false,
enabled = false,
)

View file

@ -26,8 +26,8 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationMode
fun RoomNotificationSettingsOptions(
selected: RoomNotificationMode?,
enabled: Boolean,
onOptionSelected: (RoomNotificationSettingsItem) -> Unit,
modifier: Modifier = Modifier,
onOptionSelected: (RoomNotificationSettingsItem) -> Unit = {},
) {
val items = roomNotificationSettingsItems()
Column(modifier = modifier.selectableGroup()) {

View file

@ -51,9 +51,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun RoomNotificationSettingsView(
state: RoomNotificationSettingsState,
onShowGlobalNotifications: () -> Unit,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onShowGlobalNotifications: () -> Unit = {},
onBackPressed: () -> Unit = {},
) {
if (state.showUserDefinedSettingStyle) {
UserDefinedRoomNotificationSettingsView(
@ -74,9 +74,9 @@ fun RoomNotificationSettingsView(
@Composable
private fun RoomSpecificNotificationSettingsView(
state: RoomNotificationSettingsState,
onShowGlobalNotifications: () -> Unit,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onShowGlobalNotifications: () -> Unit = {},
onBackPressed: () -> Unit = {},
) {
Scaffold(
modifier = modifier,
@ -173,8 +173,8 @@ private fun RoomSpecificNotificationSettingsView(
@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun RoomNotificationSettingsTopBar(
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -193,5 +193,9 @@ private fun RoomNotificationSettingsTopBar(
internal fun RoomNotificationSettingsPreview(
@PreviewParameter(RoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
) = ElementPreview {
RoomNotificationSettingsView(state)
RoomNotificationSettingsView(
state = state,
onShowGlobalNotifications = {},
onBackPressed = {},
)
}

View file

@ -42,8 +42,8 @@ import io.element.android.libraries.designsystem.theme.components.TopAppBar
@Composable
fun UserDefinedRoomNotificationSettingsView(
state: RoomNotificationSettingsState,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
) {
Scaffold(
modifier = modifier,
@ -101,8 +101,8 @@ fun UserDefinedRoomNotificationSettingsView(
@Composable
private fun UserDefinedRoomNotificationSettingsTopBar(
roomName: String,
onBackPressed: () -> Unit,
modifier: Modifier = Modifier,
onBackPressed: () -> Unit = {},
) {
TopAppBar(
modifier = modifier,
@ -120,5 +120,8 @@ private fun UserDefinedRoomNotificationSettingsTopBar(
internal fun UserDefinedRoomNotificationSettingsPreview(
@PreviewParameter(UserDefinedRoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
) = ElementPreview {
UserDefinedRoomNotificationSettingsView(state)
UserDefinedRoomNotificationSettingsView(
state = state,
onBackPressed = {},
)
}