review: pass the RtcNotificationContent in the view to avoid casting
This commit is contained in:
parent
3dd3a31497
commit
5184f0dc59
2 changed files with 10 additions and 8 deletions
|
|
@ -43,10 +43,10 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@Composable
|
@Composable
|
||||||
internal fun TimelineItemCallNotifyView(
|
internal fun TimelineItemCallNotifyView(
|
||||||
event: TimelineItem.Event,
|
event: TimelineItem.Event,
|
||||||
|
content: TimelineItemRtcNotificationContent,
|
||||||
onLongClick: (TimelineItem.Event) -> Unit,
|
onLongClick: (TimelineItem.Event) -> Unit,
|
||||||
modifier: Modifier = Modifier
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
val intent = (event.content as? TimelineItemRtcNotificationContent)?.callIntent
|
|
||||||
Row(
|
Row(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
|
|
@ -54,7 +54,7 @@ internal fun TimelineItemCallNotifyView(
|
||||||
.combinedClickable(
|
.combinedClickable(
|
||||||
enabled = true,
|
enabled = true,
|
||||||
onClick = {},
|
onClick = {},
|
||||||
onLongClick = { onLongClick(event) },
|
onLongClick = { onLongClick() },
|
||||||
onLongClickLabel = stringResource(CommonStrings.action_open_context_menu),
|
onLongClickLabel = stringResource(CommonStrings.action_open_context_menu),
|
||||||
)
|
)
|
||||||
.onKeyboardContextMenuAction { onLongClick(event) }
|
.onKeyboardContextMenuAction { onLongClick(event) }
|
||||||
|
|
@ -80,7 +80,7 @@ internal fun TimelineItemCallNotifyView(
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(20.sp.toDp()),
|
modifier = Modifier.size(20.sp.toDp()),
|
||||||
imageVector =
|
imageVector =
|
||||||
if (intent == CallIntent.AUDIO) CompoundIcons.VoiceCallSolid() else CompoundIcons.VideoCallSolid(),
|
if (content.callIntent == CallIntent.AUDIO) CompoundIcons.VoiceCallSolid() else CompoundIcons.VideoCallSolid(),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = ElementTheme.colors.iconSecondary,
|
tint = ElementTheme.colors.iconSecondary,
|
||||||
)
|
)
|
||||||
|
|
@ -108,12 +108,13 @@ internal fun TimelineItemCallNotifyView(
|
||||||
internal fun TimelineItemCallNotifyViewPreview() = ElementPreview {
|
internal fun TimelineItemCallNotifyViewPreview() = ElementPreview {
|
||||||
Column(modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp)) {
|
Column(modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp)) {
|
||||||
listOf(
|
listOf(
|
||||||
aTimelineItemEvent(content = TimelineItemRtcNotificationContent(null)),
|
TimelineItemRtcNotificationContent(null),
|
||||||
aTimelineItemEvent(content = TimelineItemRtcNotificationContent(CallIntent.AUDIO)),
|
TimelineItemRtcNotificationContent(CallIntent.AUDIO),
|
||||||
aTimelineItemEvent(content = TimelineItemRtcNotificationContent(CallIntent.VIDEO)),
|
TimelineItemRtcNotificationContent(CallIntent.VIDEO),
|
||||||
).forEach { event ->
|
).forEach { content ->
|
||||||
TimelineItemCallNotifyView(
|
TimelineItemCallNotifyView(
|
||||||
event = event,
|
event = aTimelineItemEvent(content = content),
|
||||||
|
content = content,
|
||||||
onLongClick = {},
|
onLongClick = {},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,7 @@ internal fun TimelineItemRow(
|
||||||
TimelineItemCallNotifyView(
|
TimelineItemCallNotifyView(
|
||||||
modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 16.dp),
|
modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 16.dp),
|
||||||
event = timelineItem,
|
event = timelineItem,
|
||||||
|
content = timelineItem.content,
|
||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue