From d37e32834b81dca55bb0c645f95a8d59384c8dea Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 4 Mar 2026 11:10:40 +0100 Subject: [PATCH] rename voiceIntent to isAudioCall --- .../io/element/android/features/call/api/CallType.kt | 4 ++-- .../call/impl/DefaultElementCallEntryPoint.kt | 2 +- .../notifications/RingingCallNotificationCreator.kt | 2 +- .../impl/receivers/DeclineCallBroadcastReceiver.kt | 2 +- .../features/call/impl/ui/IncomingCallActivity.kt | 2 +- .../features/call/impl/utils/ActiveCallManager.kt | 2 +- .../features/messages/impl/MessagesFlowNode.kt | 6 +++--- .../android/features/messages/impl/MessagesNode.kt | 2 +- .../android/features/messages/impl/MessagesView.kt | 4 ++-- .../messages/impl/threads/ThreadedMessagesNode.kt | 4 ++-- .../features/messages/impl/timeline/TimelineView.kt | 2 +- .../impl/timeline/components/CallMenuItem.kt | 4 ++-- .../impl/timeline/components/TimelineItemRow.kt | 2 +- .../messages/impl/topbars/MessagesViewTopBar.kt | 2 +- .../android/features/roomcall/api/RoomCallState.kt | 2 +- .../features/roomcall/api/RoomCallStateProvider.kt | 6 +++--- .../features/roomcall/impl/RoomCallStatePresenter.kt | 3 ++- .../features/roomdetails/impl/RoomDetailsFlowNode.kt | 4 ++-- .../features/userprofile/impl/UserProfileFlowNode.kt | 12 +++++++++--- .../libraries/push/impl/push/DefaultPushHandler.kt | 2 +- 20 files changed, 38 insertions(+), 31 deletions(-) diff --git a/features/call/api/src/main/kotlin/io/element/android/features/call/api/CallType.kt b/features/call/api/src/main/kotlin/io/element/android/features/call/api/CallType.kt index 4f25bd654a..4b09813418 100644 --- a/features/call/api/src/main/kotlin/io/element/android/features/call/api/CallType.kt +++ b/features/call/api/src/main/kotlin/io/element/android/features/call/api/CallType.kt @@ -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)" } } } diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/DefaultElementCallEntryPoint.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/DefaultElementCallEntryPoint.kt index bd78f7cc6a..6006e2aff4 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/DefaultElementCallEntryPoint.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/DefaultElementCallEntryPoint.kt @@ -58,7 +58,7 @@ class DefaultElementCallEntryPoint( expirationTimestamp = expirationTimestamp, notificationChannelId = notificationChannelId, textContent = textContent, - audioOnly = callType.voiceIntent + audioOnly = callType.isAudioCall ) activeCallManager.registerIncomingCall(notificationData = incomingCallNotificationData) } diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt index 15af1a2c5e..88ec94be10 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt @@ -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, diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/receivers/DeclineCallBroadcastReceiver.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/receivers/DeclineCallBroadcastReceiver.kt index 54fb41d864..179e6c2b22 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/receivers/DeclineCallBroadcastReceiver.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/receivers/DeclineCallBroadcastReceiver.kt @@ -45,7 +45,7 @@ class DeclineCallBroadcastReceiver : BroadcastReceiver() { callType = CallType.RoomCall( sessionId = notificationData.sessionId, roomId = notificationData.roomId, - voiceIntent = notificationData.audioOnly + isAudioCall = notificationData.audioOnly ) ) } diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt index d6c85c66c5..73233fe453 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/IncomingCallActivity.kt @@ -116,7 +116,7 @@ class IncomingCallActivity : AppCompatActivity() { CallType.RoomCall( notificationData.sessionId, notificationData.roomId, - voiceIntent = notificationData.audioOnly + isAudioCall = notificationData.audioOnly ) ) } diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt index 5899214773..f0c8bcaad4 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt @@ -147,7 +147,7 @@ class DefaultActiveCallManager( sessionId = notificationData.sessionId, roomId = notificationData.roomId, // TODO - voiceIntent = notificationData.audioOnly, + isAudioCall = notificationData.audioOnly, ), callState = CallState.Ringing(notificationData), ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt index 4ba68c81f7..1d832935ea 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt @@ -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) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt index 83dc7aebe4..f8529bf005 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt @@ -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() diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt index 082e31b51b..0caebea8d5 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt @@ -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, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/ThreadedMessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/ThreadedMessagesNode.kt index 9ef97e6ffa..6ab9bbc506 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/ThreadedMessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/ThreadedMessagesNode.kt @@ -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, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt index 08d29e2ba6..08a7191f3f 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt @@ -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, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/CallMenuItem.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/CallMenuItem.kt index 989cbff1e6..bb3882898d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/CallMenuItem.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/CallMenuItem.kt @@ -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() diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt index f55c1303eb..469afe494e 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt @@ -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 = diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/topbars/MessagesViewTopBar.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/topbars/MessagesViewTopBar.kt index a7faa0f20f..24cd71ae84 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/topbars/MessagesViewTopBar.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/topbars/MessagesViewTopBar.kt @@ -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, ) { diff --git a/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallState.kt b/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallState.kt index a6650c0c32..10dc601702 100644 --- a/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallState.kt +++ b/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallState.kt @@ -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 diff --git a/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallStateProvider.kt b/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallStateProvider.kt index d0a759f600..b2a8b036cc 100644 --- a/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallStateProvider.kt +++ b/features/roomcall/api/src/main/kotlin/io/element/android/features/roomcall/api/RoomCallStateProvider.kt @@ -17,7 +17,7 @@ open class RoomCallStateProvider : PreviewParameterProvider { 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( diff --git a/features/roomcall/impl/src/main/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenter.kt b/features/roomcall/impl/src/main/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenter.kt index c431570be8..6a3af45f08 100644 --- a/features/roomcall/impl/src/main/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenter.kt +++ b/features/roomcall/impl/src/main/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenter.kt @@ -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) } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index 047733687f..e1024c611f 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -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 ) ) } diff --git a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt index b981b68eb8..aaafbe04be 100644 --- a/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt +++ b/features/userprofile/impl/src/main/kotlin/io/element/android/features/userprofile/impl/UserProfileFlowNode.kt @@ -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) { diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt index 8fea261d8b..a8c4c93016 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt @@ -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,