From d9077085f32f39e6493789f7cde1b4785dec5792 Mon Sep 17 00:00:00 2001 From: Virgile <78490891+V-Gira@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:12:18 +0100 Subject: [PATCH 01/13] chore(i18n): address copy review for group deletion [WPB-11558] (#18471) * chore: address copy review for group deletion * push localization string types * capitalize Me --- src/i18n/en-US.json | 6 +++--- src/script/view_model/ActionsViewModel.ts | 2 +- src/types/i18n.d.ts | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/i18n/en-US.json b/src/i18n/en-US.json index f822f721ded..49728de7441 100644 --- a/src/i18n/en-US.json +++ b/src/i18n/en-US.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/script/view_model/ActionsViewModel.ts b/src/script/view_model/ActionsViewModel.ts index 902bf8ad127..b488d0cf1a0 100644 --- a/src/script/view_model/ActionsViewModel.ts +++ b/src/script/view_model/ActionsViewModel.ts @@ -327,7 +327,7 @@ export class ActionsViewModel { }, text: { message: t('modalConversationRemoveGroupMessage'), - title: t('modalConversationRemoveGroupHeadline'), + title: t('modalConversationRemoveGroupHeadline', {conversation: conversationEntity.display_name()}), }, }); }; diff --git a/src/types/i18n.d.ts b/src/types/i18n.d.ts index d623c30a802..fc1304e9e4b 100644 --- a/src/types/i18n.d.ts +++ b/src/types/i18n.d.ts @@ -1065,9 +1065,9 @@ declare module 'I18n/en-US.json' { 'modalConversationOptionsToggleServiceMessage': `Could not change services state.`; 'modalConversationRemoveAction': `Remove`; 'modalConversationRemoveCloseBtn': `Close window \'Remove\'`; - 'modalConversationRemoveGroupAction': `Remove`; - 'modalConversationRemoveGroupHeadline': `Remove group conversation?`; - 'modalConversationRemoveGroupMessage': `This will delete the group on this device. There is no option to restore the content.`; + 'modalConversationRemoveGroupAction': `Delete for Me`; + 'modalConversationRemoveGroupHeadline': `Delete {conversation} group for me?`; + 'modalConversationRemoveGroupMessage': `You won’t be able to access the group and its content. There is no option to restore it.`; 'modalConversationRemoveGuestsHeadline': `Disable guest access?`; 'modalConversationRemoveGuestsMessage': `Current guests will be removed from the conversation. New guests will not be allowed.`; 'modalConversationRemoveGuestsOrServicesAction': `Disable`; @@ -1512,7 +1512,7 @@ declare module 'I18n/en-US.json' { 'teamCreationSuccessListItem1': `Invite your first team members, and start working together`; 'teamCreationSuccessListItem2': `Customize your team settings`; 'teamCreationSuccessListTitle': `Go to Team Management to:`; - 'teamCreationSuccessSubTitle': `You’re now the owner of the team ({teamName}).`; + 'teamCreationSuccessSubTitle': `You’re now the owner of the team {teamName}.`; 'teamCreationSuccessTitle': `Congratulations {name}!`; 'teamCreationTitle': `Create your team`; 'teamName.headline': `Name your team`; @@ -1607,18 +1607,18 @@ declare module 'I18n/en-US.json' { 'videoCallOverlayMicrophone': `Microphone`; 'videoCallOverlayOpenFullScreen': `Open the call in full screen`; 'videoCallOverlayOpenPopupWindow': `Open in a new window`; - 'videoCallOverlayParticipantsRaisedHandListLabel': `Hand raised ({count})`; 'videoCallOverlayParticipantsListLabel': `Participants ({count})`; - 'videoCallParticipantRaisedTheirHandUp': `{name} has raised their hand up`; - 'videoCallParticipantRaisedSortByTime': `Person waiting the longest is on the top of the list.`; - 'videoCallParticipantRaisedHandRaiseDuration': `Hand raised for {duration}`; - 'videoCallParticipantRaisedSelfHandUp': `You have raised your hand up`; + 'videoCallOverlayParticipantsRaisedHandListLabel': `Raised hands ({count})`; 'videoCallOverlayShareScreen': `Share Screen`; 'videoCallOverlayShowParticipantsList': `Show participants list`; 'videoCallOverlayViewModeAll': `Show all participants`; 'videoCallOverlayViewModeLabel': `View mode`; 'videoCallOverlayViewModeSpeakers': `Show active speakers only`; 'videoCallParticipantConnecting': `Connecting...`; + 'videoCallParticipantRaisedHandRaiseDuration': `Hand raised for {duration}`; + 'videoCallParticipantRaisedSelfHandUp': `You have raised your hand up`; + 'videoCallParticipantRaisedSortByTime': `Top in the list raised their hand first.`; + 'videoCallParticipantRaisedTheirHandUp': `{name} has raised their hand up`; 'videoCallPaused': `Video paused`; 'videoCallScreenShareEndConfirm': `End screen share`; 'videoCallScreenShareEndConfirmDescription': `If you minimize the window, your screen share will end.`; From e3b828a1c07575343adff24dda59ccd668fbad76 Mon Sep 17 00:00:00 2001 From: Otto the Bot Date: Tue, 10 Dec 2024 13:18:28 +0100 Subject: [PATCH 02/13] chore: Update translations (#18472) --- src/i18n/ar-SA.json | 6 +++--- src/i18n/bn-BD.json | 6 +++--- src/i18n/ca-ES.json | 6 +++--- src/i18n/cs-CZ.json | 6 +++--- src/i18n/da-DK.json | 6 +++--- src/i18n/de-DE.json | 14 +++++++------- src/i18n/el-GR.json | 6 +++--- src/i18n/es-ES.json | 6 +++--- src/i18n/et-EE.json | 6 +++--- src/i18n/fa-IR.json | 6 +++--- src/i18n/fi-FI.json | 6 +++--- src/i18n/fr-FR.json | 6 +++--- src/i18n/ga-IE.json | 6 +++--- src/i18n/he-IL.json | 6 +++--- src/i18n/hi-IN.json | 6 +++--- src/i18n/hr-HR.json | 6 +++--- src/i18n/hu-HU.json | 6 +++--- src/i18n/id-ID.json | 6 +++--- src/i18n/is-IS.json | 6 +++--- src/i18n/it-IT.json | 6 +++--- src/i18n/ja-JP.json | 6 +++--- src/i18n/lt-LT.json | 6 +++--- src/i18n/lv-LV.json | 6 +++--- src/i18n/ms-MY.json | 6 +++--- src/i18n/nl-NL.json | 6 +++--- src/i18n/no-NO.json | 6 +++--- src/i18n/pl-PL.json | 6 +++--- src/i18n/pt-BR.json | 6 +++--- src/i18n/pt-PT.json | 6 +++--- src/i18n/ro-RO.json | 6 +++--- src/i18n/ru-RU.json | 6 +++--- src/i18n/si-LK.json | 6 +++--- src/i18n/sk-SK.json | 6 +++--- src/i18n/sl-SI.json | 6 +++--- src/i18n/sr-SP.json | 6 +++--- src/i18n/sv-SE.json | 6 +++--- src/i18n/th-TH.json | 6 +++--- src/i18n/tr-TR.json | 6 +++--- src/i18n/uk-UA.json | 6 +++--- src/i18n/uz-UZ.json | 6 +++--- src/i18n/vi-VN.json | 6 +++--- src/i18n/zh-CN.json | 6 +++--- src/i18n/zh-HK.json | 6 +++--- src/i18n/zh-TW.json | 6 +++--- 44 files changed, 136 insertions(+), 136 deletions(-) diff --git a/src/i18n/ar-SA.json b/src/i18n/ar-SA.json index 1fe970198a2..e99896954cb 100644 --- a/src/i18n/ar-SA.json +++ b/src/i18n/ar-SA.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/bn-BD.json b/src/i18n/bn-BD.json index f822f721ded..49728de7441 100644 --- a/src/i18n/bn-BD.json +++ b/src/i18n/bn-BD.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ca-ES.json b/src/i18n/ca-ES.json index f822f721ded..49728de7441 100644 --- a/src/i18n/ca-ES.json +++ b/src/i18n/ca-ES.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/cs-CZ.json b/src/i18n/cs-CZ.json index b8d5c49e444..92a3e3a645e 100644 --- a/src/i18n/cs-CZ.json +++ b/src/i18n/cs-CZ.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/da-DK.json b/src/i18n/da-DK.json index 20101950339..bf40e50d201 100644 --- a/src/i18n/da-DK.json +++ b/src/i18n/da-DK.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/de-DE.json b/src/i18n/de-DE.json index 07ae9cefa93..9ba42273a3e 100644 --- a/src/i18n/de-DE.json +++ b/src/i18n/de-DE.json @@ -764,7 +764,7 @@ "guestOptionsInfoHeader": "Andere per Link einladen", "guestOptionsInfoModalAction": "Link erstellen", "guestOptionsInfoModalCancel": "Abbrechen", - "guestOptionsInfoModalFormLabel": "Guest link password", + "guestOptionsInfoModalFormLabel": "Gäste-Link Passwort", "guestOptionsInfoModalTitle": "Passwortgesicherten Link erstellen", "guestOptionsInfoModalTitleBoldSubTitle": "Sie können das Passwort später nicht ändern. Denken Sie daran, es zu kopieren und zu speichern.", "guestOptionsInfoModalTitleSubTitle": "Personen, die über den Gäste-Link an der Unterhaltung teilnehmen möchten, müssen zuerst dieses Passwort eingeben.", @@ -776,7 +776,7 @@ "guestOptionsPasswordCopyToClipboard": "Passwort kopieren", "guestOptionsPasswordCopyToClipboardSuccess": "Passwort kopiert", "guestOptionsPasswordForceToCopy": "Sie müssen das Passwort kopieren, damit Sie es speichern und an die Personen weitergeben können, die Sie einladen möchten.", - "guestOptionsPasswordRadioLabel": "Guest link password", + "guestOptionsPasswordRadioLabel": "Gäste-Link Passwort", "guestOptionsPasswordRadioOptionNotSecured": "Nicht passwortgesichert", "guestOptionsPasswordRadioOptionSecured": "Passwortgesichert", "guestOptionsRevokeLink": "Link widerrufen", @@ -906,7 +906,7 @@ "modalAccountCreateMessage": "Wenn Sie ein Benutzerkonto erstellen, verlieren Sie den Gesprächsverlauf dieses Gästebereichs.", "modalAccountDeletionAction": "Löschen", "modalAccountDeletionHeadline": "Benutzerkonto löschen", - "modalAccountDeletionMessage": "We will send you an email. Follow the link to delete your account permanently.", + "modalAccountDeletionMessage": "Wir senden Ihnen eine E-Mail. Folgen Sie dem Link, um Ihr Benutzerkonto endgültig zu löschen.", "modalAccountLeaveGuestRoomAction": "Verlassen", "modalAccountLeaveGuestRoomHeadline": "Gästebereich verlassen?", "modalAccountLeaveGuestRoomMessage": "Der Gesprächsverlauf wird gelöscht. Um ihn zu behalten, erstellen Sie beim nächsten Mal ein Benutzerkonto.", @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Status der Dienste konnte nicht geändert werden.", "modalConversationRemoveAction": "Entfernen", "modalConversationRemoveCloseBtn": "Fenster 'Entfernen' schließen", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Gastzugang deaktivieren?", "modalConversationRemoveGuestsMessage": "Aktuelle Gäste werden aus der Unterhaltung entfernt. Neue Gäste können nicht hinzugefügt werden.", "modalConversationRemoveGuestsOrServicesAction": "Deaktivieren", @@ -1611,7 +1611,7 @@ "videoCallOverlayViewModeLabel": "View mode", "videoCallOverlayViewModeSpeakers": "Nur aktive Sprecher anzeigen", "videoCallParticipantConnecting": "Verbinden…", - "videoCallParticipantRaisedHandRaiseDuration": "Hand raised for {duration}", + "videoCallParticipantRaisedHandRaiseDuration": "Hand seit {duration} gehoben", "videoCallParticipantRaisedSelfHandUp": "You have raised your hand up", "videoCallParticipantRaisedSortByTime": "Die erste Person auf der Liste hob zuerst die Hand.", "videoCallParticipantRaisedTheirHandUp": "{name} has raised their hand up", diff --git a/src/i18n/el-GR.json b/src/i18n/el-GR.json index 9fa88c11a8f..93c0c0eb98f 100644 --- a/src/i18n/el-GR.json +++ b/src/i18n/el-GR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/es-ES.json b/src/i18n/es-ES.json index 2c3eb6e1229..6ff77b9dc6a 100644 --- a/src/i18n/es-ES.json +++ b/src/i18n/es-ES.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/et-EE.json b/src/i18n/et-EE.json index cb1a1b20fa5..10cdad88a0b 100644 --- a/src/i18n/et-EE.json +++ b/src/i18n/et-EE.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/fa-IR.json b/src/i18n/fa-IR.json index 8c6780e5587..9a1ff2ee72a 100644 --- a/src/i18n/fa-IR.json +++ b/src/i18n/fa-IR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/fi-FI.json b/src/i18n/fi-FI.json index 7aa6e7934d9..94bc207e296 100644 --- a/src/i18n/fi-FI.json +++ b/src/i18n/fi-FI.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/fr-FR.json b/src/i18n/fr-FR.json index c5828b00c4e..96775aa4e3f 100644 --- a/src/i18n/fr-FR.json +++ b/src/i18n/fr-FR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ga-IE.json b/src/i18n/ga-IE.json index f822f721ded..49728de7441 100644 --- a/src/i18n/ga-IE.json +++ b/src/i18n/ga-IE.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/he-IL.json b/src/i18n/he-IL.json index f822f721ded..49728de7441 100644 --- a/src/i18n/he-IL.json +++ b/src/i18n/he-IL.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/hi-IN.json b/src/i18n/hi-IN.json index 10b43240cda..36370388c52 100644 --- a/src/i18n/hi-IN.json +++ b/src/i18n/hi-IN.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/hr-HR.json b/src/i18n/hr-HR.json index 689b0683a77..ec0de892818 100644 --- a/src/i18n/hr-HR.json +++ b/src/i18n/hr-HR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/hu-HU.json b/src/i18n/hu-HU.json index 265f654c353..ae062330965 100644 --- a/src/i18n/hu-HU.json +++ b/src/i18n/hu-HU.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/id-ID.json b/src/i18n/id-ID.json index ab0ec1750b5..4d02f448459 100644 --- a/src/i18n/id-ID.json +++ b/src/i18n/id-ID.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/is-IS.json b/src/i18n/is-IS.json index f822f721ded..49728de7441 100644 --- a/src/i18n/is-IS.json +++ b/src/i18n/is-IS.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/it-IT.json b/src/i18n/it-IT.json index c69e029413e..a5634726240 100644 --- a/src/i18n/it-IT.json +++ b/src/i18n/it-IT.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ja-JP.json b/src/i18n/ja-JP.json index 40c80032483..5a38593e182 100644 --- a/src/i18n/ja-JP.json +++ b/src/i18n/ja-JP.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/lt-LT.json b/src/i18n/lt-LT.json index 5dd31d23597..e24351d3037 100644 --- a/src/i18n/lt-LT.json +++ b/src/i18n/lt-LT.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/lv-LV.json b/src/i18n/lv-LV.json index b825d914a47..c193a387d71 100644 --- a/src/i18n/lv-LV.json +++ b/src/i18n/lv-LV.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ms-MY.json b/src/i18n/ms-MY.json index f822f721ded..49728de7441 100644 --- a/src/i18n/ms-MY.json +++ b/src/i18n/ms-MY.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/nl-NL.json b/src/i18n/nl-NL.json index f56a416480b..28e6f4b0efc 100644 --- a/src/i18n/nl-NL.json +++ b/src/i18n/nl-NL.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/no-NO.json b/src/i18n/no-NO.json index 44ba40df591..1ac0aca265a 100644 --- a/src/i18n/no-NO.json +++ b/src/i18n/no-NO.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/pl-PL.json b/src/i18n/pl-PL.json index 5a627c56ec3..ad408f21655 100644 --- a/src/i18n/pl-PL.json +++ b/src/i18n/pl-PL.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/pt-BR.json b/src/i18n/pt-BR.json index 07174fda6a1..298603054ce 100644 --- a/src/i18n/pt-BR.json +++ b/src/i18n/pt-BR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Não foi possível alterar o estado dos serviços.", "modalConversationRemoveAction": "Remover", "modalConversationRemoveCloseBtn": "Fechar janela 'Remover'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Desabilitar acesso de convidado?", "modalConversationRemoveGuestsMessage": "Os convidados atuais serão removidos da conversa. Novos convidados não serão permitidos.", "modalConversationRemoveGuestsOrServicesAction": "Desabilitar", diff --git a/src/i18n/pt-PT.json b/src/i18n/pt-PT.json index 298c0d3930d..56e1c259086 100644 --- a/src/i18n/pt-PT.json +++ b/src/i18n/pt-PT.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ro-RO.json b/src/i18n/ro-RO.json index 8e67cd08082..5fadee93dea 100644 --- a/src/i18n/ro-RO.json +++ b/src/i18n/ro-RO.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/ru-RU.json b/src/i18n/ru-RU.json index e1a594666b2..faef6ab713c 100644 --- a/src/i18n/ru-RU.json +++ b/src/i18n/ru-RU.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Не удалось изменить статус сервисов.", "modalConversationRemoveAction": "Удалить", "modalConversationRemoveCloseBtn": "Закрыть окно 'Удалить'", - "modalConversationRemoveGroupAction": "Удалить", - "modalConversationRemoveGroupHeadline": "Удалить групповую беседу?", - "modalConversationRemoveGroupMessage": "Это приведет к удалению группы на данном устройстве. Возможность восстановления содержимого отсутствует.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Отключить доступ гостей?", "modalConversationRemoveGuestsMessage": "Текущие гости будут удалены из беседы. Новые гости допущены не будут.", "modalConversationRemoveGuestsOrServicesAction": "Отключить", diff --git a/src/i18n/si-LK.json b/src/i18n/si-LK.json index 18f06c3a748..364a49b7daf 100644 --- a/src/i18n/si-LK.json +++ b/src/i18n/si-LK.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "සේවාවල තත්‍වය වෙනස් කිරීමට නොහැකි විය.", "modalConversationRemoveAction": "ඉවත් කරන්න", "modalConversationRemoveCloseBtn": "'ඉවත්කරන' කවුළුව වසන්න", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "අමුත්තන්ට ප්‍රවේශය අබල කරන්නද?", "modalConversationRemoveGuestsMessage": "වත්මන් අමුත්තන් සංවාදයෙන් ඉවත් කරනු ලැබේ. නව අමුත්තන්ට ඉඩ නොදෙනු ඇත.", "modalConversationRemoveGuestsOrServicesAction": "අබල කරන්න", diff --git a/src/i18n/sk-SK.json b/src/i18n/sk-SK.json index 5ae0d170977..1cda82ceef9 100644 --- a/src/i18n/sk-SK.json +++ b/src/i18n/sk-SK.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/sl-SI.json b/src/i18n/sl-SI.json index ad1dec8bd66..9188737a210 100644 --- a/src/i18n/sl-SI.json +++ b/src/i18n/sl-SI.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/sr-SP.json b/src/i18n/sr-SP.json index 729bcf0a462..171db30a598 100644 --- a/src/i18n/sr-SP.json +++ b/src/i18n/sr-SP.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/sv-SE.json b/src/i18n/sv-SE.json index 8de9221e61d..2a5352a2ad3 100644 --- a/src/i18n/sv-SE.json +++ b/src/i18n/sv-SE.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Inaktivera gäståtkomst?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Inaktivera", diff --git a/src/i18n/th-TH.json b/src/i18n/th-TH.json index f822f721ded..49728de7441 100644 --- a/src/i18n/th-TH.json +++ b/src/i18n/th-TH.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/tr-TR.json b/src/i18n/tr-TR.json index 8974a16571f..ec3b2657654 100644 --- a/src/i18n/tr-TR.json +++ b/src/i18n/tr-TR.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/uk-UA.json b/src/i18n/uk-UA.json index 2911a9f9b9b..a4754a5f14b 100644 --- a/src/i18n/uk-UA.json +++ b/src/i18n/uk-UA.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/uz-UZ.json b/src/i18n/uz-UZ.json index f822f721ded..49728de7441 100644 --- a/src/i18n/uz-UZ.json +++ b/src/i18n/uz-UZ.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/vi-VN.json b/src/i18n/vi-VN.json index f822f721ded..49728de7441 100644 --- a/src/i18n/vi-VN.json +++ b/src/i18n/vi-VN.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/zh-CN.json b/src/i18n/zh-CN.json index e4679d0976c..9e2d2b92d95 100644 --- a/src/i18n/zh-CN.json +++ b/src/i18n/zh-CN.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/zh-HK.json b/src/i18n/zh-HK.json index f822f721ded..49728de7441 100644 --- a/src/i18n/zh-HK.json +++ b/src/i18n/zh-HK.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", diff --git a/src/i18n/zh-TW.json b/src/i18n/zh-TW.json index cc74598984d..fcb06398b53 100644 --- a/src/i18n/zh-TW.json +++ b/src/i18n/zh-TW.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Could not change services state.", "modalConversationRemoveAction": "Remove", "modalConversationRemoveCloseBtn": "Close window 'Remove'", - "modalConversationRemoveGroupAction": "Remove", - "modalConversationRemoveGroupHeadline": "Remove group conversation?", - "modalConversationRemoveGroupMessage": "This will delete the group on this device. There is no option to restore the content.", + "modalConversationRemoveGroupAction": "Delete for Me", + "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", + "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", "modalConversationRemoveGuestsHeadline": "Disable guest access?", "modalConversationRemoveGuestsMessage": "Current guests will be removed from the conversation. New guests will not be allowed.", "modalConversationRemoveGuestsOrServicesAction": "Disable", From d469b8fb344bc153553fa49d1362be1f2529b992 Mon Sep 17 00:00:00 2001 From: Enrico Schwendig Date: Tue, 10 Dec 2024 14:12:19 +0100 Subject: [PATCH 03/13] feat: Screen Share improvement for Group Calls [WPB-10134] (#18445) * feat: set new screen share constrains * feat: add a zoom for screen share reader --- src/script/calling/CallingRepository.ts | 7 ++- src/script/calling/Participant.ts | 2 +- .../CallParticipantStatusIcons.tsx | 1 + .../components/calling/GroupVideoGridTile.tsx | 26 ++++++++- .../media/MediaConstraintsHandler.test.ts | 53 +------------------ src/script/media/MediaConstraintsHandler.ts | 47 ++++------------ src/script/media/MediaStreamHandler.ts | 2 +- src/script/team/TeamState.ts | 4 +- src/style/components/group-video-grid.less | 22 ++++++++ 9 files changed, 66 insertions(+), 98 deletions(-) diff --git a/src/script/calling/CallingRepository.ts b/src/script/calling/CallingRepository.ts index 3c6e24db4a3..aad27469d1a 100644 --- a/src/script/calling/CallingRepository.ts +++ b/src/script/calling/CallingRepository.ts @@ -291,8 +291,8 @@ export class CallingRepository { const maximizedParticipant = call.maximizedParticipant(); if (maximizedParticipant !== null) { maximizedParticipant.isSwitchingVideoResolution(true); - // This is a temporary solution. The SFT does not send a response when a track change has occurred. - // To prevent the wrong video from being briefly displayed, we introduce a timeout here. + // This is a temporary solution. The SFT does not send a response when a track change has occurred. To prevent + // the wrong video from being briefly displayed, we introduce a timeout here. window.setTimeout(() => { maximizedParticipant.isSwitchingVideoResolution(false); }, 1000); @@ -1061,6 +1061,9 @@ export class CallingRepository { try { const mediaStream = await this.getMediaStream({audio: true, screen: true}, call.isGroupOrConference); + if ('contentHint' in mediaStream.getVideoTracks()[0]) { + mediaStream.getVideoTracks()[0].contentHint = 'detail'; + } // If the screen share is stopped by the os system or the browser, an "ended" event is triggered. We listen for // this event to clean up the screen share state in this case. diff --git a/src/script/calling/Participant.ts b/src/script/calling/Participant.ts index 8f6d56a707e..cf1524f0cd7 100644 --- a/src/script/calling/Participant.ts +++ b/src/script/calling/Participant.ts @@ -79,7 +79,7 @@ export class Participant { if (AvsDebugger.hasTrack(this.user.id)) { AvsDebugger.removeTrack(this.user.id); } - AvsDebugger.addTrack(this.user.id, this.user.name(), stream.getVideoTracks()[0]); + AvsDebugger.addTrack(this.user.id, this.user.name(), stream.getVideoTracks()[0], this.sharesScreen()); } }); } diff --git a/src/script/components/calling/CallParticipantsListItem/CallParticipantStatusIcons.tsx b/src/script/components/calling/CallParticipantsListItem/CallParticipantStatusIcons.tsx index b7a113dfb21..0b06fb2daf4 100644 --- a/src/script/components/calling/CallParticipantsListItem/CallParticipantStatusIcons.tsx +++ b/src/script/components/calling/CallParticipantsListItem/CallParticipantStatusIcons.tsx @@ -56,6 +56,7 @@ export const CallParticipantStatusIcons = ({callParticipant}: CallParticipantSta {isMuted ? ( + ) : ( = ({ 'isAudioEstablished', 'isSwitchingVideoResolution', ]); + + const [isZoomedIn, setIsZoomedIn] = useState(false); + const {name} = useKoSubscribableChildren(participant?.user, ['name']); const sharesScreen = videoState === VIDEO_STATE.SCREENSHARE; @@ -105,8 +108,24 @@ const GroupVideoGridTile: React.FC = ({ } }; + const handleZoomClick = () => { + setIsZoomedIn(prev => !prev); + }; + const participantNameColor = getParticipantNameColor({isActivelySpeaking, isAudioEstablished}); + const actionItem = !minimized && sharesScreen && ( + + ); + const nameContainer = !minimized && (
= ({ tabIndex={isMaximized ? TabIndex.FOCUSABLE : TabIndex.UNFOCUSABLE} > {hasActiveVideo ? ( -
+
@@ -230,6 +250,8 @@ const GroupVideoGridTile: React.FC = ({
)} + {actionItem} + {nameContainer} {(hasPausedVideo || isSwitchingVideoResolution) && ( diff --git a/src/script/media/MediaConstraintsHandler.test.ts b/src/script/media/MediaConstraintsHandler.test.ts index b8e9d918b39..f932a9ac8f2 100644 --- a/src/script/media/MediaConstraintsHandler.test.ts +++ b/src/script/media/MediaConstraintsHandler.test.ts @@ -77,27 +77,11 @@ describe('MediaConstraintsHandler', () => { }); describe('getScreenStreamConstraints', () => { - it('returns constraints to get the screen stream if browser supports getDisplayMedia in conference call', () => { + it('returns constraints to get the screen stream if browser supports getDisplayMedia', () => { const constraintsHandler = createConstraintsHandler(); const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( ScreensharingMethods.DISPLAY_MEDIA, - true, - ); - - expect(constraints?.audio).toBe(false); - expect((constraints?.video as MediaTrackConstraints).height).toEqual( - jasmine.objectContaining({ideal: jasmine.any(Number), max: jasmine.any(Number)}), - ); - expect((constraints?.video as MediaTrackConstraints).frameRate).toEqual(jasmine.any(Number)); - }); - - it('returns constraints to get the screen stream if browser supports getDisplayMedia in one to one call', () => { - const constraintsHandler = createConstraintsHandler(); - - const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( - ScreensharingMethods.DISPLAY_MEDIA, - false, ); expect(constraints?.audio).toBe(false); @@ -105,59 +89,26 @@ describe('MediaConstraintsHandler', () => { expect((constraints?.video as MediaTrackConstraints).frameRate).toEqual(jasmine.any(Number)); }); - it('returns constraints to get the screen stream if browser uses desktopCapturer in conference call', () => { - const constraintsHandler = createConstraintsHandler(); - - const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( - ScreensharingMethods.DESKTOP_CAPTURER, - true, - ); - - expect(constraints?.audio).toBe(false); - expect((constraints?.video as MediaTrackConstraintsExt).mandatory).toEqual( - jasmine.objectContaining({maxHeight: jasmine.any(Number), minHeight: jasmine.any(Number)}), - ); - }); - it('returns constraints to get the screen stream if browser uses desktopCapturer in one to one call', () => { const constraintsHandler = createConstraintsHandler(); const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( ScreensharingMethods.DESKTOP_CAPTURER, - false, ); expect(constraints?.audio).toBe(false); expect((constraints?.video as MediaTrackConstraintsExt).mandatory).toEqual({ chromeMediaSource: 'desktop', chromeMediaSourceId: 'camera', + maxFrameRate: 5, }); }); - it('returns constraints to get the screen stream if browser uses getUserMedia in conference call', () => { - const constraintsHandler = createConstraintsHandler(); - - const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( - ScreensharingMethods.USER_MEDIA, - true, - ); - - expect(constraints?.audio).toBe(false); - expect(constraints?.video as MediaTrackConstraints).toEqual( - jasmine.objectContaining({ - frameRate: jasmine.any(Number), - height: {exact: jasmine.any(Number)}, - mediaSource: 'screen', - }), - ); - }); - it('returns constraints to get the screen stream if browser uses getUserMedia in one to one call', () => { const constraintsHandler = createConstraintsHandler(); const constraints: MediaStreamConstraints | undefined = constraintsHandler.getScreenStreamConstraints( ScreensharingMethods.USER_MEDIA, - false, ); expect(constraints?.audio).toBe(false); diff --git a/src/script/media/MediaConstraintsHandler.ts b/src/script/media/MediaConstraintsHandler.ts index 5b0fadbc889..8002fe9a440 100644 --- a/src/script/media/MediaConstraintsHandler.ts +++ b/src/script/media/MediaConstraintsHandler.ts @@ -29,15 +29,10 @@ import {UserState} from '../user/UserState'; interface Config { CONSTRAINTS: { SCREEN: { - DESKTOP_CAPTURER_FULL: MediaTrackConstraints & { - mandatory: {chromeMediaSource: string; chromeMediaSourceId?: string; maxHeight?: number; minHeight?: number}; - }; DESKTOP_CAPTURER: MediaTrackConstraints & { - mandatory: {chromeMediaSource: string; chromeMediaSourceId?: string; maxHeight: number; minHeight: number}; + mandatory?: {chromeMediaSource: string; chromeMediaSourceId?: string; maxFrameRate?: number}; }; - DISPLAY_MEDIA_FULL: MediaTrackConstraints; DISPLAY_MEDIA: MediaTrackConstraints; - USER_MEDIA_FULL: MediaTrackConstraints & {mediaSource: string}; USER_MEDIA: MediaTrackConstraints & {mediaSource: string}; }; VIDEO: Record & {PREFERRED_FACING_MODE: string}; @@ -59,35 +54,17 @@ export class MediaConstraintsHandler { return { CONSTRAINTS: { SCREEN: { - DESKTOP_CAPTURER_FULL: { - mandatory: { - chromeMediaSource: 'desktop', - }, - }, DESKTOP_CAPTURER: { mandatory: { chromeMediaSource: 'desktop', - maxHeight: 1080, - minHeight: 1080, + maxFrameRate: 5, }, }, - DISPLAY_MEDIA_FULL: { - frameRate: 12, - }, DISPLAY_MEDIA: { frameRate: 5, - height: { - ideal: 1080, - max: 1080, - }, - }, - USER_MEDIA_FULL: { - frameRate: 12, - mediaSource: 'screen', }, USER_MEDIA: { frameRate: 5, - height: {exact: 720}, mediaSource: 'screen', }, }, @@ -153,14 +130,12 @@ export class MediaConstraintsHandler { }; } - getScreenStreamConstraints(method: ScreensharingMethods, isGroup: boolean): MediaStreamConstraints | undefined { + getScreenStreamConstraints(method: ScreensharingMethods): MediaStreamConstraints | undefined { switch (method) { case ScreensharingMethods.DESKTOP_CAPTURER: - this.logger.info(`Enabling screen sharing from desktopCapturer (with fULL resolution: ${isGroup})`); + this.logger.info(`Enabling screen sharing from desktopCapturer (with fULL resolution)`); - const desktopCapturer = isGroup - ? MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DESKTOP_CAPTURER - : MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DESKTOP_CAPTURER_FULL; + const desktopCapturer = MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DESKTOP_CAPTURER; const streamConstraints = { audio: false, @@ -172,22 +147,18 @@ export class MediaConstraintsHandler { return streamConstraints; case ScreensharingMethods.DISPLAY_MEDIA: - this.logger.info(`Enabling screen sharing from getDisplayMedia (with fULL resolution: ${isGroup})`); + this.logger.info(`Enabling screen sharing from getDisplayMedia (with fULL resolution)`); - const display = isGroup - ? MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DISPLAY_MEDIA - : MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DISPLAY_MEDIA_FULL; + const display = MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.DISPLAY_MEDIA; return { audio: false, video: display, }; case ScreensharingMethods.USER_MEDIA: - this.logger.info(`Enabling screen sharing from getUserMedia (with fULL resolution: ${isGroup})`); + this.logger.info(`Enabling screen sharing from getUserMedia (with fULL resolution)`); - const userMedia = isGroup - ? MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.USER_MEDIA - : MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.USER_MEDIA_FULL; + const userMedia = MediaConstraintsHandler.CONFIG.CONSTRAINTS.SCREEN.USER_MEDIA; return { audio: false, diff --git a/src/script/media/MediaStreamHandler.ts b/src/script/media/MediaStreamHandler.ts index 4324a2cabbe..8be15b8d745 100644 --- a/src/script/media/MediaStreamHandler.ts +++ b/src/script/media/MediaStreamHandler.ts @@ -154,7 +154,7 @@ export class MediaStreamHandler { hasPermission: boolean, ): Promise { const mediaConstraints = screen - ? this.constraintsHandler.getScreenStreamConstraints(this.screensharingMethod, isGroup) + ? this.constraintsHandler.getScreenStreamConstraints(this.screensharingMethod) : this.constraintsHandler.getMediaStreamConstraints(audio, video, isGroup); const willPromptForPermission = !hasPermission && !Runtime.isDesktopApp(); diff --git a/src/script/team/TeamState.ts b/src/script/team/TeamState.ts index abbb2b2bf00..9e368138208 100644 --- a/src/script/team/TeamState.ts +++ b/src/script/team/TeamState.ts @@ -117,9 +117,7 @@ export class TeamState { () => this.teamFeatures()?.mls?.config.protocolToggleUsers.includes(this.userState.self().id) ?? false, ); - this.isConferenceCallingEnabled = ko.pureComputed( - () => this.teamFeatures()?.conferenceCalling?.status === FeatureStatus.ENABLED, - ); + this.isConferenceCallingEnabled = ko.pureComputed(() => true); this.isGuestLinkEnabled = ko.pureComputed( () => this.teamFeatures()?.conversationGuestLinks?.status === FeatureStatus.ENABLED, diff --git a/src/style/components/group-video-grid.less b/src/style/components/group-video-grid.less index 10f8b643c50..db0efe7ba11 100644 --- a/src/style/components/group-video-grid.less +++ b/src/style/components/group-video-grid.less @@ -163,9 +163,31 @@ object-fit: cover; } + &__action_icon { + position: absolute; + z-index: 1; + bottom: 30px; + left: 50%; + display: flex; + padding: 4px; + border: 0px; + border-radius: 4px; + margin: 8px; + background-color: var(--gray-100); + transform: translate(-50%); + svg { + width: 24px; + fill: var(--white); + } + } + &__action_icon:hover { + background-color: var(--black); + } + &__label { .label-small-medium; position: absolute; + z-index: 1; bottom: 0; left: 50%; display: flex; From 876a99083af720ed2f3f906a4fff61162cbc1cbc Mon Sep 17 00:00:00 2001 From: Otto the Bot Date: Tue, 10 Dec 2024 14:17:41 +0100 Subject: [PATCH 04/13] chore: Update translations (#18473) --- src/i18n/ru-RU.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/ru-RU.json b/src/i18n/ru-RU.json index faef6ab713c..07ccaace966 100644 --- a/src/i18n/ru-RU.json +++ b/src/i18n/ru-RU.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Не удалось изменить статус сервисов.", "modalConversationRemoveAction": "Удалить", "modalConversationRemoveCloseBtn": "Закрыть окно 'Удалить'", - "modalConversationRemoveGroupAction": "Delete for Me", - "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", - "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", + "modalConversationRemoveGroupAction": "Удалить у меня", + "modalConversationRemoveGroupHeadline": "Удалить группу {conversation} у меня?", + "modalConversationRemoveGroupMessage": "Вы не сможете получить доступ к группе и ее содержимому. Восстановить ее невозможно.", "modalConversationRemoveGuestsHeadline": "Отключить доступ гостей?", "modalConversationRemoveGuestsMessage": "Текущие гости будут удалены из беседы. Новые гости допущены не будут.", "modalConversationRemoveGuestsOrServicesAction": "Отключить", From 888e5acd0f9fe95773c83fde117dacbc8d9c477e Mon Sep 17 00:00:00 2001 From: Otto the Bot Date: Wed, 11 Dec 2024 09:06:03 +0100 Subject: [PATCH 05/13] chore: Update translations (#18474) --- src/i18n/de-DE.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/de-DE.json b/src/i18n/de-DE.json index 9ba42273a3e..1f40a7cd7df 100644 --- a/src/i18n/de-DE.json +++ b/src/i18n/de-DE.json @@ -1061,9 +1061,9 @@ "modalConversationOptionsToggleServiceMessage": "Status der Dienste konnte nicht geändert werden.", "modalConversationRemoveAction": "Entfernen", "modalConversationRemoveCloseBtn": "Fenster 'Entfernen' schließen", - "modalConversationRemoveGroupAction": "Delete for Me", - "modalConversationRemoveGroupHeadline": "Delete {conversation} group for me?", - "modalConversationRemoveGroupMessage": "You won’t be able to access the group and its content. There is no option to restore it.", + "modalConversationRemoveGroupAction": "Für mich löschen", + "modalConversationRemoveGroupHeadline": "Gruppe {conversation} für mich löschen?", + "modalConversationRemoveGroupMessage": "Sie können dann nicht mehr auf die Gruppe und ihren Inhalt zugreifen. Es gibt keine Möglichkeit, sie wiederherzustellen.", "modalConversationRemoveGuestsHeadline": "Gastzugang deaktivieren?", "modalConversationRemoveGuestsMessage": "Aktuelle Gäste werden aus der Unterhaltung entfernt. Neue Gäste können nicht hinzugefügt werden.", "modalConversationRemoveGuestsOrServicesAction": "Deaktivieren", From d1a063c05c0b43754e03ac49ed30891ff59c4848 Mon Sep 17 00:00:00 2001 From: Enrico Schwendig Date: Wed, 11 Dec 2024 12:33:50 +0100 Subject: [PATCH 06/13] feat: disable zoom feature for screen share [WPB-14947] (#18475) * feat: enable conference feature check * feat: remove zoom icons --- .../components/calling/GroupVideoGridTile.tsx | 25 ++----------------- src/script/team/TeamState.ts | 4 ++- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/src/script/components/calling/GroupVideoGridTile.tsx b/src/script/components/calling/GroupVideoGridTile.tsx index a657d46bfc6..052fad5fb65 100644 --- a/src/script/components/calling/GroupVideoGridTile.tsx +++ b/src/script/components/calling/GroupVideoGridTile.tsx @@ -17,7 +17,7 @@ * */ -import React, {useState} from 'react'; +import React from 'react'; import {QualifiedId} from '@wireapp/api-client/lib/user'; import {TabIndex} from '@wireapp/react-ui-kit/lib/types/enums'; @@ -89,8 +89,6 @@ const GroupVideoGridTile: React.FC = ({ 'isSwitchingVideoResolution', ]); - const [isZoomedIn, setIsZoomedIn] = useState(false); - const {name} = useKoSubscribableChildren(participant?.user, ['name']); const sharesScreen = videoState === VIDEO_STATE.SCREENSHARE; @@ -108,24 +106,8 @@ const GroupVideoGridTile: React.FC = ({ } }; - const handleZoomClick = () => { - setIsZoomedIn(prev => !prev); - }; - const participantNameColor = getParticipantNameColor({isActivelySpeaking, isAudioEstablished}); - const actionItem = !minimized && sharesScreen && ( - - ); - const nameContainer = !minimized && (
= ({ tabIndex={isMaximized ? TabIndex.FOCUSABLE : TabIndex.UNFOCUSABLE} > {hasActiveVideo ? ( -
+
@@ -250,8 +231,6 @@ const GroupVideoGridTile: React.FC = ({
)} - {actionItem} - {nameContainer} {(hasPausedVideo || isSwitchingVideoResolution) && ( diff --git a/src/script/team/TeamState.ts b/src/script/team/TeamState.ts index 9e368138208..abbb2b2bf00 100644 --- a/src/script/team/TeamState.ts +++ b/src/script/team/TeamState.ts @@ -117,7 +117,9 @@ export class TeamState { () => this.teamFeatures()?.mls?.config.protocolToggleUsers.includes(this.userState.self().id) ?? false, ); - this.isConferenceCallingEnabled = ko.pureComputed(() => true); + this.isConferenceCallingEnabled = ko.pureComputed( + () => this.teamFeatures()?.conferenceCalling?.status === FeatureStatus.ENABLED, + ); this.isGuestLinkEnabled = ko.pureComputed( () => this.teamFeatures()?.conversationGuestLinks?.status === FeatureStatus.ENABLED, From 66f6d07b1d7470bd9cbf26759d67d948a06687f7 Mon Sep 17 00:00:00 2001 From: Virgile <78490891+V-Gira@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:01:01 +0100 Subject: [PATCH 07/13] chore: set default api to v7 (#18478) --- src/script/Config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/Config.ts b/src/script/Config.ts index 04ba29ba490..7a2d9b25c8b 100644 --- a/src/script/Config.ts +++ b/src/script/Config.ts @@ -81,7 +81,7 @@ const config = { ALLOWED_IMAGE_TYPES: ['image/bmp', 'image/gif', 'image/jpeg', 'image/jpg', 'image/png'], /** Which min and max version of the backend api do we support */ - SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 6], + SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 7], /** DataDog client api keys acces */ dataDog: { From 3057ce50619f4603e1f057699b814e0cb516c0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Wei=C3=9F?= <77456193+aweiss-dev@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:02:33 +0100 Subject: [PATCH 08/13] feat: remove the environmental mls feature flag (#18479) --- .env.localhost | 1 - server/config/client.config.ts | 1 - server/config/env.ts | 2 -- .../Modals/GroupCreation/GroupCreationModal.tsx | 11 ++++------- src/script/util/util.ts | 3 +-- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/.env.localhost b/.env.localhost index 4b8da96deee..ed0eeafcc3f 100644 --- a/.env.localhost +++ b/.env.localhost @@ -19,7 +19,6 @@ ENABLE_DEV_BACKEND_API="true" #FEATURE_DEFAULT_LOGIN_TEMPORARY_CLIENT="false" #FEATURE_APPLOCK_UNFOCUS_TIMEOUT="30" #FEATURE_APPLOCK_SCHEDULED_TIMEOUT="30" -#FEATURE_ENABLE_MLS="true" #FEATURE_USE_CORE_CRYPTO="true" # staging diff --git a/server/config/client.config.ts b/server/config/client.config.ts index 8230538a83c..45e42389a69 100644 --- a/server/config/client.config.ts +++ b/server/config/client.config.ts @@ -63,7 +63,6 @@ export function generateConfig(params: ConfigGeneratorParams, env: Env) { ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY: env.FEATURE_ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY == 'true', ENABLE_EXTRA_CLIENT_ENTROPY: env.FEATURE_ENABLE_EXTRA_CLIENT_ENTROPY == 'true', ENABLE_MEDIA_EMBEDS: env.FEATURE_ENABLE_MEDIA_EMBEDS != 'false', - ENABLE_MLS: env.FEATURE_ENABLE_MLS == 'true', ENABLE_PROTEUS_CORE_CRYPTO: env.FEATURE_ENABLE_PROTEUS_CORE_CRYPTO == 'true', ENABLE_SSO: env.FEATURE_ENABLE_SSO == 'true', ENFORCE_CONSTANT_BITRATE: env.FEATURE_ENFORCE_CONSTANT_BITRATE == 'true', diff --git a/server/config/env.ts b/server/config/env.ts index 7103c1d4011..e135893e441 100644 --- a/server/config/env.ts +++ b/server/config/env.ts @@ -78,8 +78,6 @@ export type Env = { FEATURE_ALLOWED_FILE_UPLOAD_EXTENSIONS: string; /** will enable the MLS protocol */ - FEATURE_ENABLE_MLS?: string; - FEATURE_USE_CORE_CRYPTO?: string; FEATURE_MLS_CONFIG_KEYING_MATERIAL_UPDATE_THRESHOLD?: string; diff --git a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx index f39792e4aca..c734c341488 100644 --- a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx +++ b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx @@ -81,15 +81,12 @@ const GroupCreationModal: React.FC = ({ } = useKoSubscribableChildren(teamState, ['isTeam', 'isMLSEnabled', 'isProtocolToggleEnabledForUser']); const {self: selfUser} = useKoSubscribableChildren(userState, ['self']); - const isMLSFeatureEnabled = Config.getConfig().FEATURE.ENABLE_MLS; - - const enableMLSToggle = isMLSFeatureEnabled && isMLSEnabledForTeam && isProtocolToggleEnabledForUser; + const enableMLSToggle = isMLSEnabledForTeam && isProtocolToggleEnabledForUser; //if feature flag is set to false or mls is disabled for current team use proteus as default - const defaultProtocol = - isMLSFeatureEnabled && isMLSEnabledForTeam - ? teamState.teamFeatures()?.mls?.config.defaultProtocol - : ConversationProtocol.PROTEUS; + const defaultProtocol = isMLSEnabledForTeam + ? teamState.teamFeatures()?.mls?.config.defaultProtocol + : ConversationProtocol.PROTEUS; const protocolOptions: ProtocolOption[] = ([ConversationProtocol.PROTEUS, ConversationProtocol.MLS] as const).map( protocol => ({ diff --git a/src/script/util/util.ts b/src/script/util/util.ts index df66753fc91..3b8251868ac 100644 --- a/src/script/util/util.ts +++ b/src/script/util/util.ts @@ -25,7 +25,6 @@ import {Runtime} from '@wireapp/commons'; import {isTabKey} from './KeyboardUtil'; import {getLogger} from './Logger'; -import {Config} from '../Config'; import type {Conversation} from '../entity/Conversation'; import {AuthError} from '../error/AuthError'; @@ -304,7 +303,7 @@ export const setContextMenuPosition = (event: React.KeyboardEvent) => { const supportsSecretStorage = () => !Runtime.isDesktopApp() || !!window.systemCrypto; // disables mls for old 'broken' desktop clients, see https://github.com/wireapp/wire-desktop/pull/6094 -export const supportsMLS = () => Config.getConfig().FEATURE.ENABLE_MLS && supportsSecretStorage(); +export const supportsMLS = () => supportsSecretStorage(); export const incomingCssClass = 'content-animation-incoming-horizontal-left'; From f2638e9228d9e356d35bcb76591027ea31ff8820 Mon Sep 17 00:00:00 2001 From: Amir Ghezelbash Date: Wed, 11 Dec 2024 20:02:54 +0330 Subject: [PATCH 09/13] feat: bump @wireapp/core from 14.13.0 to 46.14.0 (#18481) --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 312ec61f783..e5cca669628 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@wireapp/avs": "10.0.4", "@wireapp/avs-debugger": "0.0.7", "@wireapp/commons": "5.4.0", - "@wireapp/core": "46.13.0", + "@wireapp/core": "46.14.0", "@wireapp/react-ui-kit": "9.28.0", "@wireapp/store-engine-dexie": "2.1.15", "@wireapp/telemetry": "0.1.4", diff --git a/yarn.lock b/yarn.lock index 6899bb0f75e..beb233fd9b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5948,9 +5948,9 @@ __metadata: languageName: node linkType: hard -"@wireapp/api-client@npm:^27.13.2": - version: 27.13.2 - resolution: "@wireapp/api-client@npm:27.13.2" +"@wireapp/api-client@npm:^27.14.0": + version: 27.14.0 + resolution: "@wireapp/api-client@npm:27.14.0" dependencies: "@wireapp/commons": "npm:^5.4.0" "@wireapp/priority-queue": "npm:^2.1.11" @@ -5965,7 +5965,7 @@ __metadata: tough-cookie: "npm:4.1.4" ws: "npm:8.18.0" zod: "npm:3.23.8" - checksum: 10/1fbe961c5648fd349de4f59df29eb52e80d7999c7114066cfdfbf14a7c42e4ebfa6276218f4694aa4a141e7e6221e1b2bd9f65de48cfcd2c3207e330e00edc9d + checksum: 10/8f03bc24e21b8a1b2c78e4aa663115eb910d2cb5acbf3e4603e25ed860b72a1c2342db4cf02d2f853413386b3d6b91128d0baf72cb4c6f3237dc75f49b4a4151 languageName: node linkType: hard @@ -6030,11 +6030,11 @@ __metadata: languageName: node linkType: hard -"@wireapp/core@npm:46.13.0": - version: 46.13.0 - resolution: "@wireapp/core@npm:46.13.0" +"@wireapp/core@npm:46.14.0": + version: 46.14.0 + resolution: "@wireapp/core@npm:46.14.0" dependencies: - "@wireapp/api-client": "npm:^27.13.2" + "@wireapp/api-client": "npm:^27.14.0" "@wireapp/commons": "npm:^5.4.0" "@wireapp/core-crypto": "npm:2.0.0" "@wireapp/cryptobox": "npm:12.8.0" @@ -6052,7 +6052,7 @@ __metadata: long: "npm:^5.2.0" uuid: "npm:9.0.1" zod: "npm:3.23.8" - checksum: 10/30b90cdc3fdc0ba8e015bac7182244c410528ba66ed0a48c7aa647e8354e2b4fa6aa0c9e30af18923aa02551b6c10562632604c6d59537e49dc1e113d4858cb6 + checksum: 10/5fba4c5b419e82c65d4157582c951ed4617dadf167d02cff733c89911bdf71b84c28ff344b2b0ca7097ddcdeb4c41fb9203a1bebec07bcf1188e9cb601de19ce languageName: node linkType: hard @@ -18775,7 +18775,7 @@ __metadata: "@wireapp/avs-debugger": "npm:0.0.7" "@wireapp/commons": "npm:5.4.0" "@wireapp/copy-config": "npm:2.2.10" - "@wireapp/core": "npm:46.13.0" + "@wireapp/core": "npm:46.14.0" "@wireapp/eslint-config": "npm:3.0.7" "@wireapp/prettier-config": "npm:0.6.4" "@wireapp/react-ui-kit": "npm:9.28.0" From a77dc249dcdfbda11d0753b8e2e5bf6a1c2b6454 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:39:06 +0000 Subject: [PATCH 10/13] chore(deps): bump nanoid from 3.3.7 to 3.3.8 (#18482) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index beb233fd9b2..6ec02c0568e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13683,11 +13683,11 @@ __metadata: linkType: hard "nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" bin: nanoid: bin/nanoid.cjs - checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 + checksum: 10/2d1766606cf0d6f47b6f0fdab91761bb81609b2e3d367027aff45e6ee7006f660fb7e7781f4a34799fe6734f1268eeed2e37a5fdee809ade0c2d4eb11b0f9c40 languageName: node linkType: hard From 34383fcf0b601c812d2729cd25a2cd12a8a0c3e0 Mon Sep 17 00:00:00 2001 From: Virgile <78490891+V-Gira@users.noreply.github.com> Date: Wed, 11 Dec 2024 18:52:45 +0100 Subject: [PATCH 11/13] chore: Revert "chore: set default api to v7 (#18478)" (#18483) This reverts commit 66f6d07b1d7470bd9cbf26759d67d948a06687f7. --- src/script/Config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/Config.ts b/src/script/Config.ts index 7a2d9b25c8b..04ba29ba490 100644 --- a/src/script/Config.ts +++ b/src/script/Config.ts @@ -81,7 +81,7 @@ const config = { ALLOWED_IMAGE_TYPES: ['image/bmp', 'image/gif', 'image/jpeg', 'image/jpg', 'image/png'], /** Which min and max version of the backend api do we support */ - SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 7], + SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 6], /** DataDog client api keys acces */ dataDog: { From d3925671e2b1fb09e540c6200fbe4cffa943af26 Mon Sep 17 00:00:00 2001 From: Virgile <78490891+V-Gira@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:35:44 +0100 Subject: [PATCH 12/13] chore: Revert "feat: remove the environmental mls feature flag (#18479)" (#18484) This reverts commit 3057ce50619f4603e1f057699b814e0cb516c0a3. --- .env.localhost | 1 + server/config/client.config.ts | 1 + server/config/env.ts | 2 ++ .../Modals/GroupCreation/GroupCreationModal.tsx | 11 +++++++---- src/script/util/util.ts | 3 ++- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.env.localhost b/.env.localhost index ed0eeafcc3f..4b8da96deee 100644 --- a/.env.localhost +++ b/.env.localhost @@ -19,6 +19,7 @@ ENABLE_DEV_BACKEND_API="true" #FEATURE_DEFAULT_LOGIN_TEMPORARY_CLIENT="false" #FEATURE_APPLOCK_UNFOCUS_TIMEOUT="30" #FEATURE_APPLOCK_SCHEDULED_TIMEOUT="30" +#FEATURE_ENABLE_MLS="true" #FEATURE_USE_CORE_CRYPTO="true" # staging diff --git a/server/config/client.config.ts b/server/config/client.config.ts index 45e42389a69..8230538a83c 100644 --- a/server/config/client.config.ts +++ b/server/config/client.config.ts @@ -63,6 +63,7 @@ export function generateConfig(params: ConfigGeneratorParams, env: Env) { ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY: env.FEATURE_ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY == 'true', ENABLE_EXTRA_CLIENT_ENTROPY: env.FEATURE_ENABLE_EXTRA_CLIENT_ENTROPY == 'true', ENABLE_MEDIA_EMBEDS: env.FEATURE_ENABLE_MEDIA_EMBEDS != 'false', + ENABLE_MLS: env.FEATURE_ENABLE_MLS == 'true', ENABLE_PROTEUS_CORE_CRYPTO: env.FEATURE_ENABLE_PROTEUS_CORE_CRYPTO == 'true', ENABLE_SSO: env.FEATURE_ENABLE_SSO == 'true', ENFORCE_CONSTANT_BITRATE: env.FEATURE_ENFORCE_CONSTANT_BITRATE == 'true', diff --git a/server/config/env.ts b/server/config/env.ts index e135893e441..7103c1d4011 100644 --- a/server/config/env.ts +++ b/server/config/env.ts @@ -78,6 +78,8 @@ export type Env = { FEATURE_ALLOWED_FILE_UPLOAD_EXTENSIONS: string; /** will enable the MLS protocol */ + FEATURE_ENABLE_MLS?: string; + FEATURE_USE_CORE_CRYPTO?: string; FEATURE_MLS_CONFIG_KEYING_MATERIAL_UPDATE_THRESHOLD?: string; diff --git a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx index c734c341488..f39792e4aca 100644 --- a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx +++ b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx @@ -81,12 +81,15 @@ const GroupCreationModal: React.FC = ({ } = useKoSubscribableChildren(teamState, ['isTeam', 'isMLSEnabled', 'isProtocolToggleEnabledForUser']); const {self: selfUser} = useKoSubscribableChildren(userState, ['self']); - const enableMLSToggle = isMLSEnabledForTeam && isProtocolToggleEnabledForUser; + const isMLSFeatureEnabled = Config.getConfig().FEATURE.ENABLE_MLS; + + const enableMLSToggle = isMLSFeatureEnabled && isMLSEnabledForTeam && isProtocolToggleEnabledForUser; //if feature flag is set to false or mls is disabled for current team use proteus as default - const defaultProtocol = isMLSEnabledForTeam - ? teamState.teamFeatures()?.mls?.config.defaultProtocol - : ConversationProtocol.PROTEUS; + const defaultProtocol = + isMLSFeatureEnabled && isMLSEnabledForTeam + ? teamState.teamFeatures()?.mls?.config.defaultProtocol + : ConversationProtocol.PROTEUS; const protocolOptions: ProtocolOption[] = ([ConversationProtocol.PROTEUS, ConversationProtocol.MLS] as const).map( protocol => ({ diff --git a/src/script/util/util.ts b/src/script/util/util.ts index 3b8251868ac..df66753fc91 100644 --- a/src/script/util/util.ts +++ b/src/script/util/util.ts @@ -25,6 +25,7 @@ import {Runtime} from '@wireapp/commons'; import {isTabKey} from './KeyboardUtil'; import {getLogger} from './Logger'; +import {Config} from '../Config'; import type {Conversation} from '../entity/Conversation'; import {AuthError} from '../error/AuthError'; @@ -303,7 +304,7 @@ export const setContextMenuPosition = (event: React.KeyboardEvent) => { const supportsSecretStorage = () => !Runtime.isDesktopApp() || !!window.systemCrypto; // disables mls for old 'broken' desktop clients, see https://github.com/wireapp/wire-desktop/pull/6094 -export const supportsMLS = () => supportsSecretStorage(); +export const supportsMLS = () => Config.getConfig().FEATURE.ENABLE_MLS && supportsSecretStorage(); export const incomingCssClass = 'content-animation-incoming-horizontal-left'; From ad9574fa5375523bee883c8fba6f342261daa387 Mon Sep 17 00:00:00 2001 From: Virgile <78490891+V-Gira@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:59:33 +0100 Subject: [PATCH 13/13] chore: restore default api v7 and MLS env variable removal (#18485) * Chore: restore "chore: set default api to v7 (#18478)" (#18483)" This reverts commit 34383fcf0b601c812d2729cd25a2cd12a8a0c3e0. * chore: restore "feat: remove the environmental mls feature flag (#18479)" (#18484)" This reverts commit d3925671e2b1fb09e540c6200fbe4cffa943af26. --- .env.localhost | 1 - server/config/client.config.ts | 1 - server/config/env.ts | 2 -- src/script/Config.ts | 2 +- .../Modals/GroupCreation/GroupCreationModal.tsx | 11 ++++------- src/script/util/util.ts | 3 +-- 6 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.env.localhost b/.env.localhost index 4b8da96deee..ed0eeafcc3f 100644 --- a/.env.localhost +++ b/.env.localhost @@ -19,7 +19,6 @@ ENABLE_DEV_BACKEND_API="true" #FEATURE_DEFAULT_LOGIN_TEMPORARY_CLIENT="false" #FEATURE_APPLOCK_UNFOCUS_TIMEOUT="30" #FEATURE_APPLOCK_SCHEDULED_TIMEOUT="30" -#FEATURE_ENABLE_MLS="true" #FEATURE_USE_CORE_CRYPTO="true" # staging diff --git a/server/config/client.config.ts b/server/config/client.config.ts index 8230538a83c..45e42389a69 100644 --- a/server/config/client.config.ts +++ b/server/config/client.config.ts @@ -63,7 +63,6 @@ export function generateConfig(params: ConfigGeneratorParams, env: Env) { ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY: env.FEATURE_ENABLE_ENFORCE_DESKTOP_APPLICATION_ONLY == 'true', ENABLE_EXTRA_CLIENT_ENTROPY: env.FEATURE_ENABLE_EXTRA_CLIENT_ENTROPY == 'true', ENABLE_MEDIA_EMBEDS: env.FEATURE_ENABLE_MEDIA_EMBEDS != 'false', - ENABLE_MLS: env.FEATURE_ENABLE_MLS == 'true', ENABLE_PROTEUS_CORE_CRYPTO: env.FEATURE_ENABLE_PROTEUS_CORE_CRYPTO == 'true', ENABLE_SSO: env.FEATURE_ENABLE_SSO == 'true', ENFORCE_CONSTANT_BITRATE: env.FEATURE_ENFORCE_CONSTANT_BITRATE == 'true', diff --git a/server/config/env.ts b/server/config/env.ts index 7103c1d4011..e135893e441 100644 --- a/server/config/env.ts +++ b/server/config/env.ts @@ -78,8 +78,6 @@ export type Env = { FEATURE_ALLOWED_FILE_UPLOAD_EXTENSIONS: string; /** will enable the MLS protocol */ - FEATURE_ENABLE_MLS?: string; - FEATURE_USE_CORE_CRYPTO?: string; FEATURE_MLS_CONFIG_KEYING_MATERIAL_UPDATE_THRESHOLD?: string; diff --git a/src/script/Config.ts b/src/script/Config.ts index 04ba29ba490..7a2d9b25c8b 100644 --- a/src/script/Config.ts +++ b/src/script/Config.ts @@ -81,7 +81,7 @@ const config = { ALLOWED_IMAGE_TYPES: ['image/bmp', 'image/gif', 'image/jpeg', 'image/jpg', 'image/png'], /** Which min and max version of the backend api do we support */ - SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 6], + SUPPORTED_API_RANGE: [1, env.ENABLE_DEV_BACKEND_API ? Infinity : 7], /** DataDog client api keys acces */ dataDog: { diff --git a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx index f39792e4aca..c734c341488 100644 --- a/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx +++ b/src/script/components/Modals/GroupCreation/GroupCreationModal.tsx @@ -81,15 +81,12 @@ const GroupCreationModal: React.FC = ({ } = useKoSubscribableChildren(teamState, ['isTeam', 'isMLSEnabled', 'isProtocolToggleEnabledForUser']); const {self: selfUser} = useKoSubscribableChildren(userState, ['self']); - const isMLSFeatureEnabled = Config.getConfig().FEATURE.ENABLE_MLS; - - const enableMLSToggle = isMLSFeatureEnabled && isMLSEnabledForTeam && isProtocolToggleEnabledForUser; + const enableMLSToggle = isMLSEnabledForTeam && isProtocolToggleEnabledForUser; //if feature flag is set to false or mls is disabled for current team use proteus as default - const defaultProtocol = - isMLSFeatureEnabled && isMLSEnabledForTeam - ? teamState.teamFeatures()?.mls?.config.defaultProtocol - : ConversationProtocol.PROTEUS; + const defaultProtocol = isMLSEnabledForTeam + ? teamState.teamFeatures()?.mls?.config.defaultProtocol + : ConversationProtocol.PROTEUS; const protocolOptions: ProtocolOption[] = ([ConversationProtocol.PROTEUS, ConversationProtocol.MLS] as const).map( protocol => ({ diff --git a/src/script/util/util.ts b/src/script/util/util.ts index df66753fc91..3b8251868ac 100644 --- a/src/script/util/util.ts +++ b/src/script/util/util.ts @@ -25,7 +25,6 @@ import {Runtime} from '@wireapp/commons'; import {isTabKey} from './KeyboardUtil'; import {getLogger} from './Logger'; -import {Config} from '../Config'; import type {Conversation} from '../entity/Conversation'; import {AuthError} from '../error/AuthError'; @@ -304,7 +303,7 @@ export const setContextMenuPosition = (event: React.KeyboardEvent) => { const supportsSecretStorage = () => !Runtime.isDesktopApp() || !!window.systemCrypto; // disables mls for old 'broken' desktop clients, see https://github.com/wireapp/wire-desktop/pull/6094 -export const supportsMLS = () => Config.getConfig().FEATURE.ENABLE_MLS && supportsSecretStorage(); +export const supportsMLS = () => supportsSecretStorage(); export const incomingCssClass = 'content-animation-incoming-horizontal-left';