rename voiceIntent to isAudioCall

This commit is contained in:
Valere
2026-03-04 11:10:40 +01:00
parent a3dd2c78b3
commit d37e32834b
20 changed files with 38 additions and 31 deletions

View File

@@ -26,10 +26,10 @@ sealed interface CallType : NodeInputs, Parcelable {
data class RoomCall( data class RoomCall(
val sessionId: SessionId, val sessionId: SessionId,
val roomId: RoomId, val roomId: RoomId,
val voiceIntent: Boolean val isAudioCall: Boolean
) : CallType { ) : CallType {
override fun toString(): String { override fun toString(): String {
return "RoomCall(sessionId=$sessionId, roomId=$roomId, voiceIntent=$voiceIntent)" return "RoomCall(sessionId=$sessionId, roomId=$roomId, isAudioCall=$isAudioCall)"
} }
} }
} }

View File

@@ -58,7 +58,7 @@ class DefaultElementCallEntryPoint(
expirationTimestamp = expirationTimestamp, expirationTimestamp = expirationTimestamp,
notificationChannelId = notificationChannelId, notificationChannelId = notificationChannelId,
textContent = textContent, textContent = textContent,
audioOnly = callType.voiceIntent audioOnly = callType.isAudioCall
) )
activeCallManager.registerIncomingCall(notificationData = incomingCallNotificationData) activeCallManager.registerIncomingCall(notificationData = incomingCallNotificationData)
} }

View File

@@ -89,7 +89,7 @@ class RingingCallNotificationCreator(
.setImportant(true) .setImportant(true)
.build() .build()
val answerIntent = IntentProvider.getPendingIntent(context, CallType.RoomCall(sessionId, roomId, voiceIntent = audioOnly)) val answerIntent = IntentProvider.getPendingIntent(context, CallType.RoomCall(sessionId, roomId, isAudioCall = audioOnly))
val notificationData = CallNotificationData( val notificationData = CallNotificationData(
sessionId = sessionId, sessionId = sessionId,
roomId = roomId, roomId = roomId,

View File

@@ -45,7 +45,7 @@ class DeclineCallBroadcastReceiver : BroadcastReceiver() {
callType = CallType.RoomCall( callType = CallType.RoomCall(
sessionId = notificationData.sessionId, sessionId = notificationData.sessionId,
roomId = notificationData.roomId, roomId = notificationData.roomId,
voiceIntent = notificationData.audioOnly isAudioCall = notificationData.audioOnly
) )
) )
} }

View File

@@ -116,7 +116,7 @@ class IncomingCallActivity : AppCompatActivity() {
CallType.RoomCall( CallType.RoomCall(
notificationData.sessionId, notificationData.sessionId,
notificationData.roomId, notificationData.roomId,
voiceIntent = notificationData.audioOnly isAudioCall = notificationData.audioOnly
) )
) )
} }

View File

@@ -147,7 +147,7 @@ class DefaultActiveCallManager(
sessionId = notificationData.sessionId, sessionId = notificationData.sessionId,
roomId = notificationData.roomId, roomId = notificationData.roomId,
// TODO // TODO
voiceIntent = notificationData.audioOnly, isAudioCall = notificationData.audioOnly,
), ),
callState = CallState.Ringing(notificationData), callState = CallState.Ringing(notificationData),
) )

View File

@@ -272,11 +272,11 @@ class MessagesFlowNode(
backstack.push(NavTarget.EditPoll(Timeline.Mode.Live, eventId)) backstack.push(NavTarget.EditPoll(Timeline.Mode.Live, eventId))
} }
override fun navigateToRoomCall(roomId: RoomId, voiceIntent: Boolean) { override fun navigateToRoomCall(roomId: RoomId, isAudioCall: Boolean) {
val callType = CallType.RoomCall( val callType = CallType.RoomCall(
sessionId = sessionId, sessionId = sessionId,
roomId = roomId, roomId = roomId,
voiceIntent = voiceIntent isAudioCall = isAudioCall
) )
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton) analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(callType) elementCallEntryPoint.startCall(callType)
@@ -493,7 +493,7 @@ class MessagesFlowNode(
val callType = CallType.RoomCall( val callType = CallType.RoomCall(
sessionId = sessionId, sessionId = sessionId,
roomId = roomId, roomId = roomId,
voiceIntent = voiceOnly isAudioCall = voiceOnly
) )
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton) analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(callType) elementCallEntryPoint.startCall(callType)

View File

@@ -125,7 +125,7 @@ class MessagesNode(
fun navigateToSendLocation() fun navigateToSendLocation()
fun navigateToCreatePoll() fun navigateToCreatePoll()
fun navigateToEditPoll(eventId: EventId) fun navigateToEditPoll(eventId: EventId)
fun navigateToRoomCall(roomId: RoomId, voiceIntent: Boolean) fun navigateToRoomCall(roomId: RoomId, isAudioCall: Boolean)
fun navigateToThread(threadRootId: ThreadId, focusedEventId: EventId?) fun navigateToThread(threadRootId: ThreadId, focusedEventId: EventId?)
fun navigateToRoomDetails() fun navigateToRoomDetails()
fun navigateToPinnedMessagesList() fun navigateToPinnedMessagesList()

View File

@@ -130,7 +130,7 @@ fun MessagesView(
onLinkClick: (String, Boolean) -> Unit, onLinkClick: (String, Boolean) -> Unit,
onSendLocationClick: () -> Unit, onSendLocationClick: () -> Unit,
onCreatePollClick: () -> Unit, onCreatePollClick: () -> Unit,
onJoinCallClick: (voiceIntent: Boolean) -> Unit, onJoinCallClick: (isAudioCall: Boolean) -> Unit,
onViewAllPinnedMessagesClick: () -> Unit, onViewAllPinnedMessagesClick: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
forceJumpToBottomVisibility: Boolean = false, forceJumpToBottomVisibility: Boolean = false,
@@ -423,7 +423,7 @@ private fun MessagesViewContent(
onMessageLongClick: (TimelineItem.Event) -> Unit, onMessageLongClick: (TimelineItem.Event) -> Unit,
onSendLocationClick: () -> Unit, onSendLocationClick: () -> Unit,
onCreatePollClick: () -> Unit, onCreatePollClick: () -> Unit,
onJoinCallClick: (voiceIntent: Boolean) -> Unit, onJoinCallClick: (isAudioCall: Boolean) -> Unit,
onViewAllPinnedMessagesClick: () -> Unit, onViewAllPinnedMessagesClick: () -> Unit,
forceJumpToBottomVisibility: Boolean, forceJumpToBottomVisibility: Boolean,
onSwipeToReply: (TimelineItem.Event) -> Unit, onSwipeToReply: (TimelineItem.Event) -> Unit,

View File

@@ -281,8 +281,8 @@ class ThreadedMessagesNode(
}, },
onSendLocationClick = callback::navigateToSendLocation, onSendLocationClick = callback::navigateToSendLocation,
onCreatePollClick = callback::navigateToCreatePoll, onCreatePollClick = callback::navigateToCreatePoll,
onJoinCallClick = { voiceIntent -> onJoinCallClick = { isAudioCall ->
callback.navigateToRoomCall(room.roomId, voiceIntent) callback.navigateToRoomCall(room.roomId, isAudioCall)
}, },
onViewAllPinnedMessagesClick = {}, onViewAllPinnedMessagesClick = {},
modifier = modifier, modifier = modifier,

View File

@@ -100,7 +100,7 @@ fun TimelineView(
onReactionLongClick: (emoji: String, TimelineItem.Event) -> Unit, onReactionLongClick: (emoji: String, TimelineItem.Event) -> Unit,
onMoreReactionsClick: (TimelineItem.Event) -> Unit, onMoreReactionsClick: (TimelineItem.Event) -> Unit,
onReadReceiptClick: (TimelineItem.Event) -> Unit, onReadReceiptClick: (TimelineItem.Event) -> Unit,
onJoinCallClick: (voiceIntent: Boolean) -> Unit, onJoinCallClick: (isAudioCall: Boolean) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
lazyListState: LazyListState = rememberLazyListState(), lazyListState: LazyListState = rememberLazyListState(),
forceJumpToBottomVisibility: Boolean = false, forceJumpToBottomVisibility: Boolean = false,

View File

@@ -53,7 +53,7 @@ internal fun CallMenuItem(
is RoomCallState.OnGoing -> { is RoomCallState.OnGoing -> {
OnGoingCallMenuItem( OnGoingCallMenuItem(
roomCallState = roomCallState, roomCallState = roomCallState,
onJoinCallClick = { onJoinCallClick(roomCallState.isVoiceIntent) }, onJoinCallClick = { onJoinCallClick(roomCallState.isAudioCall) },
modifier = modifier, modifier = modifier,
) )
} }
@@ -109,7 +109,7 @@ private fun OnGoingCallMenuItem(
) { ) {
Icon( Icon(
modifier = Modifier.size(20.dp), modifier = Modifier.size(20.dp),
imageVector = if (roomCallState.isVoiceIntent) { imageVector = if (roomCallState.isAudioCall) {
CompoundIcons.VoiceCallSolid() CompoundIcons.VoiceCallSolid()
} else { } else {
CompoundIcons.VideoCallSolid() CompoundIcons.VideoCallSolid()

View File

@@ -72,7 +72,7 @@ internal fun TimelineItemRow(
onMoreReactionsClick: (TimelineItem.Event) -> Unit, onMoreReactionsClick: (TimelineItem.Event) -> Unit,
onReadReceiptClick: (TimelineItem.Event) -> Unit, onReadReceiptClick: (TimelineItem.Event) -> Unit,
onSwipeToReply: (TimelineItem.Event) -> Unit, onSwipeToReply: (TimelineItem.Event) -> Unit,
onJoinCallClick: (voiceIntent: Boolean) -> Unit, onJoinCallClick: (isAudioCall: Boolean) -> Unit,
eventSink: (TimelineEvent.TimelineItemEvent) -> Unit, eventSink: (TimelineEvent.TimelineItemEvent) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
eventContentView: @Composable (TimelineItem.Event, Modifier, (ContentAvoidingLayoutData) -> Unit) -> Unit = eventContentView: @Composable (TimelineItem.Event, Modifier, (ContentAvoidingLayoutData) -> Unit) -> Unit =

View File

@@ -66,7 +66,7 @@ internal fun MessagesViewTopBar(
dmUserIdentityState: IdentityState?, dmUserIdentityState: IdentityState?,
sharedHistoryIcon: SharedHistoryIcon, sharedHistoryIcon: SharedHistoryIcon,
onRoomDetailsClick: () -> Unit, onRoomDetailsClick: () -> Unit,
onJoinCallClick: (voiceIntent: Boolean) -> Unit, onJoinCallClick: (isAudioCall: Boolean) -> Unit,
onBackClick: () -> Unit, onBackClick: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {

View File

@@ -23,7 +23,7 @@ sealed interface RoomCallState {
data class OnGoing( data class OnGoing(
val canJoinCall: Boolean, val canJoinCall: Boolean,
val isVoiceIntent: Boolean, val isAudioCall: Boolean,
val isUserInTheCall: Boolean, val isUserInTheCall: Boolean,
val isUserLocallyInTheCall: Boolean, val isUserLocallyInTheCall: Boolean,
) : RoomCallState ) : RoomCallState

View File

@@ -17,7 +17,7 @@ open class RoomCallStateProvider : PreviewParameterProvider<RoomCallState> {
anOngoingCallState(), anOngoingCallState(),
anOngoingCallState(canJoinCall = false), anOngoingCallState(canJoinCall = false),
anOngoingCallState(canJoinCall = true, isUserInTheCall = true), anOngoingCallState(canJoinCall = true, isUserInTheCall = true),
anOngoingCallState(canJoinCall = true, isVoiceIntent = true), anOngoingCallState(canJoinCall = true, isAudioCall = true),
RoomCallState.Unavailable, RoomCallState.Unavailable,
) )
} }
@@ -26,12 +26,12 @@ fun anOngoingCallState(
canJoinCall: Boolean = true, canJoinCall: Boolean = true,
isUserInTheCall: Boolean = false, isUserInTheCall: Boolean = false,
isUserLocallyInTheCall: Boolean = isUserInTheCall, isUserLocallyInTheCall: Boolean = isUserInTheCall,
isVoiceIntent: Boolean = false, isAudioCall: Boolean = false,
) = RoomCallState.OnGoing( ) = RoomCallState.OnGoing(
canJoinCall = canJoinCall, canJoinCall = canJoinCall,
isUserInTheCall = isUserInTheCall, isUserInTheCall = isUserInTheCall,
isUserLocallyInTheCall = isUserLocallyInTheCall, isUserLocallyInTheCall = isUserLocallyInTheCall,
isVoiceIntent = isVoiceIntent isAudioCall = isAudioCall
) )
fun aStandByCallState( fun aStandByCallState(

View File

@@ -56,7 +56,8 @@ class RoomCallStatePresenter(
canJoinCall = canJoinCall, canJoinCall = canJoinCall,
isUserInTheCall = isUserInTheCall, isUserInTheCall = isUserInTheCall,
isUserLocallyInTheCall = isUserLocallyInTheCall, isUserLocallyInTheCall = isUserLocallyInTheCall,
isVoiceIntent = false // TODO // TODO resolve intent while the call is ongoing
isAudioCall = false
) )
else -> RoomCallState.StandBy(canStartCall = canJoinCall) else -> RoomCallState.StandBy(canStartCall = canJoinCall)
} }

View File

@@ -228,7 +228,7 @@ class RoomDetailsFlowNode(
val inputs = CallType.RoomCall( val inputs = CallType.RoomCall(
sessionId = room.sessionId, sessionId = room.sessionId,
roomId = room.roomId, roomId = room.roomId,
voiceIntent = callIntent == CallIntent.AUDIO isAudioCall = callIntent == CallIntent.AUDIO
) )
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton) analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(inputs) elementCallEntryPoint.startCall(inputs)
@@ -291,7 +291,7 @@ class RoomDetailsFlowNode(
CallType.RoomCall( CallType.RoomCall(
roomId = dmRoomId, roomId = dmRoomId,
sessionId = room.sessionId, sessionId = room.sessionId,
voiceIntent = callIntent == CallIntent.AUDIO isAudioCall = callIntent == CallIntent.AUDIO
) )
) )
} }

View File

@@ -36,6 +36,7 @@ import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.core.SessionId
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.notification.CallIntent
import io.element.android.libraries.matrix.api.verification.VerificationRequest import io.element.android.libraries.matrix.api.verification.VerificationRequest
import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
@@ -83,9 +84,14 @@ class UserProfileFlowNode(
callback.navigateToRoom(roomId) callback.navigateToRoom(roomId)
} }
override fun startCall(dmRoomId: RoomId) { override fun startCall(dmRoomId: RoomId, callIntent: CallIntent) {
// TODO elementCallEntryPoint.startCall(
elementCallEntryPoint.startCall(CallType.RoomCall(sessionId = sessionId, roomId = dmRoomId, voiceIntent = false)) CallType.RoomCall(
sessionId = sessionId,
roomId = dmRoomId,
isAudioCall = callIntent == CallIntent.AUDIO
)
)
} }
override fun startVerifyUserFlow(userId: UserId) { override fun startVerifyUserFlow(userId: UserId) {

View File

@@ -304,7 +304,7 @@ class DefaultPushHandler(
callType = CallType.RoomCall( callType = CallType.RoomCall(
notifiableEvent.sessionId, notifiableEvent.sessionId,
notifiableEvent.roomId, notifiableEvent.roomId,
voiceIntent = notifiableEvent.callIntent == CallIntent.AUDIO isAudioCall = notifiableEvent.callIntent == CallIntent.AUDIO
), ),
eventId = notifiableEvent.eventId, eventId = notifiableEvent.eventId,
senderId = notifiableEvent.senderId, senderId = notifiableEvent.senderId,