diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt
index 7661883f6..a10b95924 100644
--- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt
+++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt
@@ -138,18 +138,21 @@ class NotificationsManager @MainThread constructor(private val context: Context)
)
showCallNotification(call, false)
}
- Call.State.Connected -> {
- if (call.dir == Call.Dir.Incoming) {
+ Call.State.Connected,
+ Call.State.StreamsRunning -> {
+ if (call.state == Call.State.Connected && call.dir == Call.Dir.Incoming) {
Log.i(
"$TAG Connected call was incoming (so it was answered), removing incoming call notification"
)
removeIncomingCallNotification()
}
- Log.i(
- "$TAG Showing connected call notification for [${call.remoteAddress.asStringUriOnly()}]"
- )
- showCallNotification(call, false)
+ if (call.state == Call.State.Connected || call.dir == Call.Dir.Incoming) {
+ Log.i(
+ "$TAG Showing connected call notification for [${call.remoteAddress.asStringUriOnly()}]"
+ )
+ showCallNotification(call, false)
+ }
}
Call.State.Updating -> {
val notifiable = getNotifiableForCall(call)
@@ -1006,7 +1009,7 @@ class NotificationsManager @MainThread constructor(private val context: Context)
channel
).apply {
try {
- style.setIsVideo(false)
+ style.setIsVideo(isVideo)
setStyle(style)
} catch (iae: IllegalArgumentException) {
Log.e(
diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
index 341b82fc7..31142ff90 100644
--- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
@@ -1040,22 +1040,40 @@ class CurrentCallViewModel @UiThread constructor() : GenericViewModel() {
}
if (call.dir == Call.Dir.Incoming) {
+ val isVideo = call.remoteParams?.isVideoEnabled == true && call.remoteParams?.videoDirection != MediaDirection.Inactive
if (call.core.accountList.size > 1) {
val displayName = LinphoneUtils.getDisplayName(call.toAddress)
- incomingCallTitle.postValue(
- AppUtils.getFormattedString(
- R.string.call_incoming_for_account,
- displayName
+ if (isVideo) {
+ incomingCallTitle.postValue(
+ AppUtils.getFormattedString(
+ R.string.call_video_incoming_for_account,
+ displayName
+ )
)
- )
+ } else {
+ incomingCallTitle.postValue(
+ AppUtils.getFormattedString(
+ R.string.call_audio_incoming_for_account,
+ displayName
+ )
+ )
+ }
} else {
- incomingCallTitle.postValue(AppUtils.getString(R.string.call_incoming))
+ if (isVideo) {
+ incomingCallTitle.postValue(AppUtils.getString(R.string.call_video_incoming))
+ } else {
+ incomingCallTitle.postValue(AppUtils.getString(R.string.call_audio_incoming))
+ }
}
}
if (LinphoneUtils.isCallOutgoing(call.state)) {
isVideoEnabled.postValue(call.params.isVideoEnabled)
updateVideoDirection(call.params.videoDirection)
+ } else if (LinphoneUtils.isCallIncoming(call.state)) {
+ isVideoEnabled.postValue(
+ call.remoteParams?.isVideoEnabled == true && call.remoteParams?.videoDirection != MediaDirection.Inactive
+ )
} else {
isVideoEnabled.postValue(call.currentParams.isVideoEnabled)
updateVideoDirection(call.currentParams.videoDirection)
diff --git a/app/src/main/res/layout/call_incoming_actions.xml b/app/src/main/res/layout/call_incoming_actions.xml
index 5336ec691..17b958237 100644
--- a/app/src/main/res/layout/call_incoming_actions.xml
+++ b/app/src/main/res/layout/call_incoming_actions.xml
@@ -46,10 +46,29 @@
android:paddingEnd="30dp"
android:paddingBottom="15dp"
android:src="@drawable/phone"
- android:contentDescription="@string/content_description_answer_call"
+ android:visibility="@{viewModel.isVideoEnabled ? View.GONE : View.VISIBLE}"
+ android:contentDescription="@string/content_description_answer_audio_call"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@id/answer_video_call"
+ app:layout_constraintStart_toEndOf="@id/hang_up"
+ app:tint="@color/white" />
+
+
diff --git a/app/src/main/res/layout/call_incoming_fragment.xml b/app/src/main/res/layout/call_incoming_fragment.xml
index 57f34b80a..cf70ebab7 100644
--- a/app/src/main/res/layout/call_incoming_fragment.xml
+++ b/app/src/main/res/layout/call_incoming_fragment.xml
@@ -35,7 +35,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
- android:text="@{viewModel.incomingCallTitle, default=@string/call_incoming}"
+ android:text="@{viewModel.incomingCallTitle, default=@string/call_video_incoming}"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
app:layout_constraintTop_toTopOf="parent"/>
diff --git a/app/src/main/res/layout/history_call_list_cell.xml b/app/src/main/res/layout/history_call_list_cell.xml
index d7ed626a2..7d4485062 100644
--- a/app/src/main/res/layout/history_call_list_cell.xml
+++ b/app/src/main/res/layout/history_call_list_cell.xml
@@ -35,7 +35,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginBottom="5dp"
- android:text="@{model.isOutgoing() ? @string/call_outgoing : @string/call_incoming, default=@string/call_outgoing}"
+ android:text="@{model.isOutgoing() ? @string/call_outgoing : @string/call_audio_incoming, default=@string/call_outgoing}"
android:textSize="14sp"
android:textColor="?attr/color_main2_700"
app:layout_constraintStart_toEndOf="@id/call_status"
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 8222bbf22..8d31bd894 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -570,9 +570,11 @@
Appel sortant
- Appel entrant
+ Appel entrant
+ Appel vidéo entrant
Appel terminé
- Appel entrant pour %s
+ Appel entrant pour %s
+ Appel vidéo entrant pour %s
Transférer %s à…
Appels en cours
Pas d\'autre appel
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index be3cb197e..7108c6f25 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -608,9 +608,11 @@
Outgoing call
- Incoming call
+ Incoming call
+ Incoming video call
Call ended
- Incoming call for %s
+ Incoming call for %s
+ Incoming video call for %s
Transfer %s to…
Current calls
No other call
@@ -797,7 +799,8 @@
Toggles password visibility
Expands/retracts bottom sheet
Terminates the call
- Answers the call
+ Answers the call
+ Answers the video call
Starts a call
Starts a video call
Enables/disables sending your camera feed