Display account display name for which incoming call is being received if more than one account

This commit is contained in:
Sylvain Berfini 2023-09-21 13:35:34 +02:00
parent a68977d9dd
commit 4d2d01195a
5 changed files with 24 additions and 2 deletions

View file

@ -154,6 +154,7 @@ class ContactViewModel @UiThread constructor() : ViewModel() {
}
}
@UiThread
override fun onCleared() {
super.onCleared()

View file

@ -28,6 +28,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import java.util.Locale
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.core.AudioDevice
import org.linphone.core.Call
import org.linphone.core.CallListenerStub
@ -36,6 +37,7 @@ import org.linphone.core.MediaEncryption
import org.linphone.core.tools.Log
import org.linphone.ui.main.contacts.model.ContactAvatarModel
import org.linphone.ui.voip.model.AudioDeviceModel
import org.linphone.utils.AppUtils
import org.linphone.utils.AudioRouteUtils
import org.linphone.utils.Event
import org.linphone.utils.LinphoneUtils
@ -71,6 +73,10 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
val halfOpenedFolded = MutableLiveData<Boolean>()
val incomingCallTitle: MutableLiveData<String> by lazy {
MutableLiveData<String>()
}
// To synchronize chronometers in UI
val callDuration = MutableLiveData<Int>()
@ -365,6 +371,20 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
private fun configureCall(call: Call) {
call.addListener(callListener)
if (call.dir == Call.Dir.Incoming) {
if (call.core.accountList.size > 1) {
val displayName = LinphoneUtils.getDisplayName(call.toAddress)
incomingCallTitle.postValue(
AppUtils.getFormattedString(
R.string.call_incoming_for_account,
displayName
)
)
} else {
incomingCallTitle.postValue(AppUtils.getString(R.string.call_incoming))
}
}
if (LinphoneUtils.isCallOutgoing(call.state)) {
isVideoEnabled.postValue(call.params.isVideoEnabled)
} else {

View file

@ -156,7 +156,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@{viewModel.isOutgoing ? @string/call_outgoing : @string/call_incoming, default=@string/call_outgoing}"
android:text="@{viewModel.isOutgoing ? @string/call_outgoing : viewModel.incomingCallTitle, default=@string/call_outgoing}"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
app:layout_constraintTop_toTopOf="@id/hinge_top"
app:layout_constraintBottom_toTopOf="@id/background"/>

View file

@ -34,7 +34,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/call_incoming"
android:text="@{viewModel.incomingCallTitle, default=@string/call_incoming}"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/background"/>

View file

@ -268,6 +268,7 @@
<string name="call_outgoing">Outgoing call</string>
<string name="call_incoming">Incoming call</string>
<string name="call_incoming_for_account">Incoming call for %s</string>
<string name="operation_in_progress_overlay">Operation in progress, please wait</string>