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 404f3f365..eb7b28fdb 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 @@ -37,6 +37,8 @@ class EventModel val icon: Drawable? init { + val name = getName() + text = when (eventLog.type) { EventLog.Type.ConferenceCreated -> AppUtils.getString( R.string.conversation_event_conference_created @@ -46,11 +48,11 @@ class EventModel ) EventLog.Type.ConferenceParticipantAdded -> AppUtils.getFormattedString( R.string.conversation_event_participant_added, - getName() + name ) EventLog.Type.ConferenceParticipantRemoved -> AppUtils.getFormattedString( R.string.conversation_event_participant_removed, - getName() + name ) EventLog.Type.ConferenceSubjectChanged -> AppUtils.getFormattedString( R.string.conversation_event_subject_changed, @@ -58,19 +60,19 @@ class EventModel ) EventLog.Type.ConferenceParticipantSetAdmin -> AppUtils.getFormattedString( R.string.conversation_event_admin_set, - getName() + name ) EventLog.Type.ConferenceParticipantUnsetAdmin -> AppUtils.getFormattedString( R.string.conversation_event_admin_unset, - getName() + name ) EventLog.Type.ConferenceParticipantDeviceAdded -> AppUtils.getFormattedString( R.string.conversation_event_device_added, - getName() + name ) EventLog.Type.ConferenceParticipantDeviceRemoved -> AppUtils.getFormattedString( R.string.conversation_event_device_removed, - getName() + name ) EventLog.Type.ConferenceEphemeralMessageEnabled -> AppUtils.getString( R.string.conversation_event_ephemeral_messages_enabled @@ -84,6 +86,23 @@ class EventModel Locale.getDefault() ) ) + EventLog.Type.ConferenceSecurityEvent -> { + when (eventLog.securityEventType) { + EventLog.SecurityEventType.SecurityLevelDowngraded -> AppUtils.getFormattedString( + R.string.conversation_event_security_event_level_downgraded, name + ) + EventLog.SecurityEventType.ParticipantMaxDeviceCountExceeded -> AppUtils.getFormattedString( + R.string.conversation_event_security_event_max_participant_count_exceeded, name + ) + EventLog.SecurityEventType.EncryptionIdentityKeyChanged -> AppUtils.getFormattedString( + R.string.conversation_event_security_event_lime_identity_key_changed, name + ) + EventLog.SecurityEventType.ManInTheMiddleDetected -> AppUtils.getFormattedString( + R.string.conversation_event_security_event_man_in_the_middle_detected, name + ) + else -> eventLog.securityEventType.name + } + } else -> { eventLog.type.name } @@ -97,7 +116,8 @@ class EventModel EventLog.Type.ConferenceEphemeralMessageLifetimeChanged -> { R.drawable.clock_countdown } - EventLog.Type.ConferenceTerminated -> { + EventLog.Type.ConferenceTerminated, + EventLog.Type.ConferenceSecurityEvent -> { R.drawable.warning_circle } EventLog.Type.ConferenceSubjectChanged -> { @@ -121,7 +141,11 @@ class EventModel @WorkerThread fun getName(): String { - val address = eventLog.participantAddress ?: eventLog.peerAddress + val address = if (eventLog.type == EventLog.Type.ConferenceSecurityEvent) { + eventLog.securityEventFaultyDeviceAddress + } else { + eventLog.participantAddress ?: eventLog.peerAddress + } val name = if (address != null) { coreContext.contactsManager.findDisplayName(address) } else { diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b0caa578b..2b9baa643 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -517,6 +517,10 @@ Messages éphémères activés Messages éphémères désactivés Messages éphémères : %s + Les clés de sécurité ont changé pour %s + Attaque de l\'homme du milieu détectée pour %s + Baisse du niveau de sécurité due à %s + Nombre maximum de terminaux dépassé pour %s Médias & documents Médias partagés diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 63e78e07b..264693b85 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -557,6 +557,10 @@ Ephemeral messages have been enabled Ephemeral messages have been disabled Ephemeral lifetime is now %s + LIME identity key changed for %s + Man-in-the-middle attack detected for %s + Security level decreased because of %s + Max participant count exceeded by %s Media & documents Shared media