From e9c44f07e737bdfab79df162966f101a88060b50 Mon Sep 17 00:00:00 2001 From: Sol Rubado Date: Mon, 27 Apr 2026 11:26:35 +0200 Subject: [PATCH 1/4] feat: Add strings for message and threads move to spam snackbar --- app/src/main/res/values-da/strings.xml | 5 +++++ app/src/main/res/values-de/strings.xml | 5 +++++ app/src/main/res/values-el/strings.xml | 5 +++++ app/src/main/res/values-es/strings.xml | 5 +++++ app/src/main/res/values-fi/strings.xml | 5 +++++ app/src/main/res/values-fr/strings.xml | 5 +++++ app/src/main/res/values-it/strings.xml | 5 +++++ app/src/main/res/values-nb/strings.xml | 5 +++++ app/src/main/res/values-nl/strings.xml | 5 +++++ app/src/main/res/values-pl/strings.xml | 7 +++++++ app/src/main/res/values-pt/strings.xml | 5 +++++ app/src/main/res/values-sv/strings.xml | 5 +++++ app/src/main/res/values/strings.xml | 5 +++++ 13 files changed, 67 insertions(+) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index c38fa7696e..92b3fbd815 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -572,6 +572,7 @@ Link kopieret til udklipsholderen Besked slettet Besked flyttet til %s + Besked flyttet til spam og bruger blokeret Flytning annulleret Adgangskode kopieret Nummer kopieret til udklipsholderen @@ -598,6 +599,10 @@ Samtale flyttet til %s Samtaler flyttet til %s + + Samtale flyttet til Spam og bruger blokeret + Samtaler flyttet til Spam og brugere blokeret + Påmindelse annulleret. Din besked er tilbage i din indbakke Påmindelser annulleret. Dine beskeder er tilbage i din indbakke diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 38d0c348c6..0683ee8ff9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -572,6 +572,7 @@ Link in die Zwischenablage kopiert Nachricht gelöscht Nachricht an %s verschoben + Nachricht in den Spam verschoben und Benutzer blockiert Umzug abgesagt Passwort kopiert Nummer in die Zwischenablage kopiert @@ -598,6 +599,10 @@ Unterhaltung in %s verschoben Unterhaltungen in %s verschoben + + Konversation in Spam verschoben und Benutzer gesperrt + Konversationen in Spam verschoben und Benutzer gesperrt + Erinnerung storniert. Ihre Nachricht ist zurück in Ihrem Posteingang Erinnerungen storniert. Ihre Nachrichten sind zurück in Ihrem Posteingang diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index a3ec193a19..11d25112ca 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -572,6 +572,7 @@ Ο σύνδεσμος αντιγράφηκε στο πρόχειρο Το μήνυμα διαγράφηκε Το μήνυμα μετακινήθηκε στο %s + Το μήνυμα μεταφέρθηκε στα spam και ο χρήστης εμποδίστηκε Η μετακίνηση ακυρώθηκε Ο κωδικός αντιγράφηκε Ο αριθμός αντιγράφηκε στο πρόχειρο @@ -598,6 +599,10 @@ Η συνομιλία μετακινήθηκε στο %s Οι συνομιλίες μετακινήθηκαν στο %s + + Η συνομιλία μετακινήθηκε στα Ανεπιθύμητα και ο χρήστης αποκλείστηκε + Οι συνομιλίες μετακινήθηκαν στα Ανεπιθύμητα και οι χρήστες αποκλείστηκαν + Η υπενθύμιση ακυρώθηκε. Το μήνυμά σας επέστρεψε στα εισερχόμενά σας Οι υπενθυμίσεις ακυρώθηκαν. Τα μηνύματά σας επέστρεψαν στα εισερχόμενά σας diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 8111d7cbde..521e31cd77 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -572,6 +572,7 @@ Enlace copiado en el portapapeles Mensaje eliminado Mensaje trasladado a %s + Mensaje movido a spam y usuario bloqueado Desplazamiento cancelado Contraseña copiada Número copiado en el portapapeles @@ -598,6 +599,10 @@ Conversación trasladada a %s Conversaciones trasladadas a %s + + Conversación movida a Spam y usuario bloqueado + Conversaciones movidas a Spam y usuarios bloqueados + Recordatorio cancelado. Tu mensaje ha vuelto a tu bandeja de entrada Recordatorios cancelados. Tus mensajes han vuelto a tu bandeja de entrada diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index bd29e2881c..55944a2ad3 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -572,6 +572,7 @@ Linkki kopioitu leikepöydälle Viesti poistettu Viesti siirretty kohteeseen %s + Viesti siirretty roskapostiksi ja käyttäjä estetty Siirto peruutettu Salasana kopioitu Numero kopioitu leikepöydälle @@ -598,6 +599,10 @@ Keskustelu siirretty kohteeseen %s Keskustelut siirretty kohteeseen %s + + Keskustelu siirretty roskapostiin ja käyttäjä estetty + Keskustelut siirretty roskapostiin ja käyttäjät estetty + Muistutus peruutettu. Viestisi on palannut saapuneisiin Muistutukset peruutettu. Viestisi ovat palanneet saapuneisiin diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 237020638a..33000f6450 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -572,6 +572,7 @@ Lien copié dans le presse-papiers Message supprimé Message déplacé vers %s + Message déplacé vers Spam et utilisateur bloqué Déplacement annulé Mot de passe copié Numéro copié dans le presse-papiers @@ -598,6 +599,10 @@ Conversation déplacée vers %s Conversations déplacées vers %s + + Conversation déplacée vers Spam et utilisateur bloqué + Conversations déplacées vers Spam et utilisateurs bloqués + Rappel annulé. Votre message est revenu dans votre boîte de réception Rappels annulés. Vos messages sont revenus dans votre boîte de réception diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a85a370073..142c04c738 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -572,6 +572,7 @@ Link copiato negli appunti Messaggio cancellato Messaggio spostato a %s + Messaggio spostato nello spam e utente bloccato Spostamento annullato Password copiata Numero copiato negli appunti @@ -598,6 +599,10 @@ Conversazione spostata in %s Conversazioni spostate in %s + + Conversazione spostata in Spam e utente bloccato + Conversazioni spostate in Spam e utenti bloccati + Promemoria annullato. Il tuo messaggio è tornato nella tua casella di posta Promemoria annullati. I tuoi messaggi sono tornati nella tua casella di posta diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index c695dc6806..83f420fba9 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -572,6 +572,7 @@ Lenke kopiert til utklippstavlen Melding slettet Melding flyttet til %s + Melding flyttet til spam og bruker blokkert Flytting avbrutt Passord kopiert Nummer kopiert til utklippstavlen @@ -598,6 +599,10 @@ Samtale flyttet til %s Samtaler flyttet til %s + + Samtale flyttet til Spam og bruker blokkert + Samtaler flyttet til Spam og brukere blokkert + Påminnelse avbrutt. Meldingen din er tilbake i innboksen Påminnelser avbrutt. Meldingene dine er tilbake i innboksen diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index b678be346c..2e34055ba7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -572,6 +572,7 @@ Link gekopieerd naar het klembord Bericht verwijderd Bericht verplaatst naar %s + Bericht verplaatst naar spam en gebruiker geblokkeerd Verplaatsing geannuleerd Wachtwoord gekopieerd Nummer gekopieerd naar het klembord @@ -598,6 +599,10 @@ Conversatie verplaatst naar %s Conversaties verplaatst naar %s + + Conversatie verplaatst naar Spam en gebruiker geblokkeerd + Conversaties verplaatst naar Spam en gebruikers geblokkeerd + Herinnering geannuleerd. Uw bericht is terug in uw inbox Herinneringen geannuleerd. Uw berichten zijn terug in uw inbox diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index af9d595dde..9675903de0 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -592,6 +592,7 @@ Link skopiowany do schowka Wiadomość usunięta Wiadomość przeniesiona do %s + Wiadomość przeniesiona do spamu i użytkownik zablokowany Przeniesienie anulowane Hasło skopiowane Numer skopiowany do schowka @@ -626,6 +627,12 @@ Konwersacji przeniesionych do %s Konwersacji przeniesionych do %s + + Konwersacja przeniesiona do Spam i użytkownik zablokowany + Konwersacje przeniesione do Spam i użytkownicy zablokowani + Konwersacji przeniesionych do Spam i użytkowników zablokowanych + Konwersacji przeniesionych do Spam i użytkowników zablokowanych + Przypomnienie anulowane. Twoja wiadomość wróciła do skrzynki odbiorczej Przypomnienia anulowane. Twoje wiadomości wróciły do skrzynki odbiorczej diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 30bfc92e3b..fe8c1f96e9 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -572,6 +572,7 @@ Ligação copiada Mensagem eliminada Mensagem movida para %s + Mensagem movida para spam e usuário bloqueado Movimento cancelado Palavra-passe copiada Número copiado @@ -598,6 +599,10 @@ Conversa movida para %s Conversas movidas para %s + + Conversa movida para Spam e utilizador bloqueado + Conversas movidas para Spam e utilizadores bloqueados + Lembrete cancelado. A sua mensagem voltou para a caixa de entrada Lembretes cancelados. As suas mensagens voltaram para a caixa de entrada diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index fea697360a..52f58aad94 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -572,6 +572,7 @@ Länk kopierad till urklipp Meddelande raderat Meddelande flyttat till %s + Meddelande flyttat till skräppost och användare blockerad Flytt avbruten Lösenord kopierat Nummer kopierat till urklipp @@ -598,6 +599,10 @@ Konversationen flyttades till %s Konversationerna flyttades till %s + + Konversationen flyttades till skräppost och användaren blockerades + Konversationerna flyttades till skräppost och användarna blockerades + Påminnelsen har avbrutits. Ditt meddelande är tillbaka i din inkorg Påminnelserna har avbrutits. Dina meddelanden är tillbaka i din inkorg diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d035ece8e3..cc48059a60 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -577,6 +577,7 @@ Link copied to clipboard Message deleted Message moved to %s + Message moved to Spam and user blocked Move cancelled Password copied Number copied to clipboard @@ -603,6 +604,10 @@ Conversation moved to %s Conversations moved to %s + + Conversation moved to Spam and user blocked + Conversations moved to Spam and users blocked + Reminder canceled. Your message is back in your inbox Reminders canceled. Your messages are back in your inbox From 7ba0c08ae6c4d6aef5b30e258263710685a703bb Mon Sep 17 00:00:00 2001 From: Sol Rubado Date: Mon, 27 Apr 2026 11:48:49 +0200 Subject: [PATCH 2/4] feat: Improve move to spam snackbar --- .../java/com/infomaniak/mail/ui/MainViewModel.kt | 15 +++++++++++++-- app/src/main/res/values-pt/strings.xml | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt index cf4ea703cc..433b73ac8d 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt @@ -962,11 +962,12 @@ class MainViewModel @Inject constructor( ) { val destination = destinationFolder.getLocalizedName(appContext) + val isSpam = destinationFolder.role == FolderRole.SPAM val snackbarTitle = when { apiResponses.allFailed() -> appContext.getString(apiResponses.first().translateError()) - message == null -> appContext.resources.getQuantityString(R.plurals.snackbarThreadMoved, threads.count(), destination) - else -> appContext.getString(R.string.snackbarMessageMoved, destination) + message == null -> getMoveThreadSnackbarTitle(isSpam, threads, destination) + else -> getMoveMessageSnackbarTitle(isSpam, destination) } val undoResources = apiResponses.mapNotNull { it.data?.undoResource } @@ -985,6 +986,16 @@ class MainViewModel @Inject constructor( snackbarManager.postValue(snackbarTitle, undoData) } + + private fun getMoveThreadSnackbarTitle(isSpam: Boolean, threads: List, destination: String): String { + val stringResource = if (isSpam) R.plurals.snackbarThreadMovedToSpam else R.plurals.snackbarThreadMoved + return appContext.resources.getQuantityString(stringResource, threads.count(), destination) + } + + private fun getMoveMessageSnackbarTitle(isSpam: Boolean, destination: String): String { + val stringResource = if (isSpam) R.string.snackbarMessageMovedToSpam else R.string.snackbarMessageMoved + return appContext.getString(stringResource, destination) + } //endregion //region Archive diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index fe8c1f96e9..42ccb6a9ff 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -572,7 +572,7 @@ Ligação copiada Mensagem eliminada Mensagem movida para %s - Mensagem movida para spam e usuário bloqueado + Mensagem movida para spam e utilizador bloqueado Movimento cancelado Palavra-passe copiada Número copiado From 73d060961f047c981d3b4ea1950d3a99be98f25b Mon Sep 17 00:00:00 2001 From: Sol Rubado Date: Mon, 27 Apr 2026 17:26:56 +0200 Subject: [PATCH 3/4] fix: Don't send destination if it's not required to format string --- .../com/infomaniak/mail/ui/MainViewModel.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt index 433b73ac8d..c2bcb03399 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt @@ -966,7 +966,7 @@ class MainViewModel @Inject constructor( val snackbarTitle = when { apiResponses.allFailed() -> appContext.getString(apiResponses.first().translateError()) - message == null -> getMoveThreadSnackbarTitle(isSpam, threads, destination) + message == null -> getMoveThreadSnackbarTitle(isSpam, threads.count(), destination) else -> getMoveMessageSnackbarTitle(isSpam, destination) } @@ -987,14 +987,20 @@ class MainViewModel @Inject constructor( snackbarManager.postValue(snackbarTitle, undoData) } - private fun getMoveThreadSnackbarTitle(isSpam: Boolean, threads: List, destination: String): String { - val stringResource = if (isSpam) R.plurals.snackbarThreadMovedToSpam else R.plurals.snackbarThreadMoved - return appContext.resources.getQuantityString(stringResource, threads.count(), destination) + private fun getMoveThreadSnackbarTitle(isSpam: Boolean, threadCount: Int, destination: String): String { + return if (isSpam) { + appContext.resources.getQuantityString(R.plurals.snackbarThreadMovedToSpam, threadCount) + } else { + appContext.resources.getQuantityString(R.plurals.snackbarThreadMoved, threadCount, destination) + } } private fun getMoveMessageSnackbarTitle(isSpam: Boolean, destination: String): String { - val stringResource = if (isSpam) R.string.snackbarMessageMovedToSpam else R.string.snackbarMessageMoved - return appContext.getString(stringResource, destination) + return if (isSpam) { + appContext.getString(R.string.snackbarMessageMovedToSpam) + } else { + appContext.getString(R.string.snackbarMessageMoved, destination) + } } //endregion From 86f16ceeb2478dadc8d935d9d4875e61bcde28a9 Mon Sep 17 00:00:00 2001 From: Sol Rubado Date: Tue, 28 Apr 2026 09:45:01 +0200 Subject: [PATCH 4/4] fix: Fix lint error --- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 33000f6450..967b3691eb 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -15,7 +15,7 @@ ~ You should have received a copy of the GNU General Public License ~ along with this program. If not, see . --> - + Bleu Rose Couleur du système diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 42ccb6a9ff..77d6bd51d1 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -15,7 +15,7 @@ ~ You should have received a copy of the GNU General Public License ~ along with this program. If not, see . --> - + Azul Rosa Cor do sistema