From ef9339e912ddbb3151115fc3c4d9174744eda0ae Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 6 Jun 2024 10:45:12 +0200 Subject: [PATCH] Renamed & moved around some strings --- .../java/org/linphone/core/CoreContext.kt | 6 +- .../fragment/QrCodeScannerFragment.kt | 2 +- .../java/org/linphone/ui/call/CallActivity.kt | 4 +- .../ui/call/fragment/ActiveCallFragment.kt | 2 +- .../ui/call/fragment/ConversationFragment.kt | 2 +- .../ui/call/viewmodel/CurrentCallViewModel.kt | 1 + .../ui/file_viewer/MediaViewerActivity.kt | 4 +- .../ui/file_viewer/viewmodel/FileViewModel.kt | 8 +- .../java/org/linphone/ui/main/MainActivity.kt | 4 +- .../ConversationDocumentsListFragment.kt | 2 +- .../chat/fragment/ConversationFragment.kt | 4 +- .../chat/fragment/ConversationInfoFragment.kt | 20 +- .../fragment/ConversationMediaListFragment.kt | 2 +- .../fragment/ConversationsListFragment.kt | 8 +- .../ui/main/chat/model/MessageModel.kt | 2 +- .../viewmodel/ConversationInfoViewModel.kt | 18 +- .../chat/viewmodel/ConversationViewModel.kt | 4 +- .../viewmodel/ConversationsListViewModel.kt | 2 +- .../SendMessageInConversationViewModel.kt | 6 +- .../main/contacts/fragment/ContactFragment.kt | 4 +- .../contacts/viewmodel/ContactViewModel.kt | 1 + .../main/history/fragment/HistoryFragment.kt | 4 +- .../history/fragment/HistoryListFragment.kt | 4 +- .../history/viewmodel/HistoryViewModel.kt | 1 + .../main/meetings/fragment/MeetingFragment.kt | 2 +- .../fragment/MeetingWaitingRoomFragment.kt | 2 +- .../fragment/RecordingMediaPlayerFragment.kt | 4 +- .../fragment/RecordingsListFragment.kt | 4 +- .../RecordingMediaPlayerViewModel.kt | 4 +- .../fragment/AccountProfileFragment.kt | 2 +- .../java/org/linphone/utils/LinphoneUtils.kt | 12 +- app/src/main/res/values-fr/strings.xml | 177 +++++++++++++----- app/src/main/res/values/strings.xml | 99 +++++----- 33 files changed, 260 insertions(+), 161 deletions(-) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index cdd14c0ee..f535bc946 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -155,7 +155,7 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C showGreenToastEvent.postValue( Event( Pair( - org.linphone.R.string.toast_remote_provisioning_config_applied, + org.linphone.R.string.remote_provisioning_config_applied_toast, org.linphone.R.drawable.smiley ) ) @@ -164,7 +164,7 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C showRedToastEvent.postValue( Event( Pair( - org.linphone.R.string.toast_remote_provisioning_config_failed, + org.linphone.R.string.remote_provisioning_config_failed_toast, org.linphone.R.drawable.warning_circle ) ) @@ -237,7 +237,7 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C if (state == Call.State.Connected) { val icon = org.linphone.R.drawable.phone_transfer showGreenToastEvent.postValue( - Event(Pair(org.linphone.R.string.toast_call_transfer_successful, icon)) + Event(Pair(org.linphone.R.string.call_transfer_successful_toast, icon)) ) } } diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt index 0ce163dcf..c8ef57958 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt @@ -86,7 +86,7 @@ class QrCodeScannerFragment : GenericFragment() { it.consume { isValid -> if (!isValid) { (requireActivity() as GenericActivity).showRedToast( - getString(R.string.toast_assistant_qr_code_invalid), + getString(R.string.assistant_qr_code_invalid_toast), R.drawable.warning_circle ) } else { diff --git a/app/src/main/java/org/linphone/ui/call/CallActivity.kt b/app/src/main/java/org/linphone/ui/call/CallActivity.kt index d651e26a7..174fe4168 100644 --- a/app/src/main/java/org/linphone/ui/call/CallActivity.kt +++ b/app/src/main/java/org/linphone/ui/call/CallActivity.kt @@ -205,7 +205,7 @@ class CallActivity : GenericActivity() { callViewModel.transferInProgressEvent.observe(this) { it.consume { showGreenToast( - getString(R.string.toast_call_transfer_in_progress), + getString(R.string.call_transfer_in_progress_toast), R.drawable.phone_transfer ) } @@ -214,7 +214,7 @@ class CallActivity : GenericActivity() { callViewModel.transferFailedEvent.observe(this) { it.consume { showRedToast( - getString(R.string.toast_call_transfer_failed), + getString(R.string.call_transfer_failed_toast), R.drawable.warning_circle ) } diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt index 13653c198..16e017ef7 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt @@ -244,7 +244,7 @@ class ActiveCallFragment : GenericCallFragment() { if (verified) { (requireActivity() as GenericActivity).showBlueToast( - getString(R.string.toast_call_can_be_trusted), + getString(R.string.call_can_be_trusted_toast), R.drawable.trusted, doNotTint = true ) diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt index 2fb4981d6..4794c9556 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/ConversationFragment.kt @@ -265,7 +265,7 @@ class ConversationFragment : GenericCallFragment() { (view.parent as? ViewGroup)?.doOnPreDraw { Log.e("$TAG Failed to find conversation, going back") findNavController().popBackStack() - val message = getString(R.string.toast_cant_find_conversation_to_display) + val message = getString(R.string.conversation_to_display_no_found_toast) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle 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 075421538..7ec09311f 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 @@ -833,6 +833,7 @@ class CurrentCallViewModel @UiThread constructor() : GenericViewModel() { Log.e( "$TAG Account is in secure mode, can't chat with SIP address of different domain [${remote.asStringUriOnly()}]" ) + // TODO: show error return@postOnCoreThread } diff --git a/app/src/main/java/org/linphone/ui/file_viewer/MediaViewerActivity.kt b/app/src/main/java/org/linphone/ui/file_viewer/MediaViewerActivity.kt index a57c8db0e..f0f5c6e91 100644 --- a/app/src/main/java/org/linphone/ui/file_viewer/MediaViewerActivity.kt +++ b/app/src/main/java/org/linphone/ui/file_viewer/MediaViewerActivity.kt @@ -189,7 +189,7 @@ class MediaViewerActivity : GenericActivity() { "$TAG File [$filePath] has been successfully exported to MediaStore" ) val message = AppUtils.getString( - R.string.toast_file_successfully_exported_to_media_store + R.string.file_successfully_exported_to_media_store_toast ) showGreenToast( message, @@ -200,7 +200,7 @@ class MediaViewerActivity : GenericActivity() { "$TAG Failed to export file [$filePath] to MediaStore!" ) val message = AppUtils.getString( - R.string.toast_export_file_to_media_store_error + R.string.export_file_to_media_store_error_toast ) showRedToast( message, diff --git a/app/src/main/java/org/linphone/ui/file_viewer/viewmodel/FileViewModel.kt b/app/src/main/java/org/linphone/ui/file_viewer/viewmodel/FileViewModel.kt index dceb90ba0..27ae7b1e5 100644 --- a/app/src/main/java/org/linphone/ui/file_viewer/viewmodel/FileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/file_viewer/viewmodel/FileViewModel.kt @@ -235,7 +235,7 @@ class FileViewModel @UiThread constructor() : GenericViewModel() { showGreenToastEvent.postValue( Event( Pair( - R.string.toast_file_successfully_exported_to_documents, + R.string.file_successfully_exported_to_documents_toast, R.drawable.check ) ) @@ -245,7 +245,7 @@ class FileViewModel @UiThread constructor() : GenericViewModel() { showRedToastEvent.postValue( Event( Pair( - R.string.toast_export_file_to_documents_error, + R.string.export_file_to_documents_error_toast, R.drawable.warning_circle ) ) @@ -268,7 +268,7 @@ class FileViewModel @UiThread constructor() : GenericViewModel() { showGreenToastEvent.postValue( Event( Pair( - R.string.toast_file_successfully_exported_to_documents, + R.string.file_successfully_exported_to_documents_toast, R.drawable.check ) ) @@ -278,7 +278,7 @@ class FileViewModel @UiThread constructor() : GenericViewModel() { showRedToastEvent.postValue( Event( Pair( - R.string.toast_export_file_to_documents_error, + R.string.export_file_to_documents_error_toast, R.drawable.warning_circle ) ) diff --git a/app/src/main/java/org/linphone/ui/main/MainActivity.kt b/app/src/main/java/org/linphone/ui/main/MainActivity.kt index b224db19b..25bc107e6 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -179,7 +179,7 @@ class MainActivity : GenericActivity() { // First remove any already existing connection error toast removePersistentRedToast(tag) - val message = getString(R.string.toast_default_account_connection_state_error) + val message = getString(R.string.default_account_connection_state_error_toast) showPersistentRedToast(message, R.drawable.warning_circle, tag) } else { removePersistentRedToast(tag) @@ -189,7 +189,7 @@ class MainActivity : GenericActivity() { viewModel.showNewAccountToastEvent.observe(this) { it.consume { - val message = getString(R.string.toast_new_account_configured) + val message = getString(R.string.new_account_configured_toast) showGreenToast(message, R.drawable.user_circle) } } diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDocumentsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDocumentsListFragment.kt index 516ea89c1..c90468a7f 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDocumentsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDocumentsListFragment.kt @@ -164,7 +164,7 @@ class ConversationDocumentsListFragment : SlidingPaneChildFragment() { } catch (anfe: ActivityNotFoundException) { Log.e("$TAG Can't open file [$path] in third party app: $anfe") val message = getString( - R.string.toast_no_app_registered_to_handle_content_type_error + R.string.conversation_no_app_registered_to_handle_content_type_error_toast ) val icon = R.drawable.file (requireActivity() as GenericActivity).showRedToast(message, icon) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index 8f275709f..73e1e61ea 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -422,7 +422,7 @@ class ConversationFragment : SlidingPaneChildFragment() { (view.parent as? ViewGroup)?.doOnPreDraw { Log.e("$TAG Failed to find conversation, going back") goBack() - val message = getString(R.string.toast_cant_find_conversation_to_display) + val message = getString(R.string.conversation_to_display_no_found_toast) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle @@ -1329,7 +1329,7 @@ class ConversationFragment : SlidingPaneChildFragment() { } catch (anfe: ActivityNotFoundException) { Log.e("$TAG Can't open file [$path] in third party app: $anfe") val message = getString( - R.string.toast_no_app_registered_to_handle_content_type_error + R.string.conversation_no_app_registered_to_handle_content_type_error_toast ) val icon = R.drawable.file (requireActivity() as MainActivity).showRedToast(message, icon) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationInfoFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationInfoFragment.kt index 398ae2d9d..f85dd1c19 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationInfoFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationInfoFragment.kt @@ -118,7 +118,7 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { (view.parent as? ViewGroup)?.doOnPreDraw { Log.e("$TAG Failed to find conversation, going back") goBack() - val message = getString(R.string.toast_cant_find_conversation_to_display) + val message = getString(R.string.conversation_to_display_no_found_toast) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle @@ -138,7 +138,7 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { Log.i("$TAG Group has been left, leaving conversation info...") sharedViewModel.forceRefreshConversationInfo.value = Event(true) goBack() - val message = getString(R.string.toast_group_conversation_left) + val message = getString(R.string.conversation_group_left_toast) (requireActivity() as GenericActivity).showGreenToast( message, R.drawable.chat_teardrop_text @@ -258,7 +258,9 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { sharedViewModel.showContactEvent.value = Event(refKey) } else { Log.e("$TAG Can't go to contact page, friend ref key is null or empty!") - val message = getString(R.string.toast_cant_find_contact_to_display) + val message = getString( + R.string.conversation_info_cant_find_contact_to_display_toast + ) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle @@ -275,7 +277,9 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { sharedViewModel.showNewContactEvent.value = Event(true) } else { Log.e("$TAG Can't add empty/null SIP URI to contacts!") - val message = getString(R.string.toast_no_address_to_add_to_contact) + val message = getString( + R.string.conversation_info_no_address_to_add_to_contact_toast + ) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle @@ -347,7 +351,9 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { sharedViewModel.showContactEvent.value = Event(friendRefKey) } else { Log.e("$TAG Can't go to contact page, friend ref key is null or empty!") - val message = getString(R.string.toast_cant_find_contact_to_display) + val message = getString( + R.string.conversation_info_cant_find_contact_to_display_toast + ) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle @@ -365,7 +371,9 @@ class ConversationInfoFragment : SlidingPaneChildFragment() { sharedViewModel.showNewContactEvent.value = Event(true) } else { Log.e("$TAG Can't add empty/null SIP URI to contacts!") - val message = getString(R.string.toast_no_address_to_add_to_contact) + val message = getString( + R.string.conversation_info_no_address_to_add_to_contact_toast + ) (requireActivity() as GenericActivity).showRedToast( message, R.drawable.warning_circle diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt index c87e79cd3..17b47c47e 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt @@ -193,7 +193,7 @@ class ConversationMediaListFragment : SlidingPaneChildFragment() { } catch (anfe: ActivityNotFoundException) { Log.e("$TAG Can't open file [$path] in third party app: $anfe") val message = getString( - R.string.toast_no_app_registered_to_handle_content_type_error + R.string.conversation_no_app_registered_to_handle_content_type_error_toast ) val icon = R.drawable.file (requireActivity() as GenericActivity).showRedToast(message, icon) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt index 5b85e010c..586391133 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt @@ -257,7 +257,9 @@ class ConversationsListFragment : AbstractMainFragment() { sharedViewModel.messageToForwardEvent.observe(viewLifecycleOwner) { event -> if (!event.consumed()) { // Do not consume it yet - val message = getString(R.string.toast_message_waiting_to_be_forwarded) + val message = getString( + R.string.conversations_message_waiting_to_be_forwarded_toast + ) val icon = R.drawable.forward (requireActivity() as GenericActivity).showGreenToast(message, icon) Log.i("$TAG Found a message waiting to be forwarded") @@ -268,7 +270,7 @@ class ConversationsListFragment : AbstractMainFragment() { val count = filesToShare.size if (count > 0) { val message = AppUtils.getStringWithPlural( - R.plurals.toast_files_waiting_to_be_shared, + R.plurals.conversations_files_waiting_to_be_shared_toast, count, filesToShare.size.toString() ) @@ -280,7 +282,7 @@ class ConversationsListFragment : AbstractMainFragment() { sharedViewModel.textToShareFromIntent.observe(viewLifecycleOwner) { textToShare -> if (textToShare.isNotEmpty()) { - val message = getString(R.string.toast_text_waiting_to_be_shared) + val message = getString(R.string.conversations_text_waiting_to_be_shared_toast) val icon = R.drawable.file_text (requireActivity() as GenericActivity).showGreenToast(message, icon) Log.i("$TAG Found text waiting to be shared") diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt index 87f0cb43f..501cd60e4 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt @@ -743,7 +743,7 @@ class MessageModel @WorkerThread constructor( if (lowMediaVolume) { Log.w("$TAG Media volume is low, notifying user as they may not hear voice message") onRedToastToShow?.invoke( - Pair(R.string.toast_low_media_volume, R.drawable.speaker_slash) + Pair(R.string.media_playback_low_volume_warning_toast, R.drawable.speaker_slash) ) } diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt index f022840ef..909c39d7c 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt @@ -97,7 +97,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi override fun onParticipantAdded(chatRoom: ChatRoom, eventLog: EventLog) { Log.i("$TAG A participant has been added to the group [${chatRoom.subject}]") val message = AppUtils.getFormattedString( - R.string.toast_participant_added_to_conversation, + R.string.conversation_info_participant_added_to_conversation_toast, getParticipant(eventLog) ) showFormattedGreenToastEvent.postValue(Event(Pair(message, R.drawable.user_circle))) @@ -110,7 +110,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi override fun onParticipantRemoved(chatRoom: ChatRoom, eventLog: EventLog) { Log.i("$TAG A participant has been removed from the group [${chatRoom.subject}]") val message = AppUtils.getFormattedString( - R.string.toast_participant_removed_from_conversation, + R.string.conversation_info_participant_removed_from_conversation_toast, getParticipant(eventLog) ) showFormattedGreenToastEvent.postValue(Event(Pair(message, R.drawable.user_circle))) @@ -126,12 +126,12 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi ) val message = if (eventLog.type == EventLog.Type.ConferenceParticipantSetAdmin) { AppUtils.getFormattedString( - R.string.toast_participant_has_been_granted_admin_rights, + R.string.conversation_info_participant_has_been_granted_admin_rights_toast, getParticipant(eventLog) ) } else { AppUtils.getFormattedString( - R.string.toast_participant_no_longer_has_admin_rights, + R.string.conversation_info_participant_no_longer_has_admin_rights_toast, getParticipant(eventLog) ) } @@ -146,7 +146,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi "$TAG Conversation [${LinphoneUtils.getChatRoomId(chatRoom)}] has a new subject [${chatRoom.subject}]" ) showGreenToastEvent.postValue( - Event(Pair(R.string.toast_conversation_subject_changed, R.drawable.check)) + Event(Pair(R.string.conversation_subject_changed_toast, R.drawable.check)) ) subject.postValue(chatRoom.subject) @@ -161,7 +161,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi showGreenToastEvent.postValue( Event( Pair( - R.string.toast_conversation_ephemeral_messages_enabled, + R.string.conversation_ephemeral_messages_enabled_toast, R.drawable.clock_countdown ) ) @@ -171,7 +171,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi showGreenToastEvent.postValue( Event( Pair( - R.string.toast_conversation_ephemeral_messages_disabled, + R.string.conversation_ephemeral_messages_disabled_toast, R.drawable.clock_countdown ) ) @@ -181,7 +181,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi showGreenToastEvent.postValue( Event( Pair( - R.string.toast_conversation_ephemeral_messages_lifetime_changed, + R.string.conversation_ephemeral_messages_lifetime_changed_toast, R.drawable.clock_countdown ) ) @@ -466,7 +466,7 @@ class ConversationInfoViewModel @UiThread constructor() : AbstractConversationVi showRedToastEvent.postValue( Event( Pair( - R.string.toast_failed_to_add_participant_to_group_conversation, + R.string.conversation_failed_to_add_participant_to_group_conversation_toast, R.drawable.warning_circle ) ) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt index 679d48631..c629187f8 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt @@ -865,7 +865,7 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo showGreenToastEvent.postValue( Event( Pair( - R.string.toast_file_successfully_exported_to_documents, + R.string.file_successfully_exported_to_documents_toast, R.drawable.check ) ) @@ -875,7 +875,7 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo showRedToastEvent.postValue( Event( Pair( - R.string.toast_export_file_to_documents_error, + R.string.export_file_to_documents_error_toast, R.drawable.warning_circle ) ) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt index 8a6efd362..68b42fcb0 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt @@ -64,7 +64,7 @@ class ConversationsListViewModel @UiThread constructor() : AbstractMainViewModel showGreenToastEvent.postValue( Event( - Pair(R.string.toast_conversation_deleted, R.drawable.chat_teardrop_text) + Pair(R.string.conversation_deleted_toast, R.drawable.chat_teardrop_text) ) ) } diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt index 1fa05662c..e03d0f4be 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt @@ -546,7 +546,7 @@ class SendMessageInConversationViewModel @UiThread constructor() : GenericViewMo showRedToastEvent.postValue( Event( Pair( - R.string.toast_voice_recording_max_duration_reached, + R.string.conversation_voice_recording_max_duration_reached_toast, R.drawable.warning_circle ) ) @@ -616,7 +616,9 @@ class SendMessageInConversationViewModel @UiThread constructor() : GenericViewMo if (lowMediaVolume) { Log.w("$TAG Media volume is low, notifying user as they may not hear voice message") showRedToastEvent.postValue( - Event(Pair(R.string.toast_low_media_volume, R.drawable.speaker_slash)) + Event( + Pair(R.string.media_playback_low_volume_warning_toast, R.drawable.speaker_slash) + ) ) } diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt index 2b0a21e5f..efcfb2b6b 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt @@ -251,9 +251,9 @@ class ContactFragment : SlidingPaneChildFragment() { clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) val message = if (isSip) { - getString(R.string.toast_sip_address_copied_to_clipboard) + getString(R.string.sip_address_copied_to_clipboard_toast) } else { - getString(R.string.toast_phone_number_copied_to_clipboard) + getString(R.string.contact_details_phone_number_copied_to_clipboard_toast) } (requireActivity() as GenericActivity).showGreenToast( message, diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt index ee9b6b30d..5c200f243 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt @@ -571,6 +571,7 @@ class ContactViewModel @UiThread constructor() : GenericViewModel() { Log.e( "$TAG Account is in secure mode, can't chat with SIP address of different domain [${remote.asStringUriOnly()}]" ) + // TODO: show error return } diff --git a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryFragment.kt b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryFragment.kt index 618ada772..7c364d3d9 100644 --- a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryFragment.kt @@ -143,7 +143,7 @@ class HistoryFragment : SlidingPaneChildFragment() { sharedViewModel.forceRefreshCallLogsListEvent.value = Event(true) (requireActivity() as GenericActivity).showGreenToast( - getString(R.string.toast_call_history_deleted), + getString(R.string.call_history_deleted_toast), R.drawable.check ) goBack() @@ -180,7 +180,7 @@ class HistoryFragment : SlidingPaneChildFragment() { clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) (requireActivity() as GenericActivity).showGreenToast( - getString(R.string.toast_sip_address_copied_to_clipboard), + getString(R.string.sip_address_copied_to_clipboard_toast), R.drawable.check ) } diff --git a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt index 5e54d7a2e..0568b2de7 100644 --- a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt @@ -199,7 +199,7 @@ class HistoryListFragment : AbstractMainFragment() { it.consume { Log.w("$TAG All call logs have been deleted") (requireActivity() as GenericActivity).showGreenToast( - getString(R.string.toast_call_history_deleted), + getString(R.string.call_history_deleted_toast), R.drawable.check ) } @@ -273,7 +273,7 @@ class HistoryListFragment : AbstractMainFragment() { clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) (requireActivity() as GenericActivity).showGreenToast( - getString(R.string.toast_sip_address_copied_to_clipboard), + getString(R.string.sip_address_copied_to_clipboard_toast), R.drawable.check ) } diff --git a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt index b8513e500..d8ab43027 100644 --- a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt @@ -213,6 +213,7 @@ class HistoryViewModel @UiThread constructor() : GenericViewModel() { Log.e( "$TAG Account is in secure mode, can't chat with SIP address of different domain [${remote.asStringUriOnly()}]" ) + // TODO: show error return@postOnCoreThread } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt index 3f01f7c8d..0e176bea0 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt @@ -248,7 +248,7 @@ class MeetingFragment : SlidingPaneChildFragment() { clipboard.setPrimaryClip(ClipData.newPlainText(label, meetingSipUri)) (requireActivity() as GenericActivity).showGreenToast( - getString(R.string.toast_meeting_address_copied_to_clipboard), + getString(R.string.meeting_address_copied_to_clipboard_toast), R.drawable.check ) } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingWaitingRoomFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingWaitingRoomFragment.kt index b195c494b..90d11cb4f 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingWaitingRoomFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingWaitingRoomFragment.kt @@ -134,7 +134,7 @@ class MeetingWaitingRoomFragment : GenericMainFragment() { it.consume { Log.e("$TAG Error joining the conference!") val message = getString( - R.string.toast_failed_to_join_conference + R.string.meeting_waiting_room_failed_to_join_toast ) val icon = R.drawable.warning_circle (requireActivity() as GenericActivity).showRedToast(message, icon) diff --git a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingMediaPlayerFragment.kt b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingMediaPlayerFragment.kt index 5ecefd920..9d78cc210 100644 --- a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingMediaPlayerFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingMediaPlayerFragment.kt @@ -151,7 +151,7 @@ class RecordingMediaPlayerFragment : GenericMainFragment() { "$TAG File [$filePath] has been successfully exported to MediaStore" ) val message = AppUtils.getString( - R.string.toast_file_successfully_exported_to_media_store + R.string.file_successfully_exported_to_media_store_toast ) (requireActivity() as GenericActivity).showGreenToast( message, @@ -162,7 +162,7 @@ class RecordingMediaPlayerFragment : GenericMainFragment() { "$TAG Failed to export file [$filePath] to MediaStore!" ) val message = AppUtils.getString( - R.string.toast_export_file_to_media_store_error + R.string.export_file_to_media_store_error_toast ) (requireActivity() as GenericActivity).showRedToast( message, diff --git a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt index 436e60652..701178e6d 100644 --- a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt @@ -181,7 +181,7 @@ class RecordingsListFragment : GenericMainFragment() { "$TAG File [$filePath] has been successfully exported to MediaStore" ) val message = AppUtils.getString( - R.string.toast_file_successfully_exported_to_media_store + R.string.file_successfully_exported_to_media_store_toast ) (requireActivity() as GenericActivity).showGreenToast( message, @@ -192,7 +192,7 @@ class RecordingsListFragment : GenericMainFragment() { "$TAG Failed to export file [$filePath] to MediaStore!" ) val message = AppUtils.getString( - R.string.toast_export_file_to_media_store_error + R.string.export_file_to_media_store_error_toast ) (requireActivity() as GenericActivity).showRedToast( message, diff --git a/app/src/main/java/org/linphone/ui/main/recordings/viewmodel/RecordingMediaPlayerViewModel.kt b/app/src/main/java/org/linphone/ui/main/recordings/viewmodel/RecordingMediaPlayerViewModel.kt index ffffa1fa2..00c160ae5 100644 --- a/app/src/main/java/org/linphone/ui/main/recordings/viewmodel/RecordingMediaPlayerViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/recordings/viewmodel/RecordingMediaPlayerViewModel.kt @@ -121,7 +121,9 @@ class RecordingMediaPlayerViewModel @UiThread constructor() : GenericViewModel() if (lowMediaVolume) { Log.w("$TAG Media volume is low, notifying user as they may not hear voice message") showRedToastEvent.postValue( - Event(Pair(R.string.toast_low_media_volume, R.drawable.speaker_slash)) + Event( + Pair(R.string.media_playback_low_volume_warning_toast, R.drawable.speaker_slash) + ) ) } diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt index 0ed249060..4ab1492da 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt @@ -230,7 +230,7 @@ class AccountProfileFragment : GenericMainFragment() { private fun copyAddressToClipboard(value: String) { val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager clipboard.setPrimaryClip(ClipData.newPlainText("SIP address", value)) - val message = getString(R.string.toast_sip_address_copied_to_clipboard) + val message = getString(R.string.sip_address_copied_to_clipboard_toast) (requireActivity() as GenericActivity).showGreenToast( message, R.drawable.check diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt index 288420a19..9e1fd4786 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt @@ -129,22 +129,22 @@ class LinphoneUtils { ) return when (errorInfo.reason) { Reason.Busy -> { - AppUtils.getString(R.string.toast_call_error_user_busy) + AppUtils.getString(R.string.call_error_user_busy_toast) } Reason.IOError -> { - AppUtils.getString(R.string.toast_call_error_io_error) + AppUtils.getString(R.string.call_error_io_error_toast) } Reason.NotAcceptable -> { - AppUtils.getString(R.string.toast_call_error_incompatible_media_params) + AppUtils.getString(R.string.call_error_incompatible_media_params_toast) } Reason.NotFound -> { - AppUtils.getString(R.string.toast_call_error_user_not_found) + AppUtils.getString(R.string.call_error_user_not_found_toast) } Reason.ServerTimeout -> { - AppUtils.getString(R.string.toast_call_error_server_timeout) + AppUtils.getString(R.string.call_error_server_timeout_toast) } Reason.TemporarilyUnavailable -> { - AppUtils.getString(R.string.toast_call_error_temporarily_unavailable) + AppUtils.getString(R.string.call_error_temporarily_unavailable_toast) } else -> { "${errorInfo.protocolCode} / ${errorInfo.phrase}" diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 55b5389f7..a514efe3a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -68,53 +68,17 @@ Open source Une application open source et un service gratuit depuis 2001. - Ce QR code est invalide ! - L\'adresse SIP a été copiée - L\'adresse de la réunion a été copiée - Le numéro de téléphone a été copié - L\'historique des appels a été supprimé - Cet appel est complètement sécurisé - Connexion réussie - Erreur de connexion ! - Le media a été exporté - Le media n\'a pas pû être exporté ! - Le document a été exporté - Le document n\'a pas pû être exporté ! - %s a rejoint la conversation - %s a quitté la conversation - %s is now admin - %s is no longer admin - Le nom de la conversation a changé - Les messages éphémères ont été activés - Les messages éphémères ont été désactivés - La durée des messages éphémères a changé - Contact non trouvé - Aucune adresse à ajouter au contact - Conversation non trouvée - Durée maximale atteinte - Un ou plusieurs participants n\'ont pû être ajoutés - Conversation supprimée - Vous avez quitté la conversation - Le volume media est bas, vous pourriez ne rien entendre ! - Aucune application trouvée pour lire ce fichier - - %s fichier en attente de partage - %s fichiers en attente de partage - - Texte en attente de partage - Message en attente de transfert - Appel en cours de transfert - L\'appel a été transferré - Le transfert a échoué ! - Echec lors de la connexion à la conférence! - Configuration appliquée avec succès - Erreur durant la récupération ou l\'application de la configuration - L\'utilisateur est occupé - L\'utilisateur n\'a pu être trouvé - Paramètres media incompatibles - Service indisponible ou erreur réseau - Délai d\'attente du serveur dépassé - Temporairement indisponible + + L\'adresse SIP a été copiée + Connexion réussie + Erreur de connexion ! + Le media a été exporté + Le media n\'a pas pû être exporté ! + Le document a été exporté + Le document n\'a pas pû être exporté ! + Le volume media est bas, vous pourriez ne rien entendre ! + Configuration appliquée avec succès + Erreur durant la récupération ou l\'application de la configuration Conditions de service & politique de confidentialité @@ -125,6 +89,7 @@ Êtes-vous sûr de vouloir utiliser ce numéro de téléphone ? Connexion Scanner un QR code + Ce QR code est invalide ! J\'ai un compte SIP tiers Single sign on L\'adresse SIP est invalide ! @@ -387,6 +352,7 @@ Supprimer Salut, rejoins moi sur &appName; ! Tu peux le télécharger gratuitement sur %s Le contact a été supprimé + Le numéro de téléphone a été copié Augmenter le niveau de confiance Vous êtes sur le point de passer un appel vers l\'appareil $2%s\ de $1%s.\Voulez-vous démarrer l\'appel ? @@ -412,6 +378,13 @@ Aucune conversation pour le moment… En cours de suppression… %s : + Message en attente de transfert + + %s fichier en attente de partage + %s fichiers en attente de partage + + Texte en attente de partage + Marquer comme lu Mettre en sourdine Enlever la sourdine @@ -454,7 +427,6 @@ Les messages de cette conversation sont chiffrés de bout en bout. Seul votre correspondant peut les déchiffrer. La confidentialité de vos échanges garantie Grâce à la technologie de chiffrement de bout en bout de &appName;, la confidentialité de vos messages, appels et réunions avec vos correspondants est garantie. Personne ne pourra déchiffrer vos conversations, pas même &appName;. - https://linphone.org/security Cette conversation n\'est pas chiffrée ! Cette conversation a été désactivée pour garantir votre sécurité. Chiffrement obligatoire @@ -473,6 +445,16 @@ Échec de la création de la conversation ! Pour des raisons de sécurité, la création d\'une conversation avec un participant d\'un domaine tiers est désactivé. Le média selectionné est introuvable ! + Le nom de la conversation a changé + Les messages éphémères ont été activés + Les messages éphémères ont été désactivés + La durée des messages éphémères a changé + Durée maximale atteinte + Un ou plusieurs participants n\'ont pû être ajoutés + Conversation supprimée + Vous avez quitté la conversation + Aucune application trouvée pour lire ce fichier + Conversation non trouvée Membres du groupe Ajouter des membres @@ -486,6 +468,12 @@ Voulez-vous tout supprimer ? Tout les messages de cette conversation seront supprimés. Historique supprimé + %s a rejoint la conversation + %s a quitté la conversation + %s is now admin + %s is no longer admin + Contact non trouvé + Aucune adresse à ajouter au contact Vous avez rejoint le groupe Vous avez quitté le groupe @@ -549,11 +537,13 @@ Au moins un champ obligatoire n\'a pas été rempli Échec de l\'envoi des invitations à la réunion ! Échec de l\'envoi des invitations à la réunion pour certains des participants ! + L\'adresse de la réunion a été copiée Rejoindre Annuler Connexion à la réunion Vous allez rejoindre la réunion dans quelques instants… + Echec lors de la connexion à la conférence! Appel sortant @@ -617,7 +607,19 @@ Algorithme d\'accord de clé : %s Algorithme de hachage : %s Algorithme d\'authentification : %s - Algorithm SAS: %s + Algorithme SAS : %s + + L\'historique des appels a été supprimé + Cet appel est complètement sécurisé + Appel en cours de transfert + L\'appel a été transferré + Le transfert a échoué ! + L\'utilisateur est occupé + L\'utilisateur n\'a pu être trouvé + Paramètres media incompatibles + Service indisponible ou erreur réseau + Délai d\'attente du serveur dépassé + Temporairement indisponible Partager le lien @@ -704,4 +706,81 @@ Contact is not online Open drawer menu Go back + Dismiss notification + Save changes + Show menu + Confirm new participants list + Click to have more information + Click to remove participant + Toggles password visibility + Expands/retracts bottom sheet + Terminates the call + Answers the call + Starts a call + Starts a video call + Enables/disables sending your camera feed + Mute/un-mute your microphone + Changes output audio device + Changes camera (front/back) being used + Call is in paused state + Shows call statistics + You are recording this call + Removes the last digit or character + Merges calls into a conference + Opens filter area + Closes filter area + Clear current filter + Creates the group conversation + Starts the group call + Shows the numpad + Click to show all available options + Participant is muted + Participant is speaking + Add participants + Plays/pauses the audio playback + Plays/pauses the video playback + Share file + Save file + Image attached to message + Video attached to message + File attached to message + This message is a reply to a previous message + This message was forwarded from another conversation + Click to have delivery status + Plays/pauses the voice message playback + Close attachments + Conversation has been silenced + Ephemeral messages are enabled + Scrolls to first unread message or to the bottom + Closes participants list + Cancels voice message recording + Stops voice message recording + Starts recording a voice message + Sends message in conversation + Message will no longer be a reply to a previous message + Opens emoji picker + Opens media picker + Opens camera to take a picture + Click to edit the subject of this conversation + Silences on/off this conversation + Conversation is being removed + This conversation isn\'t secured + Start a new conversation + Scroll to today + Schedule a meeting + Schedule the meeting + Edit the meeting + Share meeting address + Participants list + Device is trusted + Edit contact + Remove field + Show contacts list filters + Create a contact + Join the conference + Delete this CardDAV configuration + Save CardDAV configuration + Delete this LDAP configuration + Save LDAP configuration + Plays the call recording \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 653f503de..80e3beec9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,6 +37,7 @@ https://subscribe.linphone.org/ https://weblate.linphone.org/ https://wiki.linphone.org/xwiki/wiki/public/view/Linphone/Third%20party%20components%20/#Hlinphone-android + https://linphone.org/security Dummy subject @@ -103,53 +104,17 @@ Open source A free and open source application since 2001. - Invalid QR code! - SIP address copied into clipboard - Meeting address copied into clipboard - Number copied into clipboard - History has been deleted - This call can be trusted - Connection successful - Connection error! - File has been exported to native gallery - Error trying to export file to native gallery - File has been exported to documents - Error trying to export file to documents - %s joined the conversation - %s left the conversation - %s is now admin - %s is no longer admin - Conversation subject has changed - Ephemeral messages have been enabled - Ephemeral messages have been disabled - Ephemeral messages lifetime changed - Contact was not found - No address to add to contact - Conversation was not found - Max duration reached - Failed to add participant(s) to conversation - Conversation was successfully deleted - You have left the group - Media volume is low, you may not hear anything! - No app found to open this kind of file - - %s file waiting to be shared - %s files waiting to be shared - - Text is waiting to be shared - A message is waiting to be forwarded - Call is being transferred - Call has been successfully transferred - Call transfer failed! - Failed to join conference! - Configuration successfully applied - Error while trying to download and apply remote configuration - User is busy - User has not been found - Incompatible media parameters - Service unavailable or network error - Server timeout - Temporarily unavailable + + SIP address copied into clipboard + Connection successful + Connection error! + File has been exported to native gallery + Error trying to export file to native gallery + File has been exported to documents + Error trying to export file to documents + Media volume is low, you may not hear anything! + Configuration successfully applied + Error while trying to download and apply remote configuration General terms & privacy policy @@ -160,6 +125,7 @@ Are you sure you want to use this phone number? Login Scan QR code + Invalid QR code! Use a third party SIP account Single sign on SIP address is invalid! @@ -423,6 +389,7 @@ Delete Hello, join me on &appName;! You can download it for free at %s Contact has been removed + Number copied into clipboard Increase trust level You\'re about to make a call to $1%s\'s device $2%s.\nDo you want to make the call? @@ -448,6 +415,13 @@ No conversation for the moment… Removal in progress… %s: + A message is waiting to be forwarded + + %s file waiting to be shared + %s files waiting to be shared + + Text is waiting to be shared + Mark as read Mute Un-mute @@ -490,7 +464,6 @@ Messages in this conversation are e2e encrypted. Only your correspondent can decrypt them. Guaranteed confidentiality Thanks to end-to-end encryption technology in &appName;, messages, calls and meetings confidentiality are guaranteed. No-one can decrypt exchanged data, not even ourselves. - https://linphone.org/security This conversation is not encrypted! For your safety, this conversation was disabled. Mandatory encryption @@ -509,6 +482,16 @@ Failed to create conversation! Can\'t create conversation with a participant not on the same domain due to security restrictions! Selected media wasn\'t found + Conversation subject has changed + Ephemeral messages have been enabled + Ephemeral messages have been disabled + Ephemeral messages lifetime changed + Max duration reached + Failed to add participant(s) to conversation + Conversation was successfully deleted + You have left the group + No app found to open this kind of file + Conversation was not found Group members Add participants @@ -522,6 +505,12 @@ Do you really want to delete all messages? All messages will be removed from the history History has been successfully deleted + %s joined the conversation + %s left the conversation + %s is now admin + %s is no longer admin + Contact was not found + No address to add to contact You have joined the group You have left the group @@ -585,11 +574,13 @@ A least a mandatory field wasn\'t filled Failed to send all invites to meeting! Failed to send invites to some participants of the meeting! + Meeting address copied into clipboard Join Cancel Connection in progress You\'ll be joining in a short moment + Failed to join meeting! Outgoing call @@ -655,6 +646,18 @@ Authentication algorithm: %s SAS algorithm: %s + History has been deleted + This call can be trusted + Call is being transferred + Call has been successfully transferred + Call transfer failed! + User is busy + User has not been found + Incompatible media parameters + Service unavailable or network error + Server timeout + Temporarily unavailable + Share invitation Waiting for other participants…