diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.kt b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
index db5f6368a..d65ca14ab 100644
--- a/app/src/main/java/org/linphone/contacts/ContactsManager.kt
+++ b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
@@ -172,7 +172,9 @@ class ContactsManager @UiThread constructor(context: Context) {
@WorkerThread
fun findDisplayName(address: Address): String {
- return findContactByAddress(address)?.name ?: LinphoneUtils.getDisplayName(address)
+ return getContactAvatarModelForAddress(address).friend.name ?: LinphoneUtils.getDisplayName(
+ address
+ )
}
@WorkerThread
diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/EventModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/EventModel.kt
index 72be4b6bb..6bb545c08 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/EventModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/EventModel.kt
@@ -20,8 +20,64 @@
package org.linphone.ui.main.chat.model
import androidx.annotation.WorkerThread
+import org.linphone.LinphoneApplication.Companion.coreContext
+import org.linphone.R
import org.linphone.core.EventLog
+import org.linphone.utils.AppUtils
-class EventModel @WorkerThread constructor(eventLog: EventLog) {
- val text = eventLog.type.name // TODO FIXME: use proper translated string instead
+class EventModel @WorkerThread constructor(private val eventLog: EventLog) {
+ val text: String
+
+ init {
+ text = when (eventLog.type) {
+ EventLog.Type.ConferenceCreated -> AppUtils.getString(
+ R.string.conversation_event_conference_created
+ )
+ EventLog.Type.ConferenceTerminated -> AppUtils.getString(
+ R.string.conversation_event_conference_destroyed
+ )
+ EventLog.Type.ConferenceParticipantAdded -> AppUtils.getFormattedString(
+ R.string.conversation_event_participant_added,
+ getName()
+ )
+ EventLog.Type.ConferenceParticipantRemoved -> AppUtils.getFormattedString(
+ R.string.conversation_event_participant_removed,
+ getName()
+ )
+ EventLog.Type.ConferenceSubjectChanged -> AppUtils.getFormattedString(
+ R.string.conversation_event_subject_changed,
+ getName()
+ )
+ EventLog.Type.ConferenceParticipantSetAdmin -> AppUtils.getFormattedString(
+ R.string.conversation_event_admin_set,
+ getName()
+ )
+ EventLog.Type.ConferenceParticipantUnsetAdmin -> AppUtils.getFormattedString(
+ R.string.conversation_event_admin_unset,
+ getName()
+ )
+ EventLog.Type.ConferenceParticipantDeviceAdded -> AppUtils.getFormattedString(
+ R.string.conversation_event_device_added,
+ getName()
+ )
+ EventLog.Type.ConferenceParticipantDeviceRemoved -> AppUtils.getFormattedString(
+ R.string.conversation_event_device_removed,
+ getName()
+ )
+ else -> {
+ eventLog.type.name
+ }
+ }
+ }
+
+ @WorkerThread
+ fun getName(): String {
+ val address = eventLog.participantAddress ?: eventLog.peerAddress
+ val name = if (address != null) {
+ coreContext.contactsManager.findDisplayName(address)
+ } else {
+ ">"
+ }
+ return name
+ }
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d6fb00d56..e1fc7896e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -369,6 +369,16 @@
Give admin rights
Remove admin rights
+ You have joined the group
+ You have left the group
+ %s has joined
+ %s has left
+ new device for %s
+ device for %s removed
+ new subject: %s
+ %s is admin
+ %s is no longer admin
+
Read %s
Received %s
Sent %s