Merge branch 'develop' into feature/fga/timeline_thread_decoration
This commit is contained in:
commit
cc33e39dc6
217 changed files with 2370 additions and 1049 deletions
|
|
@ -126,7 +126,12 @@ private fun HtmlBody(
|
|||
when (val node = nodes.next()) {
|
||||
is TextNode -> {
|
||||
if (!node.isBlank) {
|
||||
ClickableLinkText(text = node.text(), interactionSource = interactionSource)
|
||||
ClickableLinkText(
|
||||
text = node.text(),
|
||||
interactionSource = interactionSource,
|
||||
onClick = onTextClicked,
|
||||
onLongClick = onTextLongClicked,
|
||||
)
|
||||
}
|
||||
}
|
||||
is Element -> {
|
||||
|
|
|
|||
|
|
@ -1,41 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<plurals name="room_timeline_state_changes">
|
||||
<item quantity="one">"%1$d Raumänderung"</item>
|
||||
<item quantity="other">"%1$d Raumänderungen"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_attachment_source_camera">"Kamera"</string>
|
||||
<string name="screen_room_attachment_source_camera_photo">"Foto aufnehmen"</string>
|
||||
<string name="screen_room_attachment_source_camera_video">"Video aufnehmen"</string>
|
||||
<string name="screen_room_attachment_source_files">"Anhang"</string>
|
||||
<string name="screen_room_attachment_source_gallery">"Foto- & Video-Bibliothek"</string>
|
||||
<string name="screen_room_attachment_source_location">"Standort"</string>
|
||||
<string name="screen_room_attachment_source_poll">"Umfrage"</string>
|
||||
<string name="screen_room_encrypted_history_banner">"Der Nachrichtenverlauf ist in diesem Raum derzeit nicht verfügbar"</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Benutzerdetails konnten nicht abgerufen werden"</string>
|
||||
<string name="screen_room_invite_again_alert_message">"Möchtest du sie wieder einladen?"</string>
|
||||
<string name="screen_room_invite_again_alert_title">"Du bist allein in diesem Chat"</string>
|
||||
<string name="screen_room_message_copied">"Nachricht kopiert"</string>
|
||||
<string name="screen_room_no_permission_to_post">"Du bist keine Berechtigung, um in diesem Raum zu posten"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom">"Benutzerdefinierte Einstellung zulassen"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom_footnote">"Das Aktivieren dieser Option wird die Standardeinstellungen überschreiben."</string>
|
||||
<string name="screen_room_notification_settings_custom_settings_title">"Benachrichtige mich in diesem Chat für"</string>
|
||||
<string name="screen_room_notification_settings_default_setting_footnote">"Du kannst es in deinem %1$s ändern."</string>
|
||||
<string name="screen_room_notification_settings_default_setting_footnote_content_link">"Globale Einstellungen"</string>
|
||||
<string name="screen_room_notification_settings_default_setting_title">"Standardeinstellung"</string>
|
||||
<string name="screen_room_notification_settings_edit_remove_setting">"Benutzerdefinierte Einstellung entfernen"</string>
|
||||
<string name="screen_room_notification_settings_error_loading_settings">"Beim Laden der Benachrichtigungseinstellungen ist ein Fehler aufgetreten."</string>
|
||||
<string name="screen_room_notification_settings_error_restoring_default">"Wiederherstellung des Standardmodus fehlgeschlagen. Bitte versuche es erneut."</string>
|
||||
<string name="screen_room_notification_settings_error_setting_mode">"Fehler beim Einstellen des Modus. Bitte versuche es erneut."</string>
|
||||
<string name="screen_room_notification_settings_mode_all_messages">"Alle Nachrichten"</string>
|
||||
<string name="screen_room_notification_settings_mode_mentions_and_keywords">"Nur Erwähnungen und Schlüsselwörter"</string>
|
||||
<string name="screen_room_notification_settings_room_custom_settings_title">"In diesem Raum, benachrichtige mich für"</string>
|
||||
<string name="screen_room_reactions_show_less">"Weniger anzeigen"</string>
|
||||
<string name="screen_room_reactions_show_more">"Mehr anzeigen"</string>
|
||||
<string name="screen_room_retry_send_menu_send_again_action">"Erneut senden"</string>
|
||||
<string name="screen_room_retry_send_menu_title">"Ihre Nachricht konnte nicht gesendet werden"</string>
|
||||
<string name="screen_room_timeline_add_reaction">"Emoji hinzufügen"</string>
|
||||
<string name="screen_room_timeline_less_reactions">"Weniger anzeigen"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Fehler bei der Verarbeitung von Medien zum Hochladen, bitte versuche es erneut."</string>
|
||||
<string name="screen_room_attachment_text_formatting">"Textformatierung"</string>
|
||||
<string name="screen_room_retry_send_menu_remove_action">"Entfernen"</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,36 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<plurals name="room_timeline_state_changes">
|
||||
<item quantity="one">"%1$d changement dans la conversation"</item>
|
||||
<item quantity="other">"%1$d changements dans la conversation"</item>
|
||||
<item quantity="one">"%1$d changement de salle"</item>
|
||||
<item quantity="other">"%1$d changements de salle"</item>
|
||||
</plurals>
|
||||
<string name="screen_room_attachment_source_camera">"Appareil photo"</string>
|
||||
<string name="screen_room_attachment_source_camera_photo">"Prendre une photo"</string>
|
||||
<string name="screen_room_attachment_source_camera_video">"Enregistrer une vidéo"</string>
|
||||
<string name="screen_room_attachment_source_files">"Pièce-jointe"</string>
|
||||
<string name="screen_room_attachment_source_gallery">"Gallerie photo et vidéo"</string>
|
||||
<string name="screen_room_encrypted_history_banner">"L’historique des messages n’est pas disponible actuellement dans ce salon"</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Impossible de récupérer les détails de l’utilisateur"</string>
|
||||
<string name="screen_room_invite_again_alert_message">"Souhaitez-vous les inviter à revenir ?"</string>
|
||||
<string name="screen_room_attachment_source_files">"Pièce jointe"</string>
|
||||
<string name="screen_room_attachment_source_gallery">"Photothèque et vidéothèque"</string>
|
||||
<string name="screen_room_attachment_source_location">"Emplacement"</string>
|
||||
<string name="screen_room_attachment_source_poll">"Sondage"</string>
|
||||
<string name="screen_room_attachment_text_formatting">"Formatage du texte"</string>
|
||||
<string name="screen_room_encrypted_history_banner">"L\'historique des messages n\'est actuellement pas disponible dans cette salle"</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Impossible de récupérer les détails de l\'utilisateur"</string>
|
||||
<string name="screen_room_invite_again_alert_message">"Aimeriez-vous les inviter à revenir ?"</string>
|
||||
<string name="screen_room_invite_again_alert_title">"Vous êtes seul dans ce chat"</string>
|
||||
<string name="screen_room_message_copied">"Message copié"</string>
|
||||
<string name="screen_room_no_permission_to_post">"Vous n‘avez pas le droit de poster dans ce salon"</string>
|
||||
<string name="screen_room_no_permission_to_post">"Vous n\'êtes pas autorisé à publier dans cette salle"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom">"Autoriser les paramètres personnalisés"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom_footnote">"Activer cette option remplacera votre paramètre par défaut"</string>
|
||||
<string name="screen_room_notification_settings_custom_settings_title">"Me notifier dans ce chat pour"</string>
|
||||
<string name="screen_room_notification_settings_default_setting_footnote_content_link">"paramètres généraux"</string>
|
||||
<string name="screen_room_notification_settings_allow_custom_footnote">"L\'activation de cette option annulera votre paramètre par défaut"</string>
|
||||
<string name="screen_room_notification_settings_custom_settings_title">"Prévenez-moi dans ce chat pour"</string>
|
||||
<string name="screen_room_notification_settings_default_setting_footnote">"Vous pouvez le modifier dans votre %1$s."</string>
|
||||
<string name="screen_room_notification_settings_default_setting_footnote_content_link">"paramètres globaux"</string>
|
||||
<string name="screen_room_notification_settings_default_setting_title">"Paramètre par défaut"</string>
|
||||
<string name="screen_room_notification_settings_error_loading_settings">"Une erreur s’est produite lors du chargement des paramètres de notification."</string>
|
||||
<string name="screen_room_notification_settings_error_restoring_default">"Impossible de restaurer le mode par défaut, veuillez réessayer."</string>
|
||||
<string name="screen_room_notification_settings_error_setting_mode">"Impossible de régler le mode, veuillez réessayer."</string>
|
||||
<string name="screen_room_notification_settings_edit_remove_setting">"Supprimer le paramètre personnalisé"</string>
|
||||
<string name="screen_room_notification_settings_error_loading_settings">"Une erreur s\'est produite lors du chargement des paramètres de notification."</string>
|
||||
<string name="screen_room_notification_settings_error_restoring_default">"Échec de la restauration du mode par défaut, veuillez réessayer."</string>
|
||||
<string name="screen_room_notification_settings_error_setting_mode">"Échec de la configuration du mode, veuillez réessayer."</string>
|
||||
<string name="screen_room_notification_settings_mode_all_messages">"Tous les messages"</string>
|
||||
<string name="screen_room_notification_settings_mode_mentions_and_keywords">"Mentions et mots-clés uniquement"</string>
|
||||
<string name="screen_room_notification_settings_mode_mentions_and_keywords">"Mentions et mots clés uniquement"</string>
|
||||
<string name="screen_room_notification_settings_room_custom_settings_title">"Dans cette salle, prévenez-moi pour"</string>
|
||||
<string name="screen_room_reactions_show_less">"Afficher moins"</string>
|
||||
<string name="screen_room_reactions_show_more">"Afficher plus"</string>
|
||||
<string name="screen_room_retry_send_menu_send_again_action">"Renvoyer"</string>
|
||||
<string name="screen_room_retry_send_menu_send_again_action">"Envoyer à nouveau"</string>
|
||||
<string name="screen_room_retry_send_menu_title">"Votre message n\'a pas pu être envoyé"</string>
|
||||
<string name="screen_room_timeline_add_reaction">"Ajouter un emoji"</string>
|
||||
<string name="screen_room_timeline_less_reactions">"Montrer moins"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Échec du traitement du média avant son envoi, veuillez réessayer."</string>
|
||||
<string name="screen_room_retry_send_menu_remove_action">"Supprimer"</string>
|
||||
<string name="screen_room_timeline_add_reaction">"Ajouter un émoji"</string>
|
||||
<string name="screen_room_timeline_less_reactions">"Afficher moins"</string>
|
||||
<string name="screen_room_error_failed_processing_media">"Échec du traitement des médias à télécharger, veuillez réessayer."</string>
|
||||
<string name="screen_room_retry_send_menu_remove_action">"Enlever"</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<string name="screen_room_attachment_source_gallery">"Knižnica fotografií a videí"</string>
|
||||
<string name="screen_room_attachment_source_location">"Poloha"</string>
|
||||
<string name="screen_room_attachment_source_poll">"Anketa"</string>
|
||||
<string name="screen_room_attachment_text_formatting">"Formátovanie textu"</string>
|
||||
<string name="screen_room_encrypted_history_banner">"História správ v tejto miestnosti nie je momentálne k dispozícii"</string>
|
||||
<string name="screen_room_error_failed_retrieving_user_details">"Nepodarilo sa získať údaje o používateľovi"</string>
|
||||
<string name="screen_room_invite_again_alert_message">"Chceli by ste ich pozvať späť?"</string>
|
||||
|
|
|
|||
|
|
@ -86,8 +86,7 @@ import kotlin.time.Duration.Companion.milliseconds
|
|||
|
||||
class MessagesPresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val mockMediaUrl: Uri = mockk("localMediaUri")
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ import org.junit.Test
|
|||
|
||||
class ActionListPresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@ import org.junit.Test
|
|||
|
||||
class AttachmentsPreviewPresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val mediaPreProcessor = FakeMediaPreProcessor()
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ import org.junit.Test
|
|||
|
||||
class ForwardMessagesPresenterTests {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ private val TESTED_MEDIA_INFO = aFileInfo()
|
|||
|
||||
class MediaViewerPresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -35,8 +35,7 @@ import org.junit.Test
|
|||
|
||||
class ReportMessagePresenterTests {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import app.cash.molecule.moleculeFlow
|
|||
import app.cash.turbine.ReceiveTurbine
|
||||
import app.cash.turbine.test
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import im.vector.app.features.analytics.plan.Composer
|
||||
import io.element.android.features.messages.impl.messagecomposer.AttachmentsState
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerContextImpl
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents
|
||||
|
|
@ -57,6 +58,7 @@ import io.element.android.libraries.textcomposer.Message
|
|||
import io.element.android.libraries.textcomposer.MessageComposerMode
|
||||
import io.element.android.services.analytics.test.FakeAnalyticsService
|
||||
import io.element.android.tests.testutils.WarmUpRule
|
||||
import io.element.android.tests.testutils.waitForPredicate
|
||||
import io.mockk.mockk
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
|
@ -67,8 +69,7 @@ import java.io.File
|
|||
|
||||
class MessageComposerPresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val pickerProvider = FakePickerProvider().apply {
|
||||
|
|
@ -208,6 +209,15 @@ class MessageComposerPresenterTest {
|
|||
val messageSentState = awaitItem()
|
||||
assertThat(messageSentState.richTextEditorState.messageHtml).isEqualTo("")
|
||||
assertThat(messageSentState.canSendMessage).isFalse()
|
||||
waitForPredicate { analyticsService.capturedEvents.size == 1 }
|
||||
assertThat(analyticsService.capturedEvents).containsExactly(
|
||||
Composer(
|
||||
inThread = false,
|
||||
isEditing = false,
|
||||
isReply = false,
|
||||
messageType = Composer.MessageType.Text,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -240,6 +250,14 @@ class MessageComposerPresenterTest {
|
|||
assertThat(messageSentState.richTextEditorState.messageHtml).isEqualTo("")
|
||||
assertThat(messageSentState.canSendMessage).isFalse()
|
||||
assertThat(fakeMatrixRoom.editMessageCalls.first()).isEqualTo(ANOTHER_MESSAGE to ANOTHER_MESSAGE)
|
||||
assertThat(analyticsService.capturedEvents).containsExactly(
|
||||
Composer(
|
||||
inThread = false,
|
||||
isEditing = true,
|
||||
isReply = false,
|
||||
messageType = Composer.MessageType.Text,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -272,6 +290,14 @@ class MessageComposerPresenterTest {
|
|||
assertThat(messageSentState.richTextEditorState.messageHtml).isEqualTo("")
|
||||
assertThat(messageSentState.canSendMessage).isFalse()
|
||||
assertThat(fakeMatrixRoom.editMessageCalls.first()).isEqualTo(ANOTHER_MESSAGE to ANOTHER_MESSAGE)
|
||||
assertThat(analyticsService.capturedEvents).containsExactly(
|
||||
Composer(
|
||||
inThread = false,
|
||||
isEditing = true,
|
||||
isReply = false,
|
||||
messageType = Composer.MessageType.Text,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -304,6 +330,14 @@ class MessageComposerPresenterTest {
|
|||
assertThat(messageSentState.richTextEditorState.messageHtml).isEqualTo("")
|
||||
assertThat(messageSentState.canSendMessage).isFalse()
|
||||
assertThat(fakeMatrixRoom.replyMessageParameter).isEqualTo(A_REPLY to A_REPLY)
|
||||
assertThat(analyticsService.capturedEvents).containsExactly(
|
||||
Composer(
|
||||
inThread = false,
|
||||
isEditing = false,
|
||||
isReply = true,
|
||||
messageType = Composer.MessageType.Text,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,8 +51,7 @@ import java.util.Date
|
|||
|
||||
class TimelinePresenterTest {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -33,8 +33,7 @@ import org.junit.Test
|
|||
|
||||
class CustomReactionPresenterTests {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val presenter = CustomReactionPresenter(emojibaseProvider = FakeEmojibaseProvider())
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ import org.junit.Test
|
|||
|
||||
class ReactionSummaryPresenterTests {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val aggregatedReaction = anAggregatedReaction(userId = A_USER_ID, key = "👍", isHighlighted = true)
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ import org.junit.Test
|
|||
|
||||
class RetrySendMenuPresenterTests {
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@get:Rule
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val room = FakeMatrixRoom()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue