diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3dfdd9c35..c19d175ca 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -2175,5 +2175,9 @@ "closedGroupMaxSize": { "message": "A closed group cannot have more than 10 members", "androidKey": "activity_create_closed_group_too_many_group_members_error" + }, + "noBlockedContacts": { + "message": "No blocked contacts", + "androidKey": "blocked_contacts_fragment__no_blocked_contacts" } } diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 5eb1756a6..9a3671a8f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1420,29 +1420,29 @@ "description": "Button when a specific action is to be done." }, "cannotUpdateDetail": { - "message": "La mise a jour a échouée, mais il y a une nouvelle version disponible. Merci de visiter https://getsession.org/ et d'installer la nouvelle version manuellement, puis de contacter le support ou créer un ticket au sujet de ce bug", + "message": "La mise a jour de Session a échouée. Une nouvelle version est disponible. Rendez-vous sur https://getsession.org/ pour installer la nouvelle version manuellement. Vous pouvez également contacter le support ou créer un ticket au sujet de ce problème.", "description": "Shown if a general error happened while trying to install update package" }, "close": { "message": "Fermer" }, "devicePairingRequestReceivedNoListenerDescription": { - "message": "Une demande de liaison a été reçu, mais vous n’êtes pas sur l’écran de liaison d'un appareil. \nAller dans Paramètres > Appareil > Relier un nouvel appareil." + "message": "Une demande de liaison a été reçue, mais vous n’êtes pas sur l’écran de liaison d'un appareil. \nRendez-vous dans Paramètres > Appareil > Relier un nouvel appareil." }, "deviceIsSecondaryNoPairing": { - "message": "Cet appareil est un appareil secondaire et ne peux donc pas être relier." + "message": "Cet appareil est un appareil secondaire et ne peux donc pas être relié." }, "pairingOngoing": { - "message": "Une demande de liaison est déjà en cours. Redémarrer l'application si cela prends trop longtemps." + "message": "Une demande de liaison est déjà en cours. Redémarrez l'application si cela prends trop longtemps." }, "allowPairingWithDevice": { "message": "Autoriser la liaison avec cet appareil ?" }, "provideDeviceAlias": { - "message": "Merci de donner un alias à cet appareil relié" + "message": "Choisissez un alias pour cet appareil" }, "showPairingWordsTitle": { - "message": "Mots secret de liaison" + "message": "Mots secrets pour la liaison" }, "confirmUnpairingTitle": { "message": "Merci de confirmer que vous souhaitez déconnecter l'appareil suivant:" @@ -1452,20 +1452,20 @@ "description": "Warning for device unlinking in settings view" }, "unpairDeviceWarningSub": { - "message": "Déconnecter cet appareil va supprimer tout l'historique, ce qui inclus tous les messages, sessions, et contacts de cet appareil.", + "message": "Déconnecter cet appareil supprimera tout l'historique, ce qui inclut tous les messages, sessions, et contacts de cet appareil.", "description": "Warning description for device unlinking in settings view" }, "deletePublicWarning": { - "message": "Êtes-vous sûr? Cela va supprimer ce message pour tout le monde dans ce groupe public." + "message": "Êtes-vous sûr? Cela supprimera ce message pour tous les membres de ce groupe public." }, "deleteMultiplePublicWarning": { - "message": "Êtes-vous sûr? Cela va supprimer ces messages pour tout le monde dans ce groupe public." + "message": "Êtes-vous sûr? Cela supprimera ces messages pour tous les membres de ce groupe public." }, "deleteMultipleWarning": { - "message": "Êtes-vous sûr? En cliquant sur 'Supprimer' cela va supprimer ces messages de cet appareil uniquement." + "message": "Êtes-vous sûr? En cliquant sur 'Supprimer' cela supprimera ces messages sur cet appareil uniquement." }, "messageDeletionForbidden": { - "message": "Vous n'avez pas l'autorisation de supprimer les messages d'autres utilisateurs.", + "message": "Vous n'êtes pas autorisé à supprimer les messages des autres utilisateurs.", "description": "Toast message explaining that the user doens't have the rights to delete other people's messages." }, "sendMessageBlockedUser": { @@ -1499,7 +1499,7 @@ "message": "Vous n'aurez pas une protection complète des métadonnées en envoyant ou recevant des aperçu de liens." }, "mediaPermissionsTitle": { - "message": "Microphone et camera" + "message": "Microphone et caméra" }, "spellCheckTitle": { "message": "Vérification orthographique", @@ -1510,11 +1510,11 @@ "description": "Shown when the user changes their spellcheck setting to indicate that they must restart Session." }, "readReceiptSettingDescription": { - "message": "Voir et partager quand les messages ont étés lus (activer les accusés de lecture dans toutes les sessions).", + "message": "Voir et partager quand les messages ont étés lus (s'applique à toutes les sessions).", "description": "Description of the read receipts setting" }, "typingIndicatorsSettingDescription": { - "message": "Voir et partager quand les messages sont rédigés (s'applique à toutes les sessions)).", + "message": "Voir et partager quand les messages sont rédigés (s'applique à toutes les sessions).", "description": "Description of the typing indicators setting" }, "zoomFactorSettingTitle": { @@ -1538,10 +1538,10 @@ "description": "Conversation menu option to clear user nickname" }, "themeToggleDescription": { - "message": "Choisissez le thème qui vous convient le plus" + "message": "Choisissez le thème qui vous convient le mieux" }, "hideMenuBarTitle": { - "message": "Cacher la bar de menu", + "message": "Cacher la barre de menu", "description": "Label text for menu bar visibility setting" }, "hideMenuBarDescription": { @@ -1552,10 +1552,10 @@ "message": "Mise à jour automatique" }, "autoUpdateSettingDescription": { - "message": "Vérifier si une mise à jour est disponible au lancement" + "message": "Rechercher automatiquement les mises à jour au lancement" }, "autoUpdateDownloadedMessage": { - "message": "La mise à jour a été telechargé." + "message": "La mise à jour a été telechargée." }, "autoUpdateDownloadInstructions": { "message": "Voulez-vous télécharger la mise à jour ?" @@ -1568,7 +1568,7 @@ "description": "Ban user from open group by public key." }, "banUserConfirm": { - "message": "Êtes-vous sûr que vous voulez bannir cet utilisateur ?", + "message": "Êtes-vous sûr de vouloir bannir cet utilisateur ?", "description": "Message shown when confirming user ban." }, "userBanned": { @@ -1592,7 +1592,7 @@ "description": "Button action that the user can click to edit a group name (closed)" }, "setAccountPasswordTitle": { - "message": "Sécuriser par mot de passe", + "message": "Définir un mot de passe", "description": "Prompt for user to set account password in settings view" }, "setAccountPasswordDescription": { @@ -1600,7 +1600,7 @@ "description": "Description for set account password setting view" }, "changeAccountPasswordTitle": { - "message": "Changement de Mot de Passe", + "message": "Changement de mot de passe", "description": "Prompt for user to change account password in settings view" }, "changeAccountPasswordDescription": { @@ -1616,21 +1616,21 @@ "description": "Description for remove account password setting view" }, "enterPassword": { - "message": "Merci d'entrer votre mot de passe" + "message": "Veuillez saisir votre mot de passe" }, "confirmPassword": { - "message": "Confirmer le mot de passe" + "message": "Confirmez le mot de passe" }, "pasteLongPasswordToastTitle": { - "message": "Le contenu du presse-papier est plus long que la longueur maximum d'un mot de passe ($max_pwd_len$ caractères).", + "message": "Le contenu du presse-papier dépasse la longueur maximum pour un mot de passe ($max_pwd_len$ caractères).", "description": "Shown when user pastes a password which is longer than MAX_PASSWORD_LEN" }, "showRecoveryPhrasePasswordRequest": { - "message": "Merci d'entrer votre mot de passe", + "message": "Veuillez saisir votre mot de passe", "description": "Request for user to enter password to show recovery phrase." }, "passwordViewTitle": { - "message": "Entrer votre mot de passe", + "message": "Saisissez votre mot de passe", "description": "The title shown when user needs to type in a password to unlock the messenger" }, "password": { @@ -1638,7 +1638,7 @@ "description": "Placeholder for password input" }, "setPassword": { - "message": "Ajouter un mot de passe", + "message": "Définir un mot de passe", "description": "Button action that the user can click to set a password" }, "changePassword": { @@ -1653,7 +1653,7 @@ "message": "Mot de passe invalide. Voulez-vous effacer la base de données?" }, "typeInOldPassword": { - "message": "Merci de taper votre ancien mot de passe" + "message": "Merci de saisir votre ancien mot de passe" }, "invalidOldPassword": { "message": "Ancien mot de passe invalide" @@ -1662,7 +1662,7 @@ "message": "Mot de passe invalide" }, "noGivenPassword": { - "message": "Merci de taper votre mot de passe" + "message": "Merci de saisir votre mot de passe" }, "passwordsDoNotMatch": { "message": "Les mots de passe ne correspondent pas." @@ -1677,7 +1677,7 @@ "message": "Mot de passe incorrect" }, "setPasswordTitle": { - "message": "Ajouter un mot de passe" + "message": "Définir un mot de passe" }, "changePasswordTitle": { "message": "Changer le mot de passe" @@ -1686,10 +1686,10 @@ "message": "Supprimer le mot de passe" }, "setPasswordToastDescription": { - "message": "Votre mot de passe a été défini. Veuillez le garder en sécurité." + "message": "Votre mot de passe a été défini. Veuillez le conserver en sécurité." }, "changePasswordToastDescription": { - "message": "Votre mot de passe a été changé. Veuillez le garder en sécurité." + "message": "Votre mot de passe a été changé. Veuillez le conserver en sécurité." }, "removePasswordToastDescription": { "message": "Vous avez supprimé votre mot de passe." @@ -1698,7 +1698,7 @@ "message": "Vous êtes déjà connecté à ce groupe public" }, "connectToServerSuccess": { - "message": "Connexion réussie au groupe public" + "message": "Connexion au groupe public réussie" }, "setPasswordFail": { "message": "Échec de la définition du mot de passe" @@ -1708,7 +1708,7 @@ "description": "Error string shown to the user when password doesn't meet length criteria" }, "passwordTypeError": { - "message": "Le mot de passe doit être une chaîne de caractère", + "message": "Le mot de passe doit être une chaîne de caractères", "description": "Error string shown to the user when password is not a string" }, "passwordCharacterError": { @@ -1728,7 +1728,7 @@ "description": "Shown in toast if user enters an unknown LNS name" }, "lnsTooFewNodes": { - "message": "Pas assez de nœuds actuellement actifs pour la recherche LNS" + "message": "Il n'y a pas assez de nœuds actifs actuellement pour la recherche LNS" }, "editProfileModalTitle": { "message": "Profil", @@ -1741,10 +1741,10 @@ "message": "Supprimer un modérateur" }, "groupInvitation": { - "message": "Invitation de groupe" + "message": "Invitation à rejoindre un groupe" }, "addingContacts": { - "message": "Ajout de contact à" + "message": "Ajouter des contacts à" }, "noContactsToAdd": { "message": "Aucun contact à ajouter" @@ -1779,13 +1779,13 @@ "message": "Lancer Session sur votre autre appareil." }, "devicePairingHeader_Step2": { - "message": "Aller dans la sectionAppareils dans vos paramètres de compte." + "message": "Rendez-vous dans Appareils dans les paramètres de votre compte." }, "devicePairingHeader_Step3": { - "message": "Sélectionnez Relier un nouvel appareil pour préparer votre autre appareil pour être relier." + "message": "Sélectionnez Relier un nouvel appareil pour préparer la liaison de votre autre appareil." }, "devicePairingHeader_Step4": { - "message": "Taper votre Session ID ci-dessous pour relier votre appareil." + "message": "Saisissez votre Session ID ci-dessous pour relier votre appareil." }, "linkDeviceToExistingAccount": { "message": "Relier un appareil à un compte existant" @@ -1794,7 +1794,7 @@ "message": "ou" }, "ByUsingThisService...": { - "message": "En utilisant ce service, vous approuvez nos Conditions d'utilisation et notre Politique de confidentialité" + "message": "En utilisant ce service, vous acceptez nos Conditions d'utilisation et notre Politique de confidentialité" }, "beginYourSession": { "message": "Commencez
votre
Session." @@ -1823,4 +1823,4 @@ "description": { "message": "Description" } -} \ No newline at end of file +} diff --git a/package.json b/package.json index e64a6aa8c..617a1c9a0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "session-messenger-desktop", "productName": "Session", "description": "Private messaging from your desktop", - "version": "1.2.1", + "version": "1.3.0", "license": "GPL-3.0", "author": { "name": "Loki Project", diff --git a/stylesheets/_conversation.scss b/stylesheets/_conversation.scss index 92a613e45..2c0ce17fc 100644 --- a/stylesheets/_conversation.scss +++ b/stylesheets/_conversation.scss @@ -29,6 +29,7 @@ display: flex; flex-direction: column; flex-grow: 1; + width: 100%; } .main.panel { @@ -428,7 +429,7 @@ display: flex; flex-direction: row; align-items: center; - margin-bottom: 8px; + margin-bottom: 7px; padding: 0px 15px; .send-message { diff --git a/stylesheets/_modal.scss b/stylesheets/_modal.scss index a0c314bb4..6f154ded3 100644 --- a/stylesheets/_modal.scss +++ b/stylesheets/_modal.scss @@ -206,7 +206,9 @@ position: relative; .module-avatar { - box-shadow: 0 0 23px 0 rgba($session-color-black, 0.78); + @include themify($themes) { + box-shadow: 0px 0px 13px 0.5px themed('sessionShadowColor'); + } } .qr-view-button { diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss index 600431ca6..e252c7f6f 100644 --- a/stylesheets/_modules.scss +++ b/stylesheets/_modules.scss @@ -340,26 +340,23 @@ text-overflow: ellipsis; } +.module-message__generic-attachment__file-size, +.module-message__generic-attachment__file-name--outgoing, +.module-message__generic-attachment__file-size--incoming, +.module-message__generic-attachment__file-size--outgoing, .module-message__generic-attachment__file-name--incoming { - color: $color-white; + @include themify($themes) { + color: themed('textColor'); + } } .module-message__generic-attachment__file-size { - color: $color-gray-90; font-size: 11px; line-height: 16px; letter-spacing: 0.3px; margin-top: 3px; } -.module-message__generic-attachment__file-size--incoming { - color: $color-white; -} - -.module-message__generic-attachment__file-size--incoming { - color: $color-white; -} - .module-message__link-preview { cursor: pointer; margin-inline-start: -12px; diff --git a/stylesheets/_quote.scss b/stylesheets/_quote.scss index e94deb026..8bdca3d76 100644 --- a/stylesheets/_quote.scss +++ b/stylesheets/_quote.scss @@ -7,12 +7,12 @@ flex-direction: row; align-items: stretch; overflow: hidden; - + border-radius: 4px; border-left-width: 4px; border-left-style: solid; @include themify($themes) { - border-color: themed('accent'); + border-color: themed('accentButton'); } &__primary__type-label { @@ -64,7 +64,16 @@ // This is related to the quote logic inside messages .module-quote { + &--incoming { + @include themify($themes) { + background: themed('sentMessageBackground'); + } + } + &--outgoing { + @include themify($themes) { + background: themed('receivedMessageBackground'); + } .module-quote__primary__author { @include themify($themes) { color: themed('sentMessageText'); diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index 56899a7a0..5456d8aae 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -925,7 +925,6 @@ label { height: 80px; border-radius: 100%; background-color: rgba($session-color-black, 0.72); - box-shadow: 0px 0px 3px 0.5px rgba(0, 0, 0, 0.75); opacity: 0; transition: $session-transition-duration; diff --git a/stylesheets/_session_left_pane.scss b/stylesheets/_session_left_pane.scss index 790b473f6..45b3160c2 100644 --- a/stylesheets/_session_left_pane.scss +++ b/stylesheets/_session_left_pane.scss @@ -348,7 +348,7 @@ $session-compose-margin: 20px; margin: auto; .session-brand-logo { - height: 215px; + height: 180px; filter: brightness(0) saturate(100%) invert(75%) sepia(84%) saturate(3272%) hue-rotate(103deg) brightness(106%) contrast(103%); } diff --git a/stylesheets/_session_signin.scss b/stylesheets/_session_signin.scss index b07c9ddaa..786b39ce6 100644 --- a/stylesheets/_session_signin.scss +++ b/stylesheets/_session_signin.scss @@ -160,7 +160,7 @@ &__unique-session-id { @include registration-label-mixin; - padding-top: 3em; + padding-top: 1em; text-align: center; } diff --git a/stylesheets/_theme_dark.scss b/stylesheets/_theme_dark.scss index a50aa1923..b2ba60f25 100644 --- a/stylesheets/_theme_dark.scss +++ b/stylesheets/_theme_dark.scss @@ -365,26 +365,6 @@ color: $color-dark-05; } - .module-message__broken-video-screenshot--incoming { - color: $color-white; - } - - .module-message__generic-attachment__file-name { - color: $color-dark-05; - } - - .module-message__generic-attachment__file-name--incoming { - color: $color-white; - } - - .module-message__generic-attachment__file-size { - color: $color-dark-05; - } - - .module-message__generic-attachment__file-size--incoming { - color: $color-white; - } - .module-message__link-preview__content { background-color: $color-gray-95; border: 1px solid $color-gray-60; diff --git a/stylesheets/themes.scss b/stylesheets/themes.scss index ca7c5ebae..070d34596 100644 --- a/stylesheets/themes.scss +++ b/stylesheets/themes.scss @@ -34,6 +34,7 @@ $themes: ( receivedMessageText: $black, sentMessageText: $black, sessionShadow: 0 0 4px 0 rgba($black, 0.37), + sessionShadowColor: rgba($black, 0.37), // left pane conversationList: $white, conversationItemHasUnread: #fcfcfc, @@ -83,6 +84,7 @@ $themes: ( receivedMessageText: $white, sentMessageText: $white, sessionShadow: 0 0 4px 0 rgba($white, 0.2), + sessionShadowColor: rgba($white, 0.2), // left pane conversationList: #1b1b1b, conversationItemHasUnread: #2c2c2c, diff --git a/test/app/fixtures/menu-mac-os-setup.json b/test/app/fixtures/menu-mac-os-setup.json index ff584845c..5332b7b73 100644 --- a/test/app/fixtures/menu-mac-os-setup.json +++ b/test/app/fixtures/menu-mac-os-setup.json @@ -77,7 +77,7 @@ "role": "delete" }, { - "label": "Select All", + "label": "Select all", "role": "selectall" }, { diff --git a/test/app/fixtures/menu-mac-os.json b/test/app/fixtures/menu-mac-os.json index 60851f18d..7e4a9a3c0 100644 --- a/test/app/fixtures/menu-mac-os.json +++ b/test/app/fixtures/menu-mac-os.json @@ -68,7 +68,7 @@ "role": "delete" }, { - "label": "Select All", + "label": "Select all", "role": "selectall" }, { diff --git a/test/app/fixtures/menu-windows-linux-setup.json b/test/app/fixtures/menu-windows-linux-setup.json index 5c07b68d5..3425a1184 100644 --- a/test/app/fixtures/menu-windows-linux-setup.json +++ b/test/app/fixtures/menu-windows-linux-setup.json @@ -53,7 +53,7 @@ "role": "delete" }, { - "label": "Select All", + "label": "Select all", "role": "selectall" } ] diff --git a/test/app/fixtures/menu-windows-linux.json b/test/app/fixtures/menu-windows-linux.json index de337349e..30a6301d0 100644 --- a/test/app/fixtures/menu-windows-linux.json +++ b/test/app/fixtures/menu-windows-linux.json @@ -46,7 +46,7 @@ "role": "delete" }, { - "label": "Select All", + "label": "Select all", "role": "selectall" } ] diff --git a/ts/components/session/ActionsPanel.tsx b/ts/components/session/ActionsPanel.tsx index 6c4580254..5b799e972 100644 --- a/ts/components/session/ActionsPanel.tsx +++ b/ts/components/session/ActionsPanel.tsx @@ -68,7 +68,9 @@ export class ActionsPanel extends React.Component { if (currentTheme !== 'light') { const message = 'Light Mode'; const messageSub = - 'Feeling the dark side more? Just toggle the theme from the bottom-left moon icon.'; + 'Whoops, who left the lights on?

\ + That’s right, Session has a spiffy new light mode! Take the fresh new color palette for a spin — it’s now the default mode.

\ + Want to go back to the dark side? Just tap the moon symbol in the lower left corner of the app to switch modes.'; const hasSeenLightMode = await getItemById('hasSeenLightModeDialog'); if (hasSeenLightMode?.value === true) { @@ -77,7 +79,6 @@ export class ActionsPanel extends React.Component { } // force light them right now, then ask for permission await window.Events.setThemeSetting('light'); - // FIXME add the SUN icon window.confirmationDialog({ message, messageSub, diff --git a/ts/components/session/LeftPaneMessageSection.tsx b/ts/components/session/LeftPaneMessageSection.tsx index a64486754..e66eb8e56 100644 --- a/ts/components/session/LeftPaneMessageSection.tsx +++ b/ts/components/session/LeftPaneMessageSection.tsx @@ -467,6 +467,7 @@ export class LeftPaneMessageSection extends React.Component { id: 'connectToServer', type: 'success', }); + this.setState({ loading: true }); await OpenGroup.join(serverUrl, async () => { if (await OpenGroup.serverExists(serverUrl)) { ToastUtils.push({ @@ -474,9 +475,8 @@ export class LeftPaneMessageSection extends React.Component { id: 'connectToServer', type: 'success', }); - - this.setState({ loading: true }); } + this.setState({ loading: false }); }); const openGroupConversation = await OpenGroup.getConversation(serverUrl); @@ -498,6 +498,7 @@ export class LeftPaneMessageSection extends React.Component { id: 'connectToServer', type: 'error', }); + this.setState({ loading: false }); } finally { this.setState({ loading: false, diff --git a/ts/components/session/SessionConfirm.tsx b/ts/components/session/SessionConfirm.tsx index a906a5f3c..f0b611834 100644 --- a/ts/components/session/SessionConfirm.tsx +++ b/ts/components/session/SessionConfirm.tsx @@ -79,11 +79,11 @@ export class SessionConfirm extends React.Component { className={messageSubText} html={message} /> - {messageSub && ( - - {messageSub} - - )} +
diff --git a/ts/components/session/settings/SessionSettings.tsx b/ts/components/session/settings/SessionSettings.tsx index e6562a8db..5a3928e89 100644 --- a/ts/components/session/settings/SessionSettings.tsx +++ b/ts/components/session/settings/SessionSettings.tsx @@ -613,6 +613,25 @@ export class SettingsView extends React.Component { confirmationDialogParams: undefined, }); } + + if (blockedNumbers.length === 0) { + return [ + { + id: 'noBlockedContacts', + title: '', + description: window.i18n('noBlockedContacts'), + type: undefined, + category: SessionSettingCategory.Blocked, + content: undefined, + comparisonValue: undefined, + setFn: undefined, + hidden: false, + onClick: undefined, + confirmationDialogParams: undefined, + }, + ]; + } + return results; } diff --git a/ts/session/types/OpenGroup.ts b/ts/session/types/OpenGroup.ts index 4666bdefa..e8fd0f2e2 100644 --- a/ts/session/types/OpenGroup.ts +++ b/ts/session/types/OpenGroup.ts @@ -129,7 +129,7 @@ export class OpenGroup { conversation = await PromiseUtils.timeout( window.attemptConnection(prefixedServer, channel), - 5000 + 15000 ); if (!conversation) { throw new Error(window.i18n('connectToServerFail'));