Browse Source

Move RoomLastMessageFormatter and related class and resource to the new module `eventformatter`, in order to prepare rendering of state event in the timeline.

feature/jme/open-room-member-details-when-clicking-on-user-data
Benoit Marty 1 year ago committed by Benoit Marty
parent
commit
9d66af834d
  1. 1
      features/createroom/impl/src/main/res/values-de/translations.xml
  2. 4
      features/login/impl/src/main/res/values-de/translations.xml
  3. 2
      features/roomdetails/impl/src/main/res/values-de/translations.xml
  4. 2
      features/roomlist/impl/build.gradle.kts
  5. 1
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt
  6. 36
      features/roomlist/impl/src/main/res/values-de/translations.xml
  7. 54
      features/roomlist/impl/src/main/res/values-es/translations.xml
  8. 54
      features/roomlist/impl/src/main/res/values-it/translations.xml
  9. 54
      features/roomlist/impl/src/main/res/values-ro/translations.xml
  10. 54
      features/roomlist/impl/src/main/res/values/localazy.xml
  11. 1
      features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt
  12. 27
      libraries/eventformatter/api/build.gradle.kts
  13. 2
      libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLastMessageFormatter.kt
  14. 49
      libraries/eventformatter/impl/build.gradle.kts
  15. 3
      libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLastMessageFormatter.kt
  16. 39
      libraries/eventformatter/impl/src/main/res/values-de/translations.xml
  17. 57
      libraries/eventformatter/impl/src/main/res/values-es/translations.xml
  18. 57
      libraries/eventformatter/impl/src/main/res/values-it/translations.xml
  19. 57
      libraries/eventformatter/impl/src/main/res/values-ro/translations.xml
  20. 57
      libraries/eventformatter/impl/src/main/res/values/localazy.xml
  21. 2
      libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLastMessageFormatterTests.kt
  22. 28
      libraries/eventformatter/test/build.gradle.kts
  23. 3
      libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLastMessageFormatter.kt
  24. 5
      libraries/push/impl/src/main/res/values-de/translations.xml
  25. 3
      libraries/ui-strings/src/main/res/values-de/translations.xml
  26. 1
      plugins/src/main/kotlin/extension/DependencyHandleScope.kt
  27. 1
      samples/minimal/build.gradle.kts
  28. 2
      samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt
  29. 7
      tools/localazy/config.json

1
features/createroom/impl/src/main/res/values-de/translations.xml

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="screen_create_room_action_create_room">"Neuer Raum"</string>
<string name="screen_create_room_action_invite_people">"Personen einladen"</string>
<string name="screen_create_room_add_people_title">"Personen hinzufügen"</string>
<string name="screen_create_room_private_option_title">"Privater Raum (nur auf Einladung)"</string>
<string name="screen_create_room_room_name_label">"Raumname"</string>

4
features/login/impl/src/main/res/values-de/translations.xml

@ -1,5 +1,9 @@ @@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="screen_change_server_error_invalid_homeserver">"Wir konnten diesen Homeserver nicht erreichen. Bitte überprüfen Sie, ob Sie die Homeserver-URL korrekt eingegeben haben. Wenn die URL korrekt ist, wenden Sie sich an Ihren Homeserver-Administrator, um weitere Hilfe zu erhalten."</string>
<string name="screen_change_server_error_no_sliding_sync_message">"Dieser Server unterstützt derzeit kein Sliding Sync."</string>
<string name="screen_change_server_form_header">"Homeserver-URL"</string>
<string name="screen_change_server_form_notice">"Sie können nur eine Verbindung zu einem vorhandenen Server herstellen, der Sliding Sync unterstützt. Ihr Homeserver-Administrator muss dies konfigurieren. %1$s"</string>
<string name="screen_change_server_subtitle">"Wie lautet die Adresse deines Servers?"</string>
<string name="screen_login_title">"Willkommen zurück!"</string>
<string name="screen_login_password_hint">"Passwort"</string>

2
features/roomdetails/impl/src/main/res/values-de/translations.xml

@ -4,11 +4,13 @@ @@ -4,11 +4,13 @@
<item quantity="one">"1 Person"</item>
<item quantity="other">"%1$d Personen"</item>
</plurals>
<string name="screen_room_details_already_invited">"Bereits eingeladen"</string>
<string name="screen_room_details_share_room_title">"Raum teilen"</string>
<string name="screen_dm_details_block_alert_action">"Blockieren"</string>
<string name="screen_dm_details_block_user">"Nutzer blockieren"</string>
<string name="screen_dm_details_unblock_alert_action">"Blockierung aufheben"</string>
<string name="screen_dm_details_unblock_user">"Nutzer entblockieren"</string>
<string name="screen_room_details_invite_people_title">"Personen einladen"</string>
<string name="screen_room_details_leave_room_title">"Raum verlassen"</string>
<string name="screen_room_details_security_title">"Sicherheit"</string>
<string name="screen_room_details_topic_title">"Thema"</string>

2
features/roomlist/impl/build.gradle.kts

@ -48,6 +48,7 @@ dependencies { @@ -48,6 +48,7 @@ dependencies {
implementation(projects.libraries.testtags)
implementation(projects.libraries.uiStrings)
implementation(projects.libraries.dateformatter.api)
implementation(projects.libraries.eventformatter.api)
implementation(projects.features.invitelist.api)
implementation(projects.features.networkmonitor.api)
implementation(projects.features.leaveroom.api)
@ -63,6 +64,7 @@ dependencies { @@ -63,6 +64,7 @@ dependencies {
testImplementation(libs.test.robolectric)
testImplementation(projects.libraries.matrix.test)
testImplementation(projects.libraries.dateformatter.test)
testImplementation(projects.libraries.eventformatter.test)
testImplementation(projects.libraries.permissions.noop)
testImplementation(projects.features.invitelist.test)
testImplementation(projects.features.networkmonitor.test)

1
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt

@ -39,6 +39,7 @@ import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormat @@ -39,6 +39,7 @@ import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormat
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
import io.element.android.libraries.designsystem.utils.handleSnackbarMessage
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.UserId

36
features/roomlist/impl/src/main/res/values-de/translations.xml

@ -1,40 +1,4 @@ @@ -1,40 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="screen_roomlist_main_space_title">"Alle Chats"</string>
<string name="state_event_avatar_changed_too">"(Avatar wurde ebenfalls geändert)"</string>
<string name="state_event_avatar_url_changed">"%1$s hat seinen Avatar geändert"</string>
<string name="state_event_avatar_url_changed_by_you">"Du hast deinen Avatar geändert"</string>
<string name="state_event_display_name_changed_from">"%1$s hat den Anzeigenamen von %2$s in %3$s geändert"</string>
<string name="state_event_display_name_changed_from_by_you">"Du hast deinen Anzeigenamen von %1$s in %2$s geändert"</string>
<string name="state_event_display_name_removed">"%1$s hat den Anzeigenamen entfernt (war %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Du hast deinen Anzeigenamen entfernt (war %1$s)"</string>
<string name="state_event_display_name_set">"%1$s hat den Anzeigenamen auf %2$s gesetzt"</string>
<string name="state_event_display_name_set_by_you">"Du hast deinen Anzeigenamen auf %1$s gesetzt"</string>
<string name="state_event_room_avatar_changed">"%1$s hat den Raum-Avatar geändert"</string>
<string name="state_event_room_avatar_changed_by_you">"Du hast den Raum-Avatar geändert"</string>
<string name="state_event_room_avatar_removed">"%1$s hat den Raum-Avatar entfernt"</string>
<string name="state_event_room_created">"%1$s hat den Raum erstellt"</string>
<string name="state_event_room_created_by_you">"Du hast den Raum erstellt"</string>
<string name="state_event_room_invite">"%1$s hat %2$s eingeladen"</string>
<string name="state_event_room_invite_accepted">"%1$s hat die Einladung angenommen"</string>
<string name="state_event_room_invite_accepted_by_you">"Du hast die Einladung angenommen"</string>
<string name="state_event_room_invite_by_you">"Du hast %1$s eingeladen"</string>
<string name="state_event_room_invite_you">"%1$s hat dich eingeladen"</string>
<string name="state_event_room_join">"%1$s ist dem Raum beigetreten"</string>
<string name="state_event_room_join_by_you">"Du bist dem Raum beigetreten"</string>
<string name="state_event_room_knock_denied_you">"%1$s hat deine Beitrittsanfrage abgelehnt"</string>
<string name="state_event_room_leave">"%1$s hat den Raum verlassen"</string>
<string name="state_event_room_leave_by_you">"Du hast den Raum verlassen"</string>
<string name="state_event_room_name_changed">"%1$s hat den Raumnamen geändert in: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Sie haben den Raumnamen geändert in: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s hat den Raumnamen entfernt"</string>
<string name="state_event_room_name_removed_by_you">"Du hast den Raumnamen entfernt"</string>
<string name="state_event_room_reject">"%1$s hat die Einladung abgelehnt"</string>
<string name="state_event_room_reject_by_you">"Du hast die Einladung abgelehnt"</string>
<string name="state_event_room_remove">"%1$s hat %2$s entfernt"</string>
<string name="state_event_room_remove_by_you">"Du hast %1$s entfernt"</string>
<string name="state_event_room_topic_changed">"%1$s hat das Thema geändert zu: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Sie haben das Thema geändert zu: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s hat das Raumthema entfernt"</string>
<string name="state_event_room_topic_removed_by_you">"Du hast das Raumthema entfernt"</string>
</resources>

54
features/roomlist/impl/src/main/res/values-es/translations.xml

@ -4,58 +4,4 @@ @@ -4,58 +4,4 @@
<string name="screen_roomlist_main_space_title">"Todos los chats"</string>
<string name="session_verification_banner_message">"Parece que estás usando un nuevo dispositivo. Verifica que eres tú para acceder a tus mensajes cifrados."</string>
<string name="session_verification_banner_title">"Accede a tu historial de mensajes"</string>
<string name="state_event_avatar_changed_too">"(el avatar también cambió)"</string>
<string name="state_event_avatar_url_changed">"%1$s cambió su avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"Cambiaste tu avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s cambió su nombre de %2$s a %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"Cambiaste tu nombre de %1$s a %2$s"</string>
<string name="state_event_display_name_removed">"%1$s eliminó su nombre (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Eliminaste tu nombre (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s cambió su nombre a %2$s"</string>
<string name="state_event_display_name_set_by_you">"Cambiaste tu nombre a %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s cambió el avatar de la sala"</string>
<string name="state_event_room_avatar_changed_by_you">"Cambiaste el avatar de la sala"</string>
<string name="state_event_room_avatar_removed">"%1$s eliminó el avatar de la sala"</string>
<string name="state_event_room_avatar_removed_by_you">"Eliminaste el avatar de la sala"</string>
<string name="state_event_room_ban">"%1$s expulsó permanentemente a %2$s"</string>
<string name="state_event_room_ban_by_you">"Expulsaste permanentemente a %1$s"</string>
<string name="state_event_room_created">"%1$s creó la sala"</string>
<string name="state_event_room_created_by_you">"Tú creaste la sala"</string>
<string name="state_event_room_invite">"%1$s invitó a %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s aceptó la invitación"</string>
<string name="state_event_room_invite_accepted_by_you">"Aceptaste la invitación"</string>
<string name="state_event_room_invite_by_you">"Invitaste a %1$s"</string>
<string name="state_event_room_invite_you">"%1$s te invitó."</string>
<string name="state_event_room_join">"%1$s se unió a la sala"</string>
<string name="state_event_room_join_by_you">"Te uniste a la sala"</string>
<string name="state_event_room_knock">"%1$s solicitó unirse"</string>
<string name="state_event_room_knock_accepted">"%1$s permitió que %2$s se uniera"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s te permitió unirte"</string>
<string name="state_event_room_knock_by_you">"Solicitaste unirte"</string>
<string name="state_event_room_knock_denied">"%1$s rechazó la solicitud de %2$s para unirse"</string>
<string name="state_event_room_knock_denied_by_you">"Rechazaste la solicitud de %1$s para unirte"</string>
<string name="state_event_room_knock_denied_you">"%1$s rechazó su solicitud para unirte"</string>
<string name="state_event_room_knock_retracted">"%1$s ya no está interesado en unirse"</string>
<string name="state_event_room_knock_retracted_by_you">"Cancelaste tu solicitud de unirte"</string>
<string name="state_event_room_leave">"%1$s salió de la sala"</string>
<string name="state_event_room_leave_by_you">"Saliste de la sala"</string>
<string name="state_event_room_name_changed">"%1$s cambió el nombre de la sala a: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Cambiaste el nombre de la sala a: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s eliminó el nombre de la sala"</string>
<string name="state_event_room_name_removed_by_you">"Eliminaste el nombre de la sala"</string>
<string name="state_event_room_reject">"%1$s rechazó la invitación"</string>
<string name="state_event_room_reject_by_you">"Rechazaste la invitación"</string>
<string name="state_event_room_remove">"%1$s echó a %2$s"</string>
<string name="state_event_room_remove_by_you">"Echaste a %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s envió una invitación a %2$s para unirse a la sala"</string>
<string name="state_event_room_third_party_invite_by_you">"Enviaste una invitación a %1$s para unirse a la sala"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s revocó la invitación a %2$s para unirse a la sala"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Revocaste la invitación de %1$s para unirse a la sala"</string>
<string name="state_event_room_topic_changed">"%1$s cambió el tema a: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Cambiaste el tema a: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s eliminó el tema de la sala"</string>
<string name="state_event_room_topic_removed_by_you">"Eliminaste el tema de la sala"</string>
<string name="state_event_room_unban">"%1$s readmitió a %2$s"</string>
<string name="state_event_room_unban_by_you">"Readmitiste a %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s realizó un cambio desconocido en su membresía"</string>
</resources>

54
features/roomlist/impl/src/main/res/values-it/translations.xml

@ -4,58 +4,4 @@ @@ -4,58 +4,4 @@
<string name="screen_roomlist_main_space_title">"Tutte le conversazioni"</string>
<string name="session_verification_banner_message">"Sembra che tu stia utilizzando un nuovo dispositivo. Verifica di essere tu per accedere ai tuoi messaggi crittografati."</string>
<string name="session_verification_banner_title">"Accedi alla cronologia dei messaggi"</string>
<string name="state_event_avatar_changed_too">"(anche l\'avatar è stato cambiato)"</string>
<string name="state_event_avatar_url_changed">"%1$s ha cambiato il proprio avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"Hai cambiato il tuo avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s ha cambiato il proprio nome visualizzato da %2$s a %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"Hai cambiato il tuo nome visualizzato da %1$s a %2$s"</string>
<string name="state_event_display_name_removed">"%1$s ha rimosso il proprio nome visualizzato (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Hai rimosso il tuo nome visualizzato (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s ha impostato il proprio nome visualizzato su %2$s"</string>
<string name="state_event_display_name_set_by_you">"Hai impostato il tuo nome visualizzato su %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s ha cambiato l\'avatar della stanza"</string>
<string name="state_event_room_avatar_changed_by_you">"Hai cambiato l\'avatar della stanza"</string>
<string name="state_event_room_avatar_removed">"%1$s ha rimosso l\'avatar della stanza"</string>
<string name="state_event_room_avatar_removed_by_you">"Hai rimosso l\'avatar della stanza"</string>
<string name="state_event_room_ban">"%1$s ha rimosso %2$s"</string>
<string name="state_event_room_ban_by_you">"Hai rimosso %1$s"</string>
<string name="state_event_room_created">"%1$s ha creato la stanza"</string>
<string name="state_event_room_created_by_you">"Hai creato la stanza"</string>
<string name="state_event_room_invite">"%1$s ha invitato %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s ha accettato l\'invito"</string>
<string name="state_event_room_invite_accepted_by_you">"Hai accettato l\'invito"</string>
<string name="state_event_room_invite_by_you">"Hai invitato %1$s"</string>
<string name="state_event_room_invite_you">"%1$s ti ha invitato"</string>
<string name="state_event_room_join">"%1$s si è unito alla stanza"</string>
<string name="state_event_room_join_by_you">"Ti sei unito alla stanza"</string>
<string name="state_event_room_knock">"%1$s ha chiesto di unirsi"</string>
<string name="state_event_room_knock_accepted">"%1$s ha permesso a %2$s di unirsi"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s ti ha permesso di unirti"</string>
<string name="state_event_room_knock_by_you">"Hai richiesto di unirti"</string>
<string name="state_event_room_knock_denied">"%1$s ha rifiutato la richiesta di unirsi di %2$s"</string>
<string name="state_event_room_knock_denied_by_you">"Hai rifiutato la richiesta di unirsi di %1$s"</string>
<string name="state_event_room_knock_denied_you">"%1$s ha rifiutato la tua richiesta di unirti"</string>
<string name="state_event_room_knock_retracted">"%1$s non è più interessato a partecipare"</string>
<string name="state_event_room_knock_retracted_by_you">"Hai annullato la tua richiesta di unirti"</string>
<string name="state_event_room_leave">"%1$s ha lasciato la stanza"</string>
<string name="state_event_room_leave_by_you">"Hai lasciato la stanza"</string>
<string name="state_event_room_name_changed">"%1$s ha cambiato il nome della stanza in: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Hai cambiato il nome della stanza in: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s ha rimosso il nome della stanza"</string>
<string name="state_event_room_name_removed_by_you">"Hai rimosso il nome della stanza"</string>
<string name="state_event_room_reject">"%1$s ha rifiutato l\'invito"</string>
<string name="state_event_room_reject_by_you">"Hai rifiutato l\'invito"</string>
<string name="state_event_room_remove">"%1$s ha rimosso %2$s"</string>
<string name="state_event_room_remove_by_you">"Hai rimosso %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s ha inviato un invito a %2$s per unirsi alla stanza"</string>
<string name="state_event_room_third_party_invite_by_you">"Hai inviato un invito a %1$s per unirsi alla stanza"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s ha revocato l\'invito di %2$s ad unirsi alla stanza."</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Hai revocato l\'invito a %1$s a universi alla stanza"</string>
<string name="state_event_room_topic_changed">"%1$s ha cambiato l\'oggetto in: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Hai cambiato l\'oggetto in: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s ha rimosso l\'oggetto della stanza"</string>
<string name="state_event_room_topic_removed_by_you">"Hai rimosso l\'oggetto della stanza"</string>
<string name="state_event_room_unban">"%1$s ha sbloccato %2$s"</string>
<string name="state_event_room_unban_by_you">"Hai sbloccato %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s ha apportato una modifica sconosciuta alla propria iscrizione"</string>
</resources>

54
features/roomlist/impl/src/main/res/values-ro/translations.xml

@ -4,58 +4,4 @@ @@ -4,58 +4,4 @@
<string name="screen_roomlist_main_space_title">"Toate conversatiile"</string>
<string name="session_verification_banner_message">"Se pare că folosiți un dispozitiv nou. Verificați-vă identitatea pentru acces la mesajele dumneavoastră criptate."</string>
<string name="session_verification_banner_title">"Accesați istoricul mesajelor"</string>
<string name="state_event_avatar_changed_too">"(s-a schimbat si avatarul)"</string>
<string name="state_event_avatar_url_changed">"%1$s și-a schimbat avatarul"</string>
<string name="state_event_avatar_url_changed_by_you">"V-ați schimbat avatarul"</string>
<string name="state_event_display_name_changed_from">"%1$s și-a schimbat numele din %2$s în %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"V-ați schimbat numele din %1$s în %2$s"</string>
<string name="state_event_display_name_removed">"%1$s și-a sters numele (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"V-ați sters numele (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s și-a schimbat numele %2$s"</string>
<string name="state_event_display_name_set_by_you">"V-ați schimbat numele în %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s a schimbat avatarul camerei"</string>
<string name="state_event_room_avatar_changed_by_you">"Ați schimbat avatarul camerei"</string>
<string name="state_event_room_avatar_removed">"%1$s a șters avatarul camerei"</string>
<string name="state_event_room_avatar_removed_by_you">"Ați șters avatarul camerei"</string>
<string name="state_event_room_ban">"%1$s a adăugat o interdicție pentru %2$s"</string>
<string name="state_event_room_ban_by_you">"Ați adăugat o interdicție pentru %1$s"</string>
<string name="state_event_room_created">"%1$s a creat camera"</string>
<string name="state_event_room_created_by_you">"Ați creat camera"</string>
<string name="state_event_room_invite">"%1$s l-a invitat pe %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s a acceptat invitația"</string>
<string name="state_event_room_invite_accepted_by_you">"Ați acceptat invitația"</string>
<string name="state_event_room_invite_by_you">"L-ați invitat pe %1$s"</string>
<string name="state_event_room_invite_you">"%1$s v-a invitat"</string>
<string name="state_event_room_join">"%1$s a intrat în cameră"</string>
<string name="state_event_room_join_by_you">"Ați intrat în cameră"</string>
<string name="state_event_room_knock">"%1$s a solicitat să se alăture camerei"</string>
<string name="state_event_room_knock_accepted">"%1$s i-a permis lui %2$s să se alăture camerei"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s v-a permis să vă alăturați camerei"</string>
<string name="state_event_room_knock_by_you">"Ați solicitat să vă alăturați camerei"</string>
<string name="state_event_room_knock_denied">"%1$s a respins solicitarea de alăturare a lui %2$s"</string>
<string name="state_event_room_knock_denied_by_you">"Ați respins solicitarea de alăturare a lui %1$s"</string>
<string name="state_event_room_knock_denied_you">"%1$s a respins cererea dumneavoastră de alăturare"</string>
<string name="state_event_room_knock_retracted">"%1$s nu mai este interesat să se alăture camerei"</string>
<string name="state_event_room_knock_retracted_by_you">"Ați anulat cererea de alăturare"</string>
<string name="state_event_room_leave">"%1$s a părăsit camera"</string>
<string name="state_event_room_leave_by_you">"Ați părăsit camera"</string>
<string name="state_event_room_name_changed">"%1$s a schimbat numele camerei în: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Ați schimbat numele camerei în: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s a sters numele camerei"</string>
<string name="state_event_room_name_removed_by_you">"Ați șters numele camerei"</string>
<string name="state_event_room_reject">"%1$s a respins invitația"</string>
<string name="state_event_room_reject_by_you">"Ați respins invitația"</string>
<string name="state_event_room_remove">"%1$s l-a îndepărtat pe %2$s"</string>
<string name="state_event_room_remove_by_you">"L-ați îndepărtat pe %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s a trimis o invitație către %2$s pentru a se alătura camerei"</string>
<string name="state_event_room_third_party_invite_by_you">"Ați trimis o invitație către %1$s pentru a se alătura camerei"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s a revocat invitația pentru %2$s de a se alătura camerei"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Ați revocat invitația pentru %1$s de a se alătura camerei"</string>
<string name="state_event_room_topic_changed">"%1$s a schimbat subiectul în: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Ați schimbat subiectul în: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s a șters subiectul camerei"</string>
<string name="state_event_room_topic_removed_by_you">"Ați șters subiectul camerei"</string>
<string name="state_event_room_unban">"%1$s a anulat interdicția pentru %2$s"</string>
<string name="state_event_room_unban_by_you">"Ați anulat interdicția pentru %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s a făcut o modificare necunoscută asupra calității sale de membru"</string>
</resources>

54
features/roomlist/impl/src/main/res/values/localazy.xml

@ -4,58 +4,4 @@ @@ -4,58 +4,4 @@
<string name="screen_roomlist_main_space_title">"All Chats"</string>
<string name="session_verification_banner_message">"Looks like you’re using a new device. Verify it’s you to access your encrypted messages."</string>
<string name="session_verification_banner_title">"Access your message history"</string>
<string name="state_event_avatar_changed_too">"(avatar was changed too)"</string>
<string name="state_event_avatar_url_changed">"%1$s changed their avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"You changed your avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s changed their display name from %2$s to %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"You changed your display name from %1$s to %2$s"</string>
<string name="state_event_display_name_removed">"%1$s removed their display name (it was %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"You removed your display name (it was %1$s)"</string>
<string name="state_event_display_name_set">"%1$s set their display name to %2$s"</string>
<string name="state_event_display_name_set_by_you">"You set your display name to %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s changed the room avatar"</string>
<string name="state_event_room_avatar_changed_by_you">"You changed the room avatar"</string>
<string name="state_event_room_avatar_removed">"%1$s removed the room avatar"</string>
<string name="state_event_room_avatar_removed_by_you">"You removed the room avatar"</string>
<string name="state_event_room_ban">"%1$s banned %2$s"</string>
<string name="state_event_room_ban_by_you">"You banned %1$s"</string>
<string name="state_event_room_created">"%1$s created the room"</string>
<string name="state_event_room_created_by_you">"You created the room"</string>
<string name="state_event_room_invite">"%1$s invited %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s accepted the invite"</string>
<string name="state_event_room_invite_accepted_by_you">"You accepted the invite"</string>
<string name="state_event_room_invite_by_you">"You invited %1$s"</string>
<string name="state_event_room_invite_you">"%1$s invited you"</string>
<string name="state_event_room_join">"%1$s joined the room"</string>
<string name="state_event_room_join_by_you">"You joined the room"</string>
<string name="state_event_room_knock">"%1$s requested to join"</string>
<string name="state_event_room_knock_accepted">"%1$s allowed %2$s to join"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s allowed you to join"</string>
<string name="state_event_room_knock_by_you">"You requested to join"</string>
<string name="state_event_room_knock_denied">"%1$s rejected %2$s\'s request to join"</string>
<string name="state_event_room_knock_denied_by_you">"You rejected %1$s\'s request to join"</string>
<string name="state_event_room_knock_denied_you">"%1$s rejected your request to join"</string>
<string name="state_event_room_knock_retracted">"%1$s is no longer interested in joining"</string>
<string name="state_event_room_knock_retracted_by_you">"You cancelled your request to join"</string>
<string name="state_event_room_leave">"%1$s left the room"</string>
<string name="state_event_room_leave_by_you">"You left the room"</string>
<string name="state_event_room_name_changed">"%1$s changed the room name to: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"You changed the room name to: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s removed the room name"</string>
<string name="state_event_room_name_removed_by_you">"You removed the room name"</string>
<string name="state_event_room_reject">"%1$s rejected the invitation"</string>
<string name="state_event_room_reject_by_you">"You rejected the invitation"</string>
<string name="state_event_room_remove">"%1$s removed %2$s"</string>
<string name="state_event_room_remove_by_you">"You removed %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s sent an invitation to %2$s to join the room"</string>
<string name="state_event_room_third_party_invite_by_you">"You sent an invitation to %1$s to join the room"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s revoked the invitation for %2$s to join the room"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"You revoked the invitation for %1$s to join the room"</string>
<string name="state_event_room_topic_changed">"%1$s changed the topic to: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"You changed the topic to: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s removed the room topic"</string>
<string name="state_event_room_topic_removed_by_you">"You removed the room topic"</string>
<string name="state_event_room_unban">"%1$s unbanned %2$s"</string>
<string name="state_event_room_unban_by_you">"You unbanned %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s made an unknown change to their membership"</string>
</resources>

1
features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt

@ -29,6 +29,7 @@ import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormat @@ -29,6 +29,7 @@ import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormat
import io.element.android.libraries.dateformatter.test.FakeLastMessageTimestampFormatter
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
import io.element.android.libraries.matrix.test.AN_EXCEPTION

27
libraries/eventformatter/api/build.gradle.kts

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
/*
* Copyright (c) 2022 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.
*/
plugins {
id("io.element.android-library")
}
android {
namespace = "io.element.android.libraries.eventformatter.api"
}
dependencies {
implementation(projects.libraries.matrix.api)
}

2
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomLastMessageFormatter.kt → libraries/eventformatter/api/src/main/kotlin/io/element/android/libraries/eventformatter/api/RoomLastMessageFormatter.kt

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.features.roomlist.impl
package io.element.android.libraries.eventformatter.api
import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem

49
libraries/eventformatter/impl/build.gradle.kts

@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
/*
* 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.
*/
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.eventformatter.impl"
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
}
anvil {
generateDaggerFactories.set(true)
}
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(projects.libraries.architecture)
implementation(projects.libraries.matrix.api)
implementation(projects.libraries.uiStrings)
api(projects.libraries.eventformatter.api)
testImplementation(libs.test.junit)
testImplementation(libs.test.robolectric)
testImplementation(libs.test.truth)
testImplementation(projects.libraries.matrix.test)
}

3
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/DefaultRoomLastMessageFormatter.kt → libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLastMessageFormatter.kt

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.features.roomlist.impl
package io.element.android.libraries.eventformatter.impl
import android.content.Context
import androidx.compose.ui.text.AnnotatedString
@ -49,6 +49,7 @@ import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecry @@ -49,6 +49,7 @@ import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecry
import io.element.android.libraries.matrix.api.timeline.item.event.UnknownContent
import io.element.android.libraries.matrix.api.timeline.item.event.UnknownMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import timber.log.Timber
import javax.inject.Inject
import io.element.android.libraries.ui.strings.R as StringR

39
libraries/eventformatter/impl/src/main/res/values-de/translations.xml

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="state_event_avatar_changed_too">"(Avatar wurde ebenfalls geändert)"</string>
<string name="state_event_avatar_url_changed">"%1$s hat seinen Avatar geändert"</string>
<string name="state_event_avatar_url_changed_by_you">"Du hast deinen Avatar geändert"</string>
<string name="state_event_display_name_changed_from">"%1$s hat den Anzeigenamen von %2$s in %3$s geändert"</string>
<string name="state_event_display_name_changed_from_by_you">"Du hast deinen Anzeigenamen von %1$s in %2$s geändert"</string>
<string name="state_event_display_name_removed">"%1$s hat den Anzeigenamen entfernt (war %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Du hast deinen Anzeigenamen entfernt (war %1$s)"</string>
<string name="state_event_display_name_set">"%1$s hat den Anzeigenamen auf %2$s gesetzt"</string>
<string name="state_event_display_name_set_by_you">"Du hast deinen Anzeigenamen auf %1$s gesetzt"</string>
<string name="state_event_room_avatar_changed">"%1$s hat den Raum-Avatar geändert"</string>
<string name="state_event_room_avatar_changed_by_you">"Du hast den Raum-Avatar geändert"</string>
<string name="state_event_room_avatar_removed">"%1$s hat den Raum-Avatar entfernt"</string>
<string name="state_event_room_created">"%1$s hat den Raum erstellt"</string>
<string name="state_event_room_created_by_you">"Du hast den Raum erstellt"</string>
<string name="state_event_room_invite">"%1$s hat %2$s eingeladen"</string>
<string name="state_event_room_invite_accepted">"%1$s hat die Einladung angenommen"</string>
<string name="state_event_room_invite_accepted_by_you">"Du hast die Einladung angenommen"</string>
<string name="state_event_room_invite_by_you">"Du hast %1$s eingeladen"</string>
<string name="state_event_room_invite_you">"%1$s hat dich eingeladen"</string>
<string name="state_event_room_join">"%1$s ist dem Raum beigetreten"</string>
<string name="state_event_room_join_by_you">"Du bist dem Raum beigetreten"</string>
<string name="state_event_room_knock_denied_you">"%1$s hat deine Beitrittsanfrage abgelehnt"</string>
<string name="state_event_room_leave">"%1$s hat den Raum verlassen"</string>
<string name="state_event_room_leave_by_you">"Du hast den Raum verlassen"</string>
<string name="state_event_room_name_changed">"%1$s hat den Raumnamen geändert in: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Sie haben den Raumnamen geändert in: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s hat den Raumnamen entfernt"</string>
<string name="state_event_room_name_removed_by_you">"Du hast den Raumnamen entfernt"</string>
<string name="state_event_room_reject">"%1$s hat die Einladung abgelehnt"</string>
<string name="state_event_room_reject_by_you">"Du hast die Einladung abgelehnt"</string>
<string name="state_event_room_remove">"%1$s hat %2$s entfernt"</string>
<string name="state_event_room_remove_by_you">"Du hast %1$s entfernt"</string>
<string name="state_event_room_topic_changed">"%1$s hat das Thema geändert zu: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Sie haben das Thema geändert zu: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s hat das Raumthema entfernt"</string>
<string name="state_event_room_topic_removed_by_you">"Du hast das Raumthema entfernt"</string>
</resources>

57
libraries/eventformatter/impl/src/main/res/values-es/translations.xml

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="state_event_avatar_changed_too">"(el avatar también cambió)"</string>
<string name="state_event_avatar_url_changed">"%1$s cambió su avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"Cambiaste tu avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s cambió su nombre de %2$s a %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"Cambiaste tu nombre de %1$s a %2$s"</string>
<string name="state_event_display_name_removed">"%1$s eliminó su nombre (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Eliminaste tu nombre (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s cambió su nombre a %2$s"</string>
<string name="state_event_display_name_set_by_you">"Cambiaste tu nombre a %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s cambió el avatar de la sala"</string>
<string name="state_event_room_avatar_changed_by_you">"Cambiaste el avatar de la sala"</string>
<string name="state_event_room_avatar_removed">"%1$s eliminó el avatar de la sala"</string>
<string name="state_event_room_avatar_removed_by_you">"Eliminaste el avatar de la sala"</string>
<string name="state_event_room_ban">"%1$s expulsó permanentemente a %2$s"</string>
<string name="state_event_room_ban_by_you">"Expulsaste permanentemente a %1$s"</string>
<string name="state_event_room_created">"%1$s creó la sala"</string>
<string name="state_event_room_created_by_you">"Tú creaste la sala"</string>
<string name="state_event_room_invite">"%1$s invitó a %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s aceptó la invitación"</string>
<string name="state_event_room_invite_accepted_by_you">"Aceptaste la invitación"</string>
<string name="state_event_room_invite_by_you">"Invitaste a %1$s"</string>
<string name="state_event_room_invite_you">"%1$s te invitó."</string>
<string name="state_event_room_join">"%1$s se unió a la sala"</string>
<string name="state_event_room_join_by_you">"Te uniste a la sala"</string>
<string name="state_event_room_knock">"%1$s solicitó unirse"</string>
<string name="state_event_room_knock_accepted">"%1$s permitió que %2$s se uniera"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s te permitió unirte"</string>
<string name="state_event_room_knock_by_you">"Solicitaste unirte"</string>
<string name="state_event_room_knock_denied">"%1$s rechazó la solicitud de %2$s para unirse"</string>
<string name="state_event_room_knock_denied_by_you">"Rechazaste la solicitud de %1$s para unirte"</string>
<string name="state_event_room_knock_denied_you">"%1$s rechazó su solicitud para unirte"</string>
<string name="state_event_room_knock_retracted">"%1$s ya no está interesado en unirse"</string>
<string name="state_event_room_knock_retracted_by_you">"Cancelaste tu solicitud de unirte"</string>
<string name="state_event_room_leave">"%1$s salió de la sala"</string>
<string name="state_event_room_leave_by_you">"Saliste de la sala"</string>
<string name="state_event_room_name_changed">"%1$s cambió el nombre de la sala a: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Cambiaste el nombre de la sala a: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s eliminó el nombre de la sala"</string>
<string name="state_event_room_name_removed_by_you">"Eliminaste el nombre de la sala"</string>
<string name="state_event_room_reject">"%1$s rechazó la invitación"</string>
<string name="state_event_room_reject_by_you">"Rechazaste la invitación"</string>
<string name="state_event_room_remove">"%1$s echó a %2$s"</string>
<string name="state_event_room_remove_by_you">"Echaste a %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s envió una invitación a %2$s para unirse a la sala"</string>
<string name="state_event_room_third_party_invite_by_you">"Enviaste una invitación a %1$s para unirse a la sala"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s revocó la invitación a %2$s para unirse a la sala"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Revocaste la invitación de %1$s para unirse a la sala"</string>
<string name="state_event_room_topic_changed">"%1$s cambió el tema a: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Cambiaste el tema a: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s eliminó el tema de la sala"</string>
<string name="state_event_room_topic_removed_by_you">"Eliminaste el tema de la sala"</string>
<string name="state_event_room_unban">"%1$s readmitió a %2$s"</string>
<string name="state_event_room_unban_by_you">"Readmitiste a %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s realizó un cambio desconocido en su membresía"</string>
</resources>

57
libraries/eventformatter/impl/src/main/res/values-it/translations.xml

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="state_event_avatar_changed_too">"(anche l\'avatar è stato cambiato)"</string>
<string name="state_event_avatar_url_changed">"%1$s ha cambiato il proprio avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"Hai cambiato il tuo avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s ha cambiato il proprio nome visualizzato da %2$s a %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"Hai cambiato il tuo nome visualizzato da %1$s a %2$s"</string>
<string name="state_event_display_name_removed">"%1$s ha rimosso il proprio nome visualizzato (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"Hai rimosso il tuo nome visualizzato (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s ha impostato il proprio nome visualizzato su %2$s"</string>
<string name="state_event_display_name_set_by_you">"Hai impostato il tuo nome visualizzato su %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s ha cambiato l\'avatar della stanza"</string>
<string name="state_event_room_avatar_changed_by_you">"Hai cambiato l\'avatar della stanza"</string>
<string name="state_event_room_avatar_removed">"%1$s ha rimosso l\'avatar della stanza"</string>
<string name="state_event_room_avatar_removed_by_you">"Hai rimosso l\'avatar della stanza"</string>
<string name="state_event_room_ban">"%1$s ha rimosso %2$s"</string>
<string name="state_event_room_ban_by_you">"Hai rimosso %1$s"</string>
<string name="state_event_room_created">"%1$s ha creato la stanza"</string>
<string name="state_event_room_created_by_you">"Hai creato la stanza"</string>
<string name="state_event_room_invite">"%1$s ha invitato %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s ha accettato l\'invito"</string>
<string name="state_event_room_invite_accepted_by_you">"Hai accettato l\'invito"</string>
<string name="state_event_room_invite_by_you">"Hai invitato %1$s"</string>
<string name="state_event_room_invite_you">"%1$s ti ha invitato"</string>
<string name="state_event_room_join">"%1$s si è unito alla stanza"</string>
<string name="state_event_room_join_by_you">"Ti sei unito alla stanza"</string>
<string name="state_event_room_knock">"%1$s ha chiesto di unirsi"</string>
<string name="state_event_room_knock_accepted">"%1$s ha permesso a %2$s di unirsi"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s ti ha permesso di unirti"</string>
<string name="state_event_room_knock_by_you">"Hai richiesto di unirti"</string>
<string name="state_event_room_knock_denied">"%1$s ha rifiutato la richiesta di unirsi di %2$s"</string>
<string name="state_event_room_knock_denied_by_you">"Hai rifiutato la richiesta di unirsi di %1$s"</string>
<string name="state_event_room_knock_denied_you">"%1$s ha rifiutato la tua richiesta di unirti"</string>
<string name="state_event_room_knock_retracted">"%1$s non è più interessato a partecipare"</string>
<string name="state_event_room_knock_retracted_by_you">"Hai annullato la tua richiesta di unirti"</string>
<string name="state_event_room_leave">"%1$s ha lasciato la stanza"</string>
<string name="state_event_room_leave_by_you">"Hai lasciato la stanza"</string>
<string name="state_event_room_name_changed">"%1$s ha cambiato il nome della stanza in: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Hai cambiato il nome della stanza in: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s ha rimosso il nome della stanza"</string>
<string name="state_event_room_name_removed_by_you">"Hai rimosso il nome della stanza"</string>
<string name="state_event_room_reject">"%1$s ha rifiutato l\'invito"</string>
<string name="state_event_room_reject_by_you">"Hai rifiutato l\'invito"</string>
<string name="state_event_room_remove">"%1$s ha rimosso %2$s"</string>
<string name="state_event_room_remove_by_you">"Hai rimosso %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s ha inviato un invito a %2$s per unirsi alla stanza"</string>
<string name="state_event_room_third_party_invite_by_you">"Hai inviato un invito a %1$s per unirsi alla stanza"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s ha revocato l\'invito di %2$s ad unirsi alla stanza."</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Hai revocato l\'invito a %1$s a universi alla stanza"</string>
<string name="state_event_room_topic_changed">"%1$s ha cambiato l\'oggetto in: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Hai cambiato l\'oggetto in: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s ha rimosso l\'oggetto della stanza"</string>
<string name="state_event_room_topic_removed_by_you">"Hai rimosso l\'oggetto della stanza"</string>
<string name="state_event_room_unban">"%1$s ha sbloccato %2$s"</string>
<string name="state_event_room_unban_by_you">"Hai sbloccato %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s ha apportato una modifica sconosciuta alla propria iscrizione"</string>
</resources>

57
libraries/eventformatter/impl/src/main/res/values-ro/translations.xml

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="state_event_avatar_changed_too">"(s-a schimbat si avatarul)"</string>
<string name="state_event_avatar_url_changed">"%1$s și-a schimbat avatarul"</string>
<string name="state_event_avatar_url_changed_by_you">"V-ați schimbat avatarul"</string>
<string name="state_event_display_name_changed_from">"%1$s și-a schimbat numele din %2$s în %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"V-ați schimbat numele din %1$s în %2$s"</string>
<string name="state_event_display_name_removed">"%1$s și-a sters numele (era %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"V-ați sters numele (era %1$s)"</string>
<string name="state_event_display_name_set">"%1$s și-a schimbat numele %2$s"</string>
<string name="state_event_display_name_set_by_you">"V-ați schimbat numele în %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s a schimbat avatarul camerei"</string>
<string name="state_event_room_avatar_changed_by_you">"Ați schimbat avatarul camerei"</string>
<string name="state_event_room_avatar_removed">"%1$s a șters avatarul camerei"</string>
<string name="state_event_room_avatar_removed_by_you">"Ați șters avatarul camerei"</string>
<string name="state_event_room_ban">"%1$s a adăugat o interdicție pentru %2$s"</string>
<string name="state_event_room_ban_by_you">"Ați adăugat o interdicție pentru %1$s"</string>
<string name="state_event_room_created">"%1$s a creat camera"</string>
<string name="state_event_room_created_by_you">"Ați creat camera"</string>
<string name="state_event_room_invite">"%1$s l-a invitat pe %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s a acceptat invitația"</string>
<string name="state_event_room_invite_accepted_by_you">"Ați acceptat invitația"</string>
<string name="state_event_room_invite_by_you">"L-ați invitat pe %1$s"</string>
<string name="state_event_room_invite_you">"%1$s v-a invitat"</string>
<string name="state_event_room_join">"%1$s a intrat în cameră"</string>
<string name="state_event_room_join_by_you">"Ați intrat în cameră"</string>
<string name="state_event_room_knock">"%1$s a solicitat să se alăture camerei"</string>
<string name="state_event_room_knock_accepted">"%1$s i-a permis lui %2$s să se alăture camerei"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s v-a permis să vă alăturați camerei"</string>
<string name="state_event_room_knock_by_you">"Ați solicitat să vă alăturați camerei"</string>
<string name="state_event_room_knock_denied">"%1$s a respins solicitarea de alăturare a lui %2$s"</string>
<string name="state_event_room_knock_denied_by_you">"Ați respins solicitarea de alăturare a lui %1$s"</string>
<string name="state_event_room_knock_denied_you">"%1$s a respins cererea dumneavoastră de alăturare"</string>
<string name="state_event_room_knock_retracted">"%1$s nu mai este interesat să se alăture camerei"</string>
<string name="state_event_room_knock_retracted_by_you">"Ați anulat cererea de alăturare"</string>
<string name="state_event_room_leave">"%1$s a părăsit camera"</string>
<string name="state_event_room_leave_by_you">"Ați părăsit camera"</string>
<string name="state_event_room_name_changed">"%1$s a schimbat numele camerei în: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"Ați schimbat numele camerei în: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s a sters numele camerei"</string>
<string name="state_event_room_name_removed_by_you">"Ați șters numele camerei"</string>
<string name="state_event_room_reject">"%1$s a respins invitația"</string>
<string name="state_event_room_reject_by_you">"Ați respins invitația"</string>
<string name="state_event_room_remove">"%1$s l-a îndepărtat pe %2$s"</string>
<string name="state_event_room_remove_by_you">"L-ați îndepărtat pe %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s a trimis o invitație către %2$s pentru a se alătura camerei"</string>
<string name="state_event_room_third_party_invite_by_you">"Ați trimis o invitație către %1$s pentru a se alătura camerei"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s a revocat invitația pentru %2$s de a se alătura camerei"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"Ați revocat invitația pentru %1$s de a se alătura camerei"</string>
<string name="state_event_room_topic_changed">"%1$s a schimbat subiectul în: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"Ați schimbat subiectul în: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s a șters subiectul camerei"</string>
<string name="state_event_room_topic_removed_by_you">"Ați șters subiectul camerei"</string>
<string name="state_event_room_unban">"%1$s a anulat interdicția pentru %2$s"</string>
<string name="state_event_room_unban_by_you">"Ați anulat interdicția pentru %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s a făcut o modificare necunoscută asupra calității sale de membru"</string>
</resources>

57
libraries/eventformatter/impl/src/main/res/values/localazy.xml

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="state_event_avatar_changed_too">"(avatar was changed too)"</string>
<string name="state_event_avatar_url_changed">"%1$s changed their avatar"</string>
<string name="state_event_avatar_url_changed_by_you">"You changed your avatar"</string>
<string name="state_event_display_name_changed_from">"%1$s changed their display name from %2$s to %3$s"</string>
<string name="state_event_display_name_changed_from_by_you">"You changed your display name from %1$s to %2$s"</string>
<string name="state_event_display_name_removed">"%1$s removed their display name (it was %2$s)"</string>
<string name="state_event_display_name_removed_by_you">"You removed your display name (it was %1$s)"</string>
<string name="state_event_display_name_set">"%1$s set their display name to %2$s"</string>
<string name="state_event_display_name_set_by_you">"You set your display name to %1$s"</string>
<string name="state_event_room_avatar_changed">"%1$s changed the room avatar"</string>
<string name="state_event_room_avatar_changed_by_you">"You changed the room avatar"</string>
<string name="state_event_room_avatar_removed">"%1$s removed the room avatar"</string>
<string name="state_event_room_avatar_removed_by_you">"You removed the room avatar"</string>
<string name="state_event_room_ban">"%1$s banned %2$s"</string>
<string name="state_event_room_ban_by_you">"You banned %1$s"</string>
<string name="state_event_room_created">"%1$s created the room"</string>
<string name="state_event_room_created_by_you">"You created the room"</string>
<string name="state_event_room_invite">"%1$s invited %2$s"</string>
<string name="state_event_room_invite_accepted">"%1$s accepted the invite"</string>
<string name="state_event_room_invite_accepted_by_you">"You accepted the invite"</string>
<string name="state_event_room_invite_by_you">"You invited %1$s"</string>
<string name="state_event_room_invite_you">"%1$s invited you"</string>
<string name="state_event_room_join">"%1$s joined the room"</string>
<string name="state_event_room_join_by_you">"You joined the room"</string>
<string name="state_event_room_knock">"%1$s requested to join"</string>
<string name="state_event_room_knock_accepted">"%1$s allowed %2$s to join"</string>
<string name="state_event_room_knock_accepted_by_you">"%1$s allowed you to join"</string>
<string name="state_event_room_knock_by_you">"You requested to join"</string>
<string name="state_event_room_knock_denied">"%1$s rejected %2$s\'s request to join"</string>
<string name="state_event_room_knock_denied_by_you">"You rejected %1$s\'s request to join"</string>
<string name="state_event_room_knock_denied_you">"%1$s rejected your request to join"</string>
<string name="state_event_room_knock_retracted">"%1$s is no longer interested in joining"</string>
<string name="state_event_room_knock_retracted_by_you">"You cancelled your request to join"</string>
<string name="state_event_room_leave">"%1$s left the room"</string>
<string name="state_event_room_leave_by_you">"You left the room"</string>
<string name="state_event_room_name_changed">"%1$s changed the room name to: %2$s"</string>
<string name="state_event_room_name_changed_by_you">"You changed the room name to: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s removed the room name"</string>
<string name="state_event_room_name_removed_by_you">"You removed the room name"</string>
<string name="state_event_room_reject">"%1$s rejected the invitation"</string>
<string name="state_event_room_reject_by_you">"You rejected the invitation"</string>
<string name="state_event_room_remove">"%1$s removed %2$s"</string>
<string name="state_event_room_remove_by_you">"You removed %1$s"</string>
<string name="state_event_room_third_party_invite">"%1$s sent an invitation to %2$s to join the room"</string>
<string name="state_event_room_third_party_invite_by_you">"You sent an invitation to %1$s to join the room"</string>
<string name="state_event_room_third_party_revoked_invite">"%1$s revoked the invitation for %2$s to join the room"</string>
<string name="state_event_room_third_party_revoked_invite_by_you">"You revoked the invitation for %1$s to join the room"</string>
<string name="state_event_room_topic_changed">"%1$s changed the topic to: %2$s"</string>
<string name="state_event_room_topic_changed_by_you">"You changed the topic to: %1$s"</string>
<string name="state_event_room_topic_removed">"%1$s removed the room topic"</string>
<string name="state_event_room_topic_removed_by_you">"You removed the room topic"</string>
<string name="state_event_room_unban">"%1$s unbanned %2$s"</string>
<string name="state_event_room_unban_by_you">"You unbanned %1$s"</string>
<string name="state_event_room_unknown_membership_change">"%1$s made an unknown change to their membership"</string>
</resources>

2
features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/DefaultRoomLastMessageFormatterTests.kt → libraries/eventformatter/impl/src/test/kotlin/io/element/android/libraries/eventformatter/impl/DefaultRoomLastMessageFormatterTests.kt

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.features.roomlist.impl
package io.element.android.libraries.eventformatter.impl
import android.content.Context
import androidx.compose.ui.text.AnnotatedString

28
libraries/eventformatter/test/build.gradle.kts

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
/*
* Copyright (c) 2022 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.
*/
plugins {
id("io.element.android-library")
}
android {
namespace = "io.element.android.libraries.eventformatter.test"
}
dependencies {
implementation(projects.libraries.eventformatter.api)
implementation(projects.libraries.matrix.api)
}

3
features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/FakeRoomLastMessageFormatter.kt → libraries/eventformatter/test/src/main/kotlin/io/element/android/libraries/eventformatter/test/FakeRoomLastMessageFormatter.kt

@ -14,8 +14,9 @@ @@ -14,8 +14,9 @@
* limitations under the License.
*/
package io.element.android.features.roomlist.impl
package io.element.android.libraries.eventformatter.test
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem
class FakeRoomLastMessageFormatter : RoomLastMessageFormatter {

5
libraries/push/impl/src/main/res/values-de/translations.xml

@ -8,11 +8,16 @@ @@ -8,11 +8,16 @@
<string name="notification_ticker_text_dm">"%1$s: %2$s"</string>
<string name="notification_ticker_text_group">"%1$s: %2$s %3$s"</string>
<string name="notification_unread_notified_messages_and_invitation">"%1$s und %2$s"</string>
<string name="notification_unread_notified_messages_in_room">"%1$s in %2$s"</string>
<string name="notification_unread_notified_messages_in_room_and_invitation">"%1$s in %2$s und %3$s"</string>
<plurals name="notification_compat_summary_line_for_room">
<item quantity="one">"%1$s: %2$d Nachricht"</item>
<item quantity="other">"%1$s: %2$d Nachrichten"</item>
</plurals>
<plurals name="notification_compat_summary_title">
<item quantity="one">"%d Mitteilung"</item>
<item quantity="other">"%d Mitteilungen"</item>
</plurals>
<plurals name="notification_invitations">
<item quantity="one">"%d Einladung"</item>
<item quantity="other">"%d Einladungen"</item>

3
libraries/ui-strings/src/main/res/values-de/translations.xml

@ -61,8 +61,11 @@ @@ -61,8 +61,11 @@
<string name="common_offline">"Offline"</string>
<string name="common_password">"Passwort"</string>
<string name="common_reactions">"Reaktionen"</string>
<string name="common_search_results">"Suchergebnisse"</string>
<string name="common_security">"Sicherheit"</string>
<string name="common_server_not_supported">"Server wird nicht unterstützt"</string>
<string name="common_settings">"Einstellungen"</string>
<string name="common_starting_chat">"Chat wird gestartet…"</string>
<string name="common_sticker">"Sticker"</string>
<string name="common_success">"Erfolg"</string>
<string name="common_suggestions">"Vorschläge"</string>

1
plugins/src/main/kotlin/extension/DependencyHandleScope.kt

@ -74,6 +74,7 @@ fun DependencyHandlerScope.allLibrariesImpl() { @@ -74,6 +74,7 @@ fun DependencyHandlerScope.allLibrariesImpl() {
implementation(project(":libraries:matrixui"))
implementation(project(":libraries:network"))
implementation(project(":libraries:core"))
implementation(project(":libraries:eventformatter:impl"))
implementation(project(":libraries:permissions:impl"))
implementation(project(":libraries:push:impl"))
implementation(project(":libraries:push:impl"))

1
samples/minimal/build.gradle.kts

@ -55,6 +55,7 @@ dependencies { @@ -55,6 +55,7 @@ dependencies {
implementation(projects.libraries.architecture)
implementation(projects.libraries.core)
implementation(projects.libraries.dateformatter.impl)
implementation(projects.libraries.eventformatter.impl)
implementation(projects.features.invitelist.impl)
implementation(projects.features.roomlist.impl)
implementation(projects.features.leaveroom.impl)

2
samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt

@ -24,7 +24,6 @@ import io.element.android.features.invitelist.impl.DefaultSeenInvitesStore @@ -24,7 +24,6 @@ import io.element.android.features.invitelist.impl.DefaultSeenInvitesStore
import io.element.android.features.leaveroom.impl.LeaveRoomPresenterImpl
import io.element.android.features.networkmonitor.impl.NetworkMonitorImpl
import io.element.android.features.roomlist.impl.DefaultInviteStateDataSource
import io.element.android.features.roomlist.impl.DefaultRoomLastMessageFormatter
import io.element.android.features.roomlist.impl.RoomListPresenter
import io.element.android.features.roomlist.impl.RoomListView
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
@ -32,6 +31,7 @@ import io.element.android.libraries.dateformatter.impl.DateFormatters @@ -32,6 +31,7 @@ import io.element.android.libraries.dateformatter.impl.DateFormatters
import io.element.android.libraries.dateformatter.impl.DefaultLastMessageTimestampFormatter
import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
import io.element.android.libraries.eventformatter.impl.DefaultRoomLastMessageFormatter
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver

7
tools/localazy/config.json

@ -56,6 +56,12 @@ @@ -56,6 +56,12 @@
"error_no_compatible_app_found"
]
},
{
"name": ":libraries:messageformatter:impl",
"includeRegex": [
"state_event_.*"
]
},
{
"name": ":libraries:push:impl",
"includeRegex": [
@ -73,7 +79,6 @@ @@ -73,7 +79,6 @@
{
"name": ":features:roomlist:impl",
"includeRegex": [
"state_event_.*",
"screen_roomlist_.*",
"session_verification_banner_.*"
]

Loading…
Cancel
Save