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(
val sessionId: SessionId,
val roomId: RoomId,
val voiceIntent: Boolean
val isAudioCall: Boolean
) : CallType {
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,
notificationChannelId = notificationChannelId,
textContent = textContent,
audioOnly = callType.voiceIntent
audioOnly = callType.isAudioCall
)
activeCallManager.registerIncomingCall(notificationData = incomingCallNotificationData)
}

View File

@@ -89,7 +89,7 @@ class RingingCallNotificationCreator(
.setImportant(true)
.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(
sessionId = sessionId,
roomId = roomId,

View File

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

View File

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

View File

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

View File

@@ -272,11 +272,11 @@ class MessagesFlowNode(
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(
sessionId = sessionId,
roomId = roomId,
voiceIntent = voiceIntent
isAudioCall = isAudioCall
)
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(callType)
@@ -493,7 +493,7 @@ class MessagesFlowNode(
val callType = CallType.RoomCall(
sessionId = sessionId,
roomId = roomId,
voiceIntent = voiceOnly
isAudioCall = voiceOnly
)
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(callType)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -228,7 +228,7 @@ class RoomDetailsFlowNode(
val inputs = CallType.RoomCall(
sessionId = room.sessionId,
roomId = room.roomId,
voiceIntent = callIntent == CallIntent.AUDIO
isAudioCall = callIntent == CallIntent.AUDIO
)
analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton)
elementCallEntryPoint.startCall(inputs)
@@ -291,7 +291,7 @@ class RoomDetailsFlowNode(
CallType.RoomCall(
roomId = dmRoomId,
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.SessionId
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.mediaviewer.api.MediaViewerEntryPoint
import kotlinx.parcelize.Parcelize
@@ -83,9 +84,14 @@ class UserProfileFlowNode(
callback.navigateToRoom(roomId)
}
override fun startCall(dmRoomId: RoomId) {
// TODO
elementCallEntryPoint.startCall(CallType.RoomCall(sessionId = sessionId, roomId = dmRoomId, voiceIntent = false))
override fun startCall(dmRoomId: RoomId, callIntent: CallIntent) {
elementCallEntryPoint.startCall(
CallType.RoomCall(
sessionId = sessionId,
roomId = dmRoomId,
isAudioCall = callIntent == CallIntent.AUDIO
)
)
}
override fun startVerifyUserFlow(userId: UserId) {

View File

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