Compare commits

...

4 Commits

Author SHA1 Message Date
Cody Henthorne 39598a8da0 Bump version to 8.20.2 2026-07-16 16:33:22 -04:00
Cody Henthorne 5949d96cfd Update translations and other static files. 2026-07-16 16:29:26 -04:00
Alex Hart c9ebc1c12e Replace lottie with static badge image and update sheet sizing. 2026-07-16 17:15:28 -03:00
Cody Henthorne 99ed40580c Add missing field for 1:1 sync messages. 2026-07-16 15:53:14 -04:00
12 changed files with 80 additions and 52 deletions
+2 -2
View File
@@ -32,8 +32,8 @@ plugins {
val staticIps = Properties().apply { file("static-ips.properties").reader().use { load(it) } }
staticIps.stringPropertyNames().forEach { rootProject.extra[it] = staticIps.getProperty(it) }
val canonicalVersionCode = 1721
val canonicalVersionName = "8.20.1"
val canonicalVersionCode = 1722
val canonicalVersionName = "8.20.2"
val currentHotfixVersion = 0
val maxHotfixVersions = 100
@@ -93,12 +93,14 @@ private fun Loading() {
@Composable
private fun Ready(state: GatewaySelectorState.Ready, onEvent: (GatewaySelectorBottomSheetEvent) -> Unit) {
Spacer(modifier = Modifier.size(38.dp))
BadgeImage112(
badge = state.inAppPayment.data.badge!!.let { Badges.fromDatabaseBadge(it) },
modifier = Modifier.size(112.dp)
modifier = Modifier.size(80.dp)
)
Spacer(modifier = Modifier.size(12.dp))
Spacer(modifier = Modifier.size(16.dp))
TitleAndSubtitle(state.inAppPayment)
@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.components.settings.app.subscription.thanks
import android.animation.Animator
import android.content.DialogInterface
import android.os.Bundle
import android.text.SpannableStringBuilder
@@ -11,14 +10,12 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.text.method.LinkMovementMethodCompat
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieDrawable
import com.google.android.material.button.MaterialButton
import com.google.android.material.materialswitch.MaterialSwitch
import io.reactivex.rxjava3.kotlin.subscribeBy
import org.signal.core.ui.FixedRoundedCornerBottomSheetDialogFragment
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.animation.AnimationCompleteListener
import org.thoughtcrime.securesms.badges.BadgeImageView
import org.thoughtcrime.securesms.badges.BadgeRepository
import org.thoughtcrime.securesms.badges.models.Badge
@@ -122,23 +119,8 @@ class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSh
controlState = ControlState.DISPLAY
}
if (args.badge.isBoost()) {
badgeView.visibility = View.INVISIBLE
lottie.visible = true
lottie.playAnimation()
lottie.addAnimatorListener(object : AnimationCompleteListener() {
override fun onAnimationEnd(animation: Animator) {
lottie.removeAnimatorListener(this)
lottie.setMinAndMaxFrame(30, 91)
lottie.repeatMode = LottieDrawable.RESTART
lottie.repeatCount = LottieDrawable.INFINITE
lottie.frame = 30
lottie.playAnimation()
}
})
} else {
lottie.visible = false
}
// New badge does not have a lottie, so we just hide it and show a static image.
lottie.visible = false
done.setOnClickListener { dismissAllowingStateLoss() }
}
@@ -444,6 +444,7 @@ class IndividualSendJobV2 private constructor(parameters: Parameters, private va
timestamp = timestamp,
message = dataMessage,
editMessage = editMessage,
expirationStartTimestamp = if ((dataMessage?.expireTimer ?: 0) > 0) System.currentTimeMillis() else null,
unidentifiedStatus = listOf(
SyncMessage.Sent.UnidentifiedDeliveryStatus(
destinationServiceIdBinary = recipientServiceId.toByteString(),
@@ -32,7 +32,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dsl_settings_gutter"
android:layout_marginTop="12dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="@dimen/dsl_settings_gutter"
android:gravity="center"
android:text="@string/SubscribeThanksForYourSupportBottomSheetDialogFragment__thanks_for_your_support"
@@ -58,10 +58,10 @@
<org.thoughtcrime.securesms.badges.BadgeImageView
android:id="@+id/thanks_bottom_sheet_badge"
android:layout_width="112dp"
android:layout_height="112dp"
android:layout_marginTop="26dp"
app:badge_size="xlarge"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="28dp"
app:badge_size="badge_112"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -69,8 +69,8 @@
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/thanks_bottom_sheet_lottie"
android:layout_width="112dp"
android:layout_height="112dp"
android:layout_width="80dp"
android:layout_height="80dp"
app:layout_constraintBottom_toBottomOf="@id/thanks_bottom_sheet_badge"
app:layout_constraintEnd_toEndOf="@id/thanks_bottom_sheet_badge"
app:layout_constraintStart_toStartOf="@id/thanks_bottom_sheet_badge"
+1 -1
View File
@@ -1591,7 +1591,7 @@
<!-- Progress dialog label when finishing a backup restore -->
<string name="RemoteRestoreActivity__finishing_restore">Сканчаем…</string>
<!-- Progress dialog label while awaiting updates -->
<string name="RemoteRestoreActivity__restoring">Аднаўленне</string>
<string name="RemoteRestoreActivity__restoring">Аднаўленне...</string>
<!-- Progress readout for dialog while downloading or restoring a backup. First placeholder is the formatted size of the backup downloaded, the second is formatted total amount to go, and the last is a percentage. -->
<string name="RemoteRestoreActivity__s_of_s_s">%1$s з %2$s (%3$s)</string>
<!-- Feature list media label for paid tier -->
+8 -8
View File
@@ -952,7 +952,7 @@
<string name="BackupsPreferenceFragment__test_your_backup_passphrase">Proveu la contrasenya de còpia de seguretat i verifiqueu que coincideix.</string>
<string name="BackupsPreferenceFragment__turn_on">Activar les còpies de seguretat</string>
<string name="BackupsPreferenceFragment__turn_off">Desactiva</string>
<string name="BackupsPreferenceFragment__to_restore_a_backup">"Per restaurar una còpia de seguretat, instal·leu una còpia del Signal. Obriu l\'aplicació i toqueu Restaura la còpia de seguretat. Indiqueu el fitxer de còpia de seguretat. %1$s"</string>
<string name="BackupsPreferenceFragment__to_restore_a_backup">"Per restaurar una còpia de seguretat, instal·leu una còpia del Signal. Obriu l'aplicació i toqueu Restaura la còpia de seguretat. Indiqueu el fitxer de còpia de seguretat. %1$s"</string>
<string name="BackupsPreferenceFragment__learn_more">Més informació</string>
<string name="BackupsPreferenceFragment__in_progress">En curs…</string>
<!-- Status text shown in backup preferences when verifying a backup -->
@@ -1419,8 +1419,8 @@
<string name="RequestingMembersFragment_pending_member_requests">Sol·licituds d\'adhesió pendents</string>
<string name="RequestingMembersFragment_no_member_requests_to_show">No hi ha cap sol·licitud d\'adhesió per mostrar.</string>
<string name="RequestingMembersFragment_explanation">La gent d\'aquesta llista intenta afegir-se a aquest grup per l\'enllaç del grup.</string>
<string name="RequestingMembersFragment_added_s">"S\'hi ha afegit %1$s"</string>
<string name="RequestingMembersFragment_denied_s">"S\'ha rebutjat %1$s"</string>
<string name="RequestingMembersFragment_added_s">"S'hi ha afegit %1$s"</string>
<string name="RequestingMembersFragment_denied_s">"S'ha rebutjat %1$s"</string>
<!-- AddMembersActivity -->
<string name="AddMembersActivity__done">Fet</string>
@@ -3585,7 +3585,7 @@
<string name="ContactSelectionListFragment_signal_requires_the_contacts_permission_in_order_to_display_your_contacts">El Signal necessita el permís de l\'aplicació dels contactes per tal de mostrar-ne els vostres, però s\'ha denegat permanentment. Si us plau, continueu cap al menú de configuració de l\'aplicació, seleccioneu Permisos i activeu-hi els contactes.</string>
<string name="ContactSelectionListFragment_error_retrieving_contacts_check_your_network_connection">Error en recuperar els contactes. Comproveu la connexió de xarxa.</string>
<string name="ContactSelectionListFragment_username_not_found">No s\'ha trobat l\'àlies.</string>
<string name="ContactSelectionListFragment_s_is_not_a_signal_user">"%1$s no és un usuari del Signal. Si us plau, comproveu-ne l\'àlies i torneu-ho a provar."</string>
<string name="ContactSelectionListFragment_s_is_not_a_signal_user">"%1$s no és un usuari del Signal. Si us plau, comproveu-ne l'àlies i torneu-ho a provar."</string>
<string name="ContactSelectionListFragment_you_do_not_need_to_add_yourself_to_the_group">No cal que us afegiu al grup.</string>
<string name="ContactSelectionListFragment_maximum_group_size_reached">S\'ha assolit la mida màxima del grup.</string>
<string name="ContactSelectionListFragment_signal_groups_can_have_a_maximum_of_s_members">Els grups del Signal poden tenir un màxim de %1$s membres.</string>
@@ -6219,7 +6219,7 @@
<!-- Warning title shown before restricting member labels to admins only. -->
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_title">S\'eliminaran les categories de membres</string>
<!-- Warning body shown before restricting member labels to admins only. -->
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_body">"Si canvies aquest permís a Només admins, s\'eliminaran les categories de membres establertes pels no administradors d\'aquest grup."</string>
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_body">"Si canvies aquest permís a Només admins, s'eliminaran les categories de membres establertes pels no administradors d'aquest grup."</string>
<!-- Confirm button for changing member label permission after warning. -->
<string name="PermissionsSettingsFragment__change_permission">Canviar permís</string>
@@ -7547,7 +7547,7 @@
<!-- Section header for who can view a group story -->
<string name="GroupStorySettingsFragment__who_can_view_this_story">Qui pot veure aquesta història</string>
<!-- Explanation of who can view a group story -->
<string name="GroupStorySettingsFragment__members_of_the_group_s">"Els membres del grup \"%1$s\" poden veure i respondre a aquesta història. Pots actualitzar l\'afiliació a aquest xat a través del grup."</string>
<string name="GroupStorySettingsFragment__members_of_the_group_s">"Els membres del grup \"%1$s\" poden veure i respondre a aquesta història. Pots actualitzar l'afiliació a aquest xat a través del grup."</string>
<!-- Preference label for removing this group story -->
<string name="GroupStorySettingsFragment__remove_group_story">Suprimir història de grup</string>
@@ -8270,7 +8270,7 @@
<string name="InactivePrimary__got_it">Entesos</string>
<!-- Text describing how to restore a backup displayed on the on-device backups screen -->
<string name="OnDeviceBackupsScreen__to_restore_a_backup">"Per restaurar una còpia de seguretat, instal·la una nova còpia de Signal. Obre l\'app i toca Restaura la còpia de seguretat, i selecciona el fitxer de còpia de seguretat."</string>
<string name="OnDeviceBackupsScreen__to_restore_a_backup">"Per restaurar una còpia de seguretat, instal·la una nova còpia de Signal. Obre l'app i toca Restaura la còpia de seguretat, i selecciona el fitxer de còpia de seguretat."</string>
<!-- Body of a dialog shown when turning on on-device backups while "Optimize Signal storage" is enabled, warning that optimized media won\'t be included -->
<string name="OnDeviceBackupsScreen__you_have_optimize_signal_storage_on">Tens l\'opció \"Optimitzar l\'emmagatzematge de Signal\" activada. Desactiva-la si vols incloure tots els teus arxius multimèdia a la teva còpia de seguretat local.</string>
<!-- Dialog action that takes the user to the "Optimize Signal storage" setting -->
@@ -8751,7 +8751,7 @@
<!-- Subtitle shown on a linked device when backups are off, directing the user to set them up on their phone -->
<string name="BackupsSettingsFragment__automatic_backups_get_started_on_your_phone">Còpies de seguretat automàtiques amb el servei d\'emmagatzematge xifrat segur d\'extrem a extrem de Signal. Configura-les al teu telèfon.</string>
<!-- Subtitle for row for backups that are active but subscription not found -->
<string name="BackupsSettingsFragment_subscription_not_found_on_this_device">"No s\'ha trobat una subscripció en aquest dispositiu."</string>
<string name="BackupsSettingsFragment_subscription_not_found_on_this_device">"No s'ha trobat una subscripció en aquest dispositiu."</string>
<!-- Action button label to set up backups -->
<string name="BackupsSettingsFragment_set_up">Configurar</string>
<!-- Action button label to open remote backup settings -->
+6 -6
View File
@@ -952,7 +952,7 @@
<string name="BackupsPreferenceFragment__test_your_backup_passphrase">Essayez la phrase secrète de sauvegarde pour vérifier qu\'elle est correcte</string>
<string name="BackupsPreferenceFragment__turn_on">Activer les sauvegardes</string>
<string name="BackupsPreferenceFragment__turn_off">Désactiver</string>
<string name="BackupsPreferenceFragment__to_restore_a_backup">"Pour restaurer une sauvegarde, réinstallez Signal, puis ouvrez l\'appli. Touchez \"Restaurer une sauvegarde\" et recherchez votre fichier de sauvegarde. %1$s"</string>
<string name="BackupsPreferenceFragment__to_restore_a_backup">"Pour restaurer une sauvegarde, réinstallez Signal, puis ouvrez l'appli. Touchez \"Restaurer une sauvegarde\" et recherchez votre fichier de sauvegarde. %1$s"</string>
<string name="BackupsPreferenceFragment__learn_more">En savoir plus</string>
<string name="BackupsPreferenceFragment__in_progress">En cours…</string>
<!-- Status text shown in backup preferences when verifying a backup -->
@@ -1583,7 +1583,7 @@
<!-- The title of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_title">Supprimer ce nom d\'utilisateur ?</string>
<!-- The body of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_body">"Vous allez supprimer votre nom d\'utilisateur et désactiver votre lien et votre code QR. \"%1$s\" sera disponible et d\'autres personnes pourront l\'utiliser. Voulez-vous vraiment continuer ?"</string>
<string name="ManageProfileFragment__delete_username_dialog_body">"Vous allez supprimer votre nom d'utilisateur et désactiver votre lien et votre code QR. \"%1$s\" sera disponible et d'autres personnes pourront l'utiliser. Voulez-vous vraiment continuer ?"</string>
<!-- UsernameOutOfSyncReminder -->
<!-- Displayed above the conversation list when a user needs to address an issue with their username -->
@@ -3585,7 +3585,7 @@
<string name="ContactSelectionListFragment_signal_requires_the_contacts_permission_in_order_to_display_your_contacts">Pour afficher vos contacts, Signal doit accéder à l\'application Contacts, mais vous lui en avez interdit l\'accès. Ouvrez l\'application Paramètres de votre appareil, puis touchez Applications &gt; Signal &gt; Autorisations et activez l\'option \"Contacts\".</string>
<string name="ContactSelectionListFragment_error_retrieving_contacts_check_your_network_connection">Erreur lors de la récupération des contacts. Veuillez vérifier votre connexion réseau.</string>
<string name="ContactSelectionListFragment_username_not_found">Nom d\'utilisateur introuvable</string>
<string name="ContactSelectionListFragment_s_is_not_a_signal_user">"\"%1$s\" ne correspond à aucun utilisateur Signal. Veuillez vérifier le nom d\'utilisateur et réessayer."</string>
<string name="ContactSelectionListFragment_s_is_not_a_signal_user">"\"%1$s\" ne correspond à aucun utilisateur Signal. Veuillez vérifier le nom d'utilisateur et réessayer."</string>
<string name="ContactSelectionListFragment_you_do_not_need_to_add_yourself_to_the_group">Inutile de vous ajouter au groupe</string>
<string name="ContactSelectionListFragment_maximum_group_size_reached">Le groupe a atteint sa taille maximale</string>
<string name="ContactSelectionListFragment_signal_groups_can_have_a_maximum_of_s_members">Les groupes Signal peuvent accueillir jusqu\'à %1$s membres.</string>
@@ -5016,7 +5016,7 @@
<!-- Subtext below radio buttons when who can find me by number is set to nobody -->
<string name="PhoneNumberPrivacySettingsFragment_discovery_off_description">Personne ne saura que vous utilisez Signal, hormis les utilisateurs à qui vous envoyez un message ou avec qui vous avez déjà démarré une conversation.</string>
<!-- Snackbar text when pressing invalid radio item -->
<string name="PhoneNumberPrivacySettingsFragment__to_change_this_setting">"Pour modifier ce paramètre, définissez l\'option \"Qui peut voir mon numéro\" sur \"Personne\"."</string>
<string name="PhoneNumberPrivacySettingsFragment__to_change_this_setting">"Pour modifier ce paramètre, définissez l'option \"Qui peut voir mon numéro\" sur \"Personne\"."</string>
<!-- Dialog title shown when selecting "Nobody" in phone number privacy settings for who can find me by number -->
<string name="PhoneNumberPrivacySettingsFragment__nobody_can_find_me_warning_title">Voulez-vous vraiment continuer ?</string>
<!-- Dialog warning message shown when selecting "Nobody" in phone number privacy settings for who can find me by number -->
@@ -6219,7 +6219,7 @@
<!-- Warning title shown before restricting member labels to admins only. -->
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_title">Les étiquettes de membre seront supprimées</string>
<!-- Warning body shown before restricting member labels to admins only. -->
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_body">"Si vous définissez cette autorisation sur \"Les administrateurs\", toutes les étiquettes créées par d\'autres membres que les admins seront supprimées de ce groupe."</string>
<string name="PermissionsSettingsFragment__member_labels_will_be_cleared_body">"Si vous définissez cette autorisation sur \"Les administrateurs\", toutes les étiquettes créées par d'autres membres que les admins seront supprimées de ce groupe."</string>
<!-- Confirm button for changing member label permission after warning. -->
<string name="PermissionsSettingsFragment__change_permission">Modifier l\'autorisation</string>
@@ -8270,7 +8270,7 @@
<string name="InactivePrimary__got_it">J\'ai compris</string>
<!-- Text describing how to restore a backup displayed on the on-device backups screen -->
<string name="OnDeviceBackupsScreen__to_restore_a_backup">"Pour restaurer une sauvegarde, réinstallez Signal, puis ouvrez l\'appli. Touchez \"Restaurer une sauvegarde\" et recherchez votre dossier de sauvegarde."</string>
<string name="OnDeviceBackupsScreen__to_restore_a_backup">"Pour restaurer une sauvegarde, réinstallez Signal, puis ouvrez l'appli. Touchez \"Restaurer une sauvegarde\" et recherchez votre dossier de sauvegarde."</string>
<!-- Body of a dialog shown when turning on on-device backups while "Optimize Signal storage" is enabled, warning that optimized media won\'t be included -->
<string name="OnDeviceBackupsScreen__you_have_optimize_signal_storage_on">L\'option \"Optimiser le stockage Signal\" est activée. Vous pouvez la désactiver si vous préférez stocker tous vos médias dans votre sauvegarde locale.</string>
<!-- Dialog action that takes the user to the "Optimize Signal storage" setting -->
+3 -3
View File
@@ -1718,7 +1718,7 @@
<!-- The title of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_title">Scrios ainm úsáideora?</string>
<!-- The body of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_body">"Bainfear d\'ainm úsáideora agus díchumasófar do chód QR agus nasc leis sin. Beidh daoine eile in ann %1$s a éileamh. An bhfuil tú cinnte?"</string>
<string name="ManageProfileFragment__delete_username_dialog_body">"Bainfear d'ainm úsáideora agus díchumasófar do chód QR agus nasc leis sin. Beidh daoine eile in ann %1$s a éileamh. An bhfuil tú cinnte?"</string>
<!-- UsernameOutOfSyncReminder -->
<!-- Displayed above the conversation list when a user needs to address an issue with their username -->
@@ -5415,7 +5415,7 @@
<!-- Subtext below radio buttons when who can find me by number is set to nobody -->
<string name="PhoneNumberPrivacySettingsFragment_discovery_off_description">Beidh tú dofheicthe ar Signal ag daoine ach amháin má sheolann tú teachtaireacht chucu nó má tá comhrá ar siúl agat leo.</string>
<!-- Snackbar text when pressing invalid radio item -->
<string name="PhoneNumberPrivacySettingsFragment__to_change_this_setting">"Leis an socrú sin a athrú, socraigh Daoine atá in ann m\'uimhir a fheiceáil go Duine ar bith."</string>
<string name="PhoneNumberPrivacySettingsFragment__to_change_this_setting">"Leis an socrú sin a athrú, socraigh Daoine atá in ann m'uimhir a fheiceáil go Duine ar bith."</string>
<!-- Dialog title shown when selecting "Nobody" in phone number privacy settings for who can find me by number -->
<string name="PhoneNumberPrivacySettingsFragment__nobody_can_find_me_warning_title">An bhfuil tú cinnte?</string>
<!-- Dialog warning message shown when selecting "Nobody" in phone number privacy settings for who can find me by number -->
@@ -7676,7 +7676,7 @@
<!-- Signal connections sheet bullet point 3 -->
<string name="SignalConnectionsBottomSheet__having_them_in_your_system_contacts">Trína bheith i dteagmhálaithe do ghutháin</string>
<!-- Note at the bottom of the Signal connections sheet -->
<string name="SignalConnectionsBottomSheet__your_connections_can_see_your_name">"Is féidir le do theagmhálaithe d\'ainm agus do ghrianghraf, agus postálacha \"Mo Scéal\", a fheiceáil, mura gcuireann tú na rudaí sin i bhfolach orthu."</string>
<string name="SignalConnectionsBottomSheet__your_connections_can_see_your_name">"Is féidir le do theagmhálaithe d'ainm agus do ghrianghraf, agus postálacha \"Mo Scéal\", a fheiceáil, mura gcuireann tú na rudaí sin i bhfolach orthu."</string>
<!-- Clickable option to add a viewer to a custom story -->
<string name="PrivateStorySettingsFragment__add_viewer">Cuir amharcóir leis</string>
<!-- Clickable option to delete a custom story -->
+2 -2
View File
@@ -1673,7 +1673,7 @@
<!-- The title of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_title">Видалити ім\'я користувача?</string>
<!-- The body of a pop-up dialog asking the user to confirm deleting their username -->
<string name="ManageProfileFragment__delete_username_dialog_body">"Ваше ім\'я користувача буде видалено, а QR-код і посилання — деактивовано. Ім\'я користувача «%1$s» зможуть узяти собі інші користувачі. Ви впевнені?"</string>
<string name="ManageProfileFragment__delete_username_dialog_body">"Ваше ім'я користувача буде видалено, а QR-код і посилання — деактивовано. Ім'я користувача «%1$s» зможуть узяти собі інші користувачі. Ви впевнені?"</string>
<!-- UsernameOutOfSyncReminder -->
<!-- Displayed above the conversation list when a user needs to address an issue with their username -->
@@ -7508,7 +7508,7 @@
<!-- Signal connections sheet bullet point 3 -->
<string name="SignalConnectionsBottomSheet__having_them_in_your_system_contacts">вони є в контактах вашого телефона.</string>
<!-- Note at the bottom of the Signal connections sheet -->
<string name="SignalConnectionsBottomSheet__your_connections_can_see_your_name">"Контакти Signal бачать ваше ім\'я та фото, а також усе, що ви викладаєте в «Моїй історії», якщо ви її не приховали."</string>
<string name="SignalConnectionsBottomSheet__your_connections_can_see_your_name">"Контакти Signal бачать ваше ім'я та фото, а також усе, що ви викладаєте в «Моїй історії», якщо ви її не приховали."</string>
<!-- Clickable option to add a viewer to a custom story -->
<string name="PrivateStorySettingsFragment__add_viewer">Додати глядача</string>
<!-- Clickable option to delete a custom story -->
@@ -11,6 +11,9 @@ import arrow.core.left
import arrow.core.right
import assertk.assertThat
import assertk.assertions.isEqualTo
import assertk.assertions.isGreaterThan
import assertk.assertions.isNotNull
import assertk.assertions.isNull
import assertk.assertions.isTrue
import io.mockk.coEvery
import io.mockk.coVerify
@@ -427,6 +430,46 @@ class IndividualSendJobV2Test {
}
}
@Test
fun `Given multi-device and an expiring message, when send succeeds, then sync transcript carries expirationStartTimestamp`() {
every { signalStore.account.isMultiDevice } returns true
every { outgoingMessage.expiresIn } returns 60_000L
dataMessage = DataMessage(timestamp = sentTime, expireTimer = 60)
every { outgoingMessage.toDataMessage() } returns dataMessage.right()
val syncSlot = slot<EnvelopeContent>()
val primaryContent = EnvelopeContent.encrypted(Content(dataMessage = dataMessage), ContentHint.RESENDABLE, Optional.empty())
coEvery {
messageService.sendMessage(any(), any(), any(), any(), any(), any(), any(), any())
} returns MessageService.SendSuccess(envelopeContent = primaryContent, sentSealedSender = false, devices = listOf(1)).right()
coEvery {
messageService.sendSyncMessage(timestamp = any(), envelopeContent = capture(syncSlot), urgent = any(), onEncrypted = any())
} returns MessageService.SendSuccess(envelopeContent = primaryContent, sentSealedSender = false, devices = listOf(1)).right()
createAndRunJob()
val sent = syncSlot.captured.content.get().syncMessage!!.sent!!
assertThat(sent.expirationStartTimestamp).isNotNull().isGreaterThan(0L)
}
@Test
fun `Given multi-device and a non-expiring message, when send succeeds, then sync transcript omits expirationStartTimestamp`() {
every { signalStore.account.isMultiDevice } returns true
val syncSlot = slot<EnvelopeContent>()
coEvery {
messageService.sendSyncMessage(timestamp = any(), envelopeContent = capture(syncSlot), urgent = any(), onEncrypted = any())
} returns MessageService.SendSuccess(envelopeContent = EnvelopeContent.encrypted(Content(dataMessage = dataMessage), ContentHint.RESENDABLE, Optional.empty()), sentSealedSender = false, devices = listOf(1)).right()
coEvery {
messageService.sendMessage(any(), any(), any(), any(), any(), any(), any(), any())
} returns MessageService.SendSuccess(envelopeContent = EnvelopeContent.encrypted(Content(dataMessage = dataMessage), ContentHint.RESENDABLE, Optional.empty()), sentSealedSender = false, devices = listOf(1)).right()
createAndRunJob()
val sent = syncSlot.captured.content.get().syncMessage!!.sent!!
assertThat(sent.expirationStartTimestamp).isNull()
}
@Test
fun `Given an edit of an already-edited message, when run, then target the edited revision's dateSent`() {
val editTargetMessageId = messageId + 1
+1 -1
View File
@@ -1,6 +1,6 @@
service_ips=new String[]{"13.248.212.111","76.223.92.165"}
storage_ips=new String[]{"142.250.72.19"}
cdn_ips=new String[]{"18.238.49.106","18.238.49.6","18.238.49.66","18.238.49.90"}
cdn_ips=new String[]{"18.161.21.122","18.161.21.4","18.161.21.66","18.161.21.70"}
cdn2_ips=new String[]{"104.18.10.47","104.18.11.47"}
cdn3_ips=new String[]{"104.18.10.47","104.18.11.47"}
sfu_ips=new String[]{"34.117.136.13"}