Release polls behind feature flag.

This commit is contained in:
Michelle Tang
2025-10-01 12:46:37 -04:00
parent 67a693107e
commit b8e4ffb5ae
84 changed files with 4164 additions and 102 deletions

View File

@@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge
import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras
import org.thoughtcrime.securesms.groups.GroupId
import org.thoughtcrime.securesms.linkpreview.LinkPreview
import org.thoughtcrime.securesms.polls.Poll
import org.thoughtcrime.securesms.recipients.RecipientId
class IncomingMessage(
@@ -39,7 +40,8 @@ class IncomingMessage(
mentions: List<Mention> = emptyList(),
val giftBadge: GiftBadge? = null,
val messageExtras: MessageExtras? = null,
val isGroupAdd: Boolean = false
val isGroupAdd: Boolean = false,
val poll: Poll? = null
) {
val attachments: List<Attachment> = ArrayList(attachments)

View File

@@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.GV2UpdateDescrip
import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge
import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras
import org.thoughtcrime.securesms.linkpreview.LinkPreview
import org.thoughtcrime.securesms.polls.Poll
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.sms.GroupV2UpdateMessageUtil
import kotlin.time.Duration.Companion.seconds
@@ -58,6 +59,7 @@ data class OutgoingMessage(
val isMessageRequestAccept: Boolean = false,
val isBlocked: Boolean = false,
val isUnblocked: Boolean = false,
val poll: Poll? = null,
val messageExtras: MessageExtras? = null
) {
@@ -470,6 +472,31 @@ data class OutgoingMessage(
)
}
@JvmStatic
fun pollMessage(threadRecipient: Recipient, sentTimeMillis: Long, expiresIn: Long, poll: Poll, question: String = ""): OutgoingMessage {
return OutgoingMessage(
threadRecipient = threadRecipient,
sentTimeMillis = sentTimeMillis,
expiresIn = expiresIn,
poll = poll,
body = question,
isUrgent = true,
isSecure = true
)
}
@JvmStatic
fun pollTerminateMessage(threadRecipient: Recipient, sentTimeMillis: Long, expiresIn: Long, messageExtras: MessageExtras): OutgoingMessage {
return OutgoingMessage(
threadRecipient = threadRecipient,
sentTimeMillis = sentTimeMillis,
expiresIn = expiresIn,
messageExtras = messageExtras,
isUrgent = true,
isSecure = true
)
}
@JvmStatic
fun quickReply(
threadRecipient: Recipient,