From 3db5d8bf68e254132873e68d43cf03c3907804e5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 14 Nov 2023 18:10:26 +0100 Subject: [PATCH] Timeline: render TimelineItemReadMarkerModel --- .../components/TimelineItemVirtualRow.kt | 3 +- .../virtual/TimelineItemReadMarkerView.kt | 64 +++++++++++++++++++ .../src/main/res/values-cs/translations.xml | 1 + .../src/main/res/values-de/translations.xml | 1 + .../src/main/res/values-es/translations.xml | 1 + .../src/main/res/values-fr/translations.xml | 1 + .../src/main/res/values-it/translations.xml | 1 + .../src/main/res/values-ro/translations.xml | 1 + .../src/main/res/values-ru/translations.xml | 1 + .../src/main/res/values-sk/translations.xml | 1 + .../main/res/values-zh-rTW/translations.xml | 1 + .../impl/src/main/res/values/localazy.xml | 1 + .../src/main/res/values-cs/translations.xml | 1 - .../src/main/res/values-de/translations.xml | 1 - .../src/main/res/values-es/translations.xml | 1 - .../src/main/res/values-fr/translations.xml | 1 - .../src/main/res/values-it/translations.xml | 1 - .../src/main/res/values-ro/translations.xml | 1 - .../src/main/res/values-ru/translations.xml | 1 - .../src/main/res/values-sk/translations.xml | 1 - .../main/res/values-zh-rTW/translations.xml | 1 - .../src/main/res/values/localazy.xml | 1 - tools/localazy/config.json | 2 +- 23 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/virtual/TimelineItemReadMarkerView.kt diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemVirtualRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemVirtualRow.kt index 7a476cb8a6..4bf8e5b847 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemVirtualRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemVirtualRow.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.Modifier import io.element.android.features.messages.impl.timeline.session.SessionState import io.element.android.features.messages.impl.timeline.components.virtual.TimelineEncryptedHistoryBannerView import io.element.android.features.messages.impl.timeline.components.virtual.TimelineItemDaySeparatorView +import io.element.android.features.messages.impl.timeline.components.virtual.TimelineItemReadMarkerView import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.virtual.TimelineItemDaySeparatorModel import io.element.android.features.messages.impl.timeline.model.virtual.TimelineItemEncryptedHistoryBannerVirtualModel @@ -34,7 +35,7 @@ fun TimelineItemVirtualRow( ) { when (virtual.model) { is TimelineItemDaySeparatorModel -> TimelineItemDaySeparatorView(virtual.model, modifier) - TimelineItemReadMarkerModel -> return + TimelineItemReadMarkerModel -> TimelineItemReadMarkerView() is TimelineItemEncryptedHistoryBannerVirtualModel -> TimelineEncryptedHistoryBannerView(sessionState, modifier) } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/virtual/TimelineItemReadMarkerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/virtual/TimelineItemReadMarkerView.kt new file mode 100644 index 0000000000..ac58b14e60 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/virtual/TimelineItemReadMarkerView.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.timeline.components.virtual + +import androidx.compose.foundation.layout.Arrangement.spacedBy +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import io.element.android.features.messages.impl.R +import io.element.android.libraries.designsystem.preview.ElementPreview +import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.theme.components.HorizontalDivider +import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.theme.ElementTheme + +@Composable +internal fun TimelineItemReadMarkerView( + modifier: Modifier = Modifier +) { + Column( + modifier = modifier + .fillMaxWidth() + .padding(vertical = 12.dp, horizontal = 18.dp), + horizontalAlignment = Alignment.End, + verticalArrangement = spacedBy(4.dp), + ) { + Text( + text = stringResource(id = R.string.room_timeline_read_marker_title).uppercase(), + style = ElementTheme.typography.fontBodySmMedium, + color = ElementTheme.colors.textSecondary, + ) + HorizontalDivider( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 2.dp), + color = ElementTheme.colors.borderInteractivePrimary, + ) + } +} + +@PreviewsDayNight +@Composable +internal fun TimelineItemReadMarkerViewPreview() = ElementPreview { + TimelineItemReadMarkerView() +} diff --git a/features/messages/impl/src/main/res/values-cs/translations.xml b/features/messages/impl/src/main/res/values-cs/translations.xml index 4d5ce6f4b6..d8231ab1ee 100644 --- a/features/messages/impl/src/main/res/values-cs/translations.xml +++ b/features/messages/impl/src/main/res/values-cs/translations.xml @@ -17,6 +17,7 @@ "Důvod nahlášení tohoto obsahu" "Toto je začátek %1$s." "Toto je začátek této konverzace." + "Nové" "Informujte celou místnost" "Zaškrtněte, pokud chcete skrýt všechny aktuální a budoucí zprávy od tohoto uživatele" "Fotoaparát" diff --git a/features/messages/impl/src/main/res/values-de/translations.xml b/features/messages/impl/src/main/res/values-de/translations.xml index 0766f80ee0..16580c21c5 100644 --- a/features/messages/impl/src/main/res/values-de/translations.xml +++ b/features/messages/impl/src/main/res/values-de/translations.xml @@ -16,6 +16,7 @@ "Grund für die Meldung dieses Inhalts" "Dies ist der Anfang von %1$s." "Dies ist der Anfang dieses Gesprächs." + "Neu" "Prüfe, ob du alle aktuellen und zukünftigen Nachrichten dieses Benutzers ausblenden möchtest" "Kamera" "Foto machen" diff --git a/features/messages/impl/src/main/res/values-es/translations.xml b/features/messages/impl/src/main/res/values-es/translations.xml index fec3f48ccf..493fdb7ad7 100644 --- a/features/messages/impl/src/main/res/values-es/translations.xml +++ b/features/messages/impl/src/main/res/values-es/translations.xml @@ -16,6 +16,7 @@ "Motivo para denunciar este contenido" "Este es el principio de %1$s." "Este es el principio de esta conversación." + "Nuevos" "Marque si quieres ocultar todos los mensajes actuales y futuros de este usuario" "Bloquear usuario" diff --git a/features/messages/impl/src/main/res/values-fr/translations.xml b/features/messages/impl/src/main/res/values-fr/translations.xml index 0cbd8b7b66..2c9ab7574c 100644 --- a/features/messages/impl/src/main/res/values-fr/translations.xml +++ b/features/messages/impl/src/main/res/values-fr/translations.xml @@ -16,6 +16,7 @@ "Raison du signalement de ce contenu" "Ceci est le début de %1$s." "Ceci est le début de cette conversation." + "Nouveau" "Notifier tout le salon" "Cochez si vous souhaitez masquer tous les messages actuels et futurs de cet utilisateur." "Appareil photo" diff --git a/features/messages/impl/src/main/res/values-it/translations.xml b/features/messages/impl/src/main/res/values-it/translations.xml index acafb0e8d6..c36e8c515c 100644 --- a/features/messages/impl/src/main/res/values-it/translations.xml +++ b/features/messages/impl/src/main/res/values-it/translations.xml @@ -16,6 +16,7 @@ "Motivo della segnalazione di questo contenuto" "Questo è l\'inizio di %1$s." "Questo è l\'inizio della conversazione." + "Nuovo" "Seleziona se vuoi nascondere tutti i messaggi attuali e futuri di questo utente" "Blocca utente" diff --git a/features/messages/impl/src/main/res/values-ro/translations.xml b/features/messages/impl/src/main/res/values-ro/translations.xml index 98eec0cc69..c15a465976 100644 --- a/features/messages/impl/src/main/res/values-ro/translations.xml +++ b/features/messages/impl/src/main/res/values-ro/translations.xml @@ -17,6 +17,7 @@ "Motivul raportării acestui conținut" "Acesta este începutul conversației %1$s." "Acesta este începutul acestei conversații." + "Nou" "Confirmați că doriți să ascundeți toate mesajele curente și viitoare de la acest utilizator" "Cameră foto" "Faceți o fotografie" diff --git a/features/messages/impl/src/main/res/values-ru/translations.xml b/features/messages/impl/src/main/res/values-ru/translations.xml index 76b0c9cfe1..a1ce610568 100644 --- a/features/messages/impl/src/main/res/values-ru/translations.xml +++ b/features/messages/impl/src/main/res/values-ru/translations.xml @@ -17,6 +17,7 @@ "Причина, по которой вы пожаловались на этот контент" "Это начало %1$s." "Это начало разговора." + "Новый" "Уведомить всю комнату" "Отметьте, хотите ли вы скрыть все текущие и будущие сообщения от этого пользователя" "Камера" diff --git a/features/messages/impl/src/main/res/values-sk/translations.xml b/features/messages/impl/src/main/res/values-sk/translations.xml index 3d81d4eabc..fd7efc1200 100644 --- a/features/messages/impl/src/main/res/values-sk/translations.xml +++ b/features/messages/impl/src/main/res/values-sk/translations.xml @@ -17,6 +17,7 @@ "Dôvod nahlásenia tohto obsahu" "Toto je začiatok %1$s." "Toto je začiatok tejto konverzácie." + "Nové" "Informovať celú miestnosť" "Označte, či chcete skryť všetky aktuálne a budúce správy od tohto používateľa" "Kamera" diff --git a/features/messages/impl/src/main/res/values-zh-rTW/translations.xml b/features/messages/impl/src/main/res/values-zh-rTW/translations.xml index 9eb7664c47..4f22c5bb7a 100644 --- a/features/messages/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/messages/impl/src/main/res/values-zh-rTW/translations.xml @@ -12,6 +12,7 @@ "%1$d 個聊天室變更" "檢舉這個內容的原因" + "新訊息" "照相機" "拍照" "錄影" diff --git a/features/messages/impl/src/main/res/values/localazy.xml b/features/messages/impl/src/main/res/values/localazy.xml index b95a341b36..d9c5fce030 100644 --- a/features/messages/impl/src/main/res/values/localazy.xml +++ b/features/messages/impl/src/main/res/values/localazy.xml @@ -16,6 +16,7 @@ "Reason for reporting this content" "This is the beginning of %1$s." "This is the beginning of this conversation." + "New" "Notify the whole room" "Check if you want to hide all current and future messages from this user" "Camera" diff --git a/libraries/ui-strings/src/main/res/values-cs/translations.xml b/libraries/ui-strings/src/main/res/values-cs/translations.xml index 4bcdb258a6..9889bf4697 100644 --- a/libraries/ui-strings/src/main/res/values-cs/translations.xml +++ b/libraries/ui-strings/src/main/res/values-cs/translations.xml @@ -209,7 +209,6 @@ "%d hlasů" "Zatřeste zařízením pro nahlášení chyby" - "Nové" "Výběr média se nezdařil, zkuste to prosím znovu." "Nahrání média se nezdařilo, zkuste to prosím znovu." "Nahrání média se nezdařilo, zkuste to prosím znovu." diff --git a/libraries/ui-strings/src/main/res/values-de/translations.xml b/libraries/ui-strings/src/main/res/values-de/translations.xml index 09fdba6432..e473e6efb9 100644 --- a/libraries/ui-strings/src/main/res/values-de/translations.xml +++ b/libraries/ui-strings/src/main/res/values-de/translations.xml @@ -175,7 +175,6 @@ "%d Stimmen" "Schüttel heftig zum Melden von Fehlern" - "Neu" "Medienauswahl fehlgeschlagen, bitte versuche es erneut." "Fehler beim Verarbeiten des hochgeladenen Mediums. Bitte versuche es erneut." "Das Hochladen der Medien ist fehlgeschlagen. Bitte versuche es erneut." diff --git a/libraries/ui-strings/src/main/res/values-es/translations.xml b/libraries/ui-strings/src/main/res/values-es/translations.xml index 9b2c35a63b..eaab1988d5 100644 --- a/libraries/ui-strings/src/main/res/values-es/translations.xml +++ b/libraries/ui-strings/src/main/res/values-es/translations.xml @@ -105,7 +105,6 @@ "%1$d miembros" "Agitar con fuerza para informar de un error" - "Nuevos" "Versión: %1$s (%2$s)" "es" "Error" diff --git a/libraries/ui-strings/src/main/res/values-fr/translations.xml b/libraries/ui-strings/src/main/res/values-fr/translations.xml index 39f2c116d2..ac67487989 100644 --- a/libraries/ui-strings/src/main/res/values-fr/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fr/translations.xml @@ -202,7 +202,6 @@ "%d votes" "Rageshake pour signaler un problème" - "Nouveau" "Échec de la sélection du média, veuillez réessayer." "Échec du traitement des médias à télécharger, veuillez réessayer." "Échec du téléchargement du média, veuillez réessayer." diff --git a/libraries/ui-strings/src/main/res/values-it/translations.xml b/libraries/ui-strings/src/main/res/values-it/translations.xml index a49e6c7d37..cfd24d7c08 100644 --- a/libraries/ui-strings/src/main/res/values-it/translations.xml +++ b/libraries/ui-strings/src/main/res/values-it/translations.xml @@ -105,7 +105,6 @@ "%1$d membri" "Scuoti per segnalare un problema" - "Nuovo" "Versione: %1$s (%2$s)" "it" "Errore" diff --git a/libraries/ui-strings/src/main/res/values-ro/translations.xml b/libraries/ui-strings/src/main/res/values-ro/translations.xml index 7fbb5a322a..cddf19ae13 100644 --- a/libraries/ui-strings/src/main/res/values-ro/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ro/translations.xml @@ -159,7 +159,6 @@ "%d voturi" "Rageshake pentru a raporta erori" - "Nou" "Selectarea fișierelor media a eșuat, încercați din nou." "Procesarea datelor media a eșuat, vă rugăm să încercați din nou." "Încărcarea fișierelor media a eșuat, încercați din nou." diff --git a/libraries/ui-strings/src/main/res/values-ru/translations.xml b/libraries/ui-strings/src/main/res/values-ru/translations.xml index 5b105c8372..309e463faf 100644 --- a/libraries/ui-strings/src/main/res/values-ru/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ru/translations.xml @@ -209,7 +209,6 @@ "%d голосов" "Rageshake сообщит об ошибке" - "Новый" "Не удалось выбрать носитель, попробуйте еще раз." "Не удалось обработать медиафайл для загрузки, попробуйте еще раз." "Не удалось загрузить медиафайлы, попробуйте еще раз." diff --git a/libraries/ui-strings/src/main/res/values-sk/translations.xml b/libraries/ui-strings/src/main/res/values-sk/translations.xml index f7a28ddc50..0ccbab9cb8 100644 --- a/libraries/ui-strings/src/main/res/values-sk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sk/translations.xml @@ -209,7 +209,6 @@ "%d hlasov" "Zúrivo potriasť pre nahlásenie chyby" - "Nové" "Nepodarilo sa vybrať médium, skúste to prosím znova." "Nepodarilo sa spracovať médiá na odoslanie, skúste to prosím znova." "Nepodarilo sa nahrať médiá, skúste to prosím znova." diff --git a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml index d86a2b0265..6f6fa08892 100644 --- a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml @@ -167,7 +167,6 @@ "%d 票" - "新訊息" "無法上傳媒體檔案,請稍後再試。" "分享位置" "分享我的位置" diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index 63909fe9ca..6eb51a87c8 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -206,7 +206,6 @@ "%d votes" "Rageshake to report bug" - "New" "Failed selecting media, please try again." "Failed processing media to upload, please try again." "Failed uploading media, please try again." diff --git a/tools/localazy/config.json b/tools/localazy/config.json index 95cf40d76f..86ed61ec78 100644 --- a/tools/localazy/config.json +++ b/tools/localazy/config.json @@ -125,7 +125,7 @@ "screen_room_.*", "screen\\.room\\..*", "screen_dm_details_.*", - "room_timeline_state_changes", + "room_timeline_.*", "emoji_picker_category_.*", ".*report_content_.*" ],