From dc22ba105148caf800f1b8769f02e74d1528d71a Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Thu, 10 Nov 2022 17:43:40 +1100 Subject: [PATCH] refactor: moving the trusted download dialogs and logic to be auto-download and show visibilities based on download status not trusted status --- .../conversation/v2/dialogs/DownloadDialog.kt | 9 +- ...chmentView.kt => PendingAttachmentView.kt} | 18 +- .../v2/messages/VisibleMessageContentView.kt | 51 +- .../securesms/database/Storage.kt | 4 +- .../database/helpers/SQLCipherOpenHelper.java | 3 + ...chment.xml => view_pending_attachment.xml} | 4 +- .../layout/view_visible_message_content.xml | 4 +- libsignal/protobuf/SignalService.proto | 35 + .../libsignal/protos/SignalServiceProtos.java | 3770 ++++++++++++++++- 9 files changed, 3778 insertions(+), 120 deletions(-) rename app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/{UntrustedAttachmentView.kt => PendingAttachmentView.kt} (73%) rename app/src/main/res/layout/{view_untrusted_attachment.xml => view_pending_attachment.xml} (87%) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt index 42cca1ad3e..12903fa870 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt @@ -15,13 +15,14 @@ import org.session.libsession.messaging.jobs.JobQueue import org.session.libsession.utilities.recipients.Recipient import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog import org.thoughtcrime.securesms.database.SessionContactDatabase -import org.thoughtcrime.securesms.dependencies.DatabaseComponent import javax.inject.Inject /** Shown when receiving media from a contact for the first time, to confirm that * they are to be trusted and files sent by them are to be downloaded. */ @AndroidEntryPoint -class DownloadDialog(private val recipient: Recipient) : BaseDialog() { +class DownloadDialog(private val recipient: Recipient, + private val +) : BaseDialog() { @Inject lateinit var contactDB: SessionContactDatabase @@ -43,10 +44,6 @@ class DownloadDialog(private val recipient: Recipient) : BaseDialog() { } private fun trust() { - val sessionID = recipient.address.toString() - val contact = contactDB.getContactWithSessionID(sessionID) ?: return - val threadID = DatabaseComponent.get(requireContext()).threadDatabase().getThreadIdIfExistsFor(recipient) - contactDB.setContactIsTrusted(contact, true, threadID) JobQueue.shared.resumePendingJobs(AttachmentDownloadJob.KEY) dismiss() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/UntrustedAttachmentView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/PendingAttachmentView.kt similarity index 73% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/UntrustedAttachmentView.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/PendingAttachmentView.kt index 47034cf8ed..3b55a7f690 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/UntrustedAttachmentView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/PendingAttachmentView.kt @@ -6,20 +6,23 @@ import android.widget.LinearLayout import androidx.annotation.ColorInt import androidx.core.content.ContextCompat import network.loki.messenger.R -import network.loki.messenger.databinding.ViewUntrustedAttachmentBinding +import network.loki.messenger.databinding.ViewPendingAttachmentBinding +import org.session.libsession.messaging.sending_receiving.attachments.AttachmentId import org.session.libsession.utilities.recipients.Recipient import org.thoughtcrime.securesms.conversation.v2.dialogs.DownloadDialog import org.thoughtcrime.securesms.util.ActivityDispatcher import java.util.Locale -class UntrustedAttachmentView: LinearLayout { - private val binding: ViewUntrustedAttachmentBinding by lazy { ViewUntrustedAttachmentBinding.bind(this) } +class PendingAttachmentView: LinearLayout { + private val binding by lazy { ViewPendingAttachmentBinding.bind(this) } enum class AttachmentType { AUDIO, DOCUMENT, MEDIA } + private var attachmentId: AttachmentId? = null + // region Lifecycle constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet) : super(context, attrs) @@ -28,7 +31,7 @@ class UntrustedAttachmentView: LinearLayout { // endregion // region Updating - fun bind(attachmentType: AttachmentType, @ColorInt textColor: Int) { + fun bind(attachmentType: AttachmentType, @ColorInt textColor: Int, attachmentId: AttachmentId) { val (iconRes, stringRes) = when (attachmentType) { AttachmentType.AUDIO -> R.drawable.ic_microphone to R.string.Slide_audio AttachmentType.DOCUMENT -> R.drawable.ic_document_large_light to R.string.document @@ -40,12 +43,15 @@ class UntrustedAttachmentView: LinearLayout { binding.untrustedAttachmentIcon.setImageDrawable(iconDrawable) binding.untrustedAttachmentTitle.text = text + this.attachmentId = attachmentId } // endregion // region Interaction - fun showTrustDialog(recipient: Recipient) { - ActivityDispatcher.get(context)?.showDialog(DownloadDialog(recipient)) + fun showDownloadDialog(threadRecipient: Recipient) { + attachmentId?.let { attachmentId -> + ActivityDispatcher.get(context)?.showDialog(DownloadDialog(threadRecipient, attachmentId)) + } } } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt index 88045f8e47..983e26e7e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt @@ -40,7 +40,6 @@ import org.thoughtcrime.securesms.conversation.v2.utilities.ModalURLSpan import org.thoughtcrime.securesms.conversation.v2.utilities.TextUtilities.getIntersectedModalSpans import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.database.model.SmsMessageRecord import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.SearchUtil import org.thoughtcrime.securesms.util.getAccentColor @@ -66,7 +65,7 @@ class VisibleMessageContentView : LinearLayout { // region Updating fun bind(message: MessageRecord, isStartOfMessageCluster: Boolean, isEndOfMessageCluster: Boolean, - glide: GlideRequests, thread: Recipient, searchQuery: String?, contactIsTrusted: Boolean) { + glide: GlideRequests, thread: Recipient, searchQuery: String?, autoDownloadAttachments: Boolean) { // Background val background = getBackground(message.isOutgoing) val color = if (message.isOutgoing) context.getAccentColor() @@ -75,8 +74,8 @@ class VisibleMessageContentView : LinearLayout { background.colorFilter = filter binding.contentParent.background = background - val onlyBodyMessage = message is SmsMessageRecord - val mediaThumbnailMessage = contactIsTrusted && message is MmsMessageRecord && message.slideDeck.thumbnailSlide != null + val mediaDownloaded = message is MmsMessageRecord && message.slideDeck.asAttachments().all { it.transferState == AttachmentTransferProgress.TRANSFER_PROGRESS_DONE } + val mediaThumbnailMessage = message is MmsMessageRecord && message.slideDeck.thumbnailSlide != null // reset visibilities / containers onContentClick.clear() @@ -98,9 +97,9 @@ class VisibleMessageContentView : LinearLayout { binding.linkPreviewView.isVisible = message is MmsMessageRecord && message.linkPreviews.isNotEmpty() - binding.untrustedView.root.isVisible = !contactIsTrusted && message is MmsMessageRecord && message.quote == null && message.linkPreviews.isEmpty() - binding.voiceMessageView.root.isVisible = contactIsTrusted && message is MmsMessageRecord && message.slideDeck.audioSlide != null - binding.documentView.root.isVisible = contactIsTrusted && message is MmsMessageRecord && message.slideDeck.documentSlide != null + binding.pendingAttachmentView.root.isVisible = !mediaDownloaded && message is MmsMessageRecord && message.quote == null && message.linkPreviews.isEmpty() + binding.voiceMessageView.root.isVisible = mediaDownloaded && message is MmsMessageRecord && message.slideDeck.audioSlide != null + binding.documentView.root.isVisible = mediaDownloaded && message is MmsMessageRecord && message.slideDeck.documentSlide != null binding.albumThumbnailView.isVisible = mediaThumbnailMessage binding.openGroupInvitationView.root.isVisible = message.isOpenGroupInvitation @@ -124,7 +123,6 @@ class VisibleMessageContentView : LinearLayout { delegate?.scrollToMessageIfPossible(quote.id) } } - val hasMedia = message.slideDeck.asAttachments().isNotEmpty() } if (message is MmsMessageRecord) { @@ -156,7 +154,7 @@ class VisibleMessageContentView : LinearLayout { message is MmsMessageRecord && message.slideDeck.audioSlide != null -> { hideBody = true // Audio attachment - if (contactIsTrusted || message.isOutgoing) { + if (mediaDownloaded || message.isOutgoing) { binding.voiceMessageView.root.indexInAdapter = indexInAdapter binding.voiceMessageView.root.delegate = context as? ConversationActivityV2 binding.voiceMessageView.root.bind(message, isStartOfMessageCluster, isEndOfMessageCluster) @@ -165,26 +163,33 @@ class VisibleMessageContentView : LinearLayout { onContentClick.add { binding.voiceMessageView.root.togglePlayback() } onContentDoubleTap = { binding.voiceMessageView.root.handleDoubleTap() } } else { - // TODO: move this out to its own area - binding.untrustedView.root.bind(UntrustedAttachmentView.AttachmentType.AUDIO, VisibleMessageContentView.getTextColor(context,message)) - onContentClick.add { binding.untrustedView.root.showTrustDialog(message.individualRecipient) } + binding.pendingAttachmentView.root.bind( + PendingAttachmentView.AttachmentType.AUDIO, + getTextColor(context,message), + + ) + onContentClick.add { binding.pendingAttachmentView.root.showDownloadDialog(message.recipient) } } } message is MmsMessageRecord && message.slideDeck.documentSlide != null -> { hideBody = true // Document attachment - if (contactIsTrusted || message.isOutgoing) { - binding.documentView.root.bind(message, VisibleMessageContentView.getTextColor(context, message)) + if (mediaDownloaded || message.isOutgoing) { + binding.documentView.root.bind(message, getTextColor(context, message)) } else { - binding.untrustedView.root.bind(UntrustedAttachmentView.AttachmentType.DOCUMENT, VisibleMessageContentView.getTextColor(context,message)) - onContentClick.add { binding.untrustedView.root.showTrustDialog(message.individualRecipient) } + binding.pendingAttachmentView.root.bind( + PendingAttachmentView.AttachmentType.DOCUMENT, + getTextColor(context,message), + + ) + onContentClick.add { binding.pendingAttachmentView.root.showDownloadDialog(message.recipient) } } } message is MmsMessageRecord && message.slideDeck.asAttachments().isNotEmpty() -> { /* * Images / Video attachment */ - if (contactIsTrusted || message.isOutgoing) { + if (mediaDownloaded || message.isOutgoing) { // isStart and isEnd of cluster needed for calculating the mask for full bubble image groups // bind after add view because views are inflated and calculated during bind binding.albumThumbnailView.bind( @@ -202,13 +207,17 @@ class VisibleMessageContentView : LinearLayout { } else { hideBody = true binding.albumThumbnailView.clearViews() - binding.untrustedView.root.bind(UntrustedAttachmentView.AttachmentType.MEDIA, VisibleMessageContentView.getTextColor(context,message)) - onContentClick.add { binding.untrustedView.root.showTrustDialog(message.individualRecipient) } + binding.pendingAttachmentView.root.bind( + PendingAttachmentView.AttachmentType.MEDIA, + getTextColor(context,message), + + ) + onContentClick.add { binding.pendingAttachmentView.root.showDownloadDialog(message.recipient) } } } message.isOpenGroupInvitation -> { hideBody = true - binding.openGroupInvitationView.root.bind(message, VisibleMessageContentView.getTextColor(context, message)) + binding.openGroupInvitationView.root.bind(message, getTextColor(context, message)) onContentClick.add { binding.openGroupInvitationView.root.joinOpenGroup() } } } @@ -243,7 +252,7 @@ class VisibleMessageContentView : LinearLayout { fun recycle() { arrayOf( binding.deletedMessageView.root, - binding.untrustedView.root, + binding.pendingAttachmentView.root, binding.voiceMessageView.root, binding.openGroupInvitationView.root, binding.documentView.root, diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 9e668e0f7d..2d3e0e248c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -685,9 +685,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context, } } - override fun shouldAutoDownloadAttachments(recipient: Recipient): Boolean { - TODO("Not yet implemented") - } + override fun shouldAutoDownloadAttachments(recipient: Recipient): Boolean = true override fun setAutoDownloadAttachments( recipient: Recipient, diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java index 744fafc9ad..d24631f274 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java @@ -191,6 +191,9 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { executeStatements(db, GroupReceiptDatabase.CREATE_INDEXES); executeStatements(db, ReactionDatabase.CREATE_REACTION_TRIGGERS); + + db.execSQL(RecipientDatabase.getCreateAutoDownloadCommand()); + db.execSQL(RecipientDatabase.getUpdateAutoDownloadValuesCommand()); } @Override diff --git a/app/src/main/res/layout/view_untrusted_attachment.xml b/app/src/main/res/layout/view_pending_attachment.xml similarity index 87% rename from app/src/main/res/layout/view_untrusted_attachment.xml rename to app/src/main/res/layout/view_pending_attachment.xml index f9d604b5d8..dc321cfc9d 100644 --- a/app/src/main/res/layout/view_untrusted_attachment.xml +++ b/app/src/main/res/layout/view_pending_attachment.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/view_visible_message_content.xml b/app/src/main/res/layout/view_visible_message_content.xml index edd5e5cbfa..ee7a6b5350 100644 --- a/app/src/main/res/layout/view_visible_message_content.xml +++ b/app/src/main/res/layout/view_visible_message_content.xml @@ -26,13 +26,13 @@ android:layout_height="wrap_content" /> - diff --git a/libsignal/protobuf/SignalService.proto b/libsignal/protobuf/SignalService.proto index 0e5d3e7f1b..a0d3ac0ab8 100644 --- a/libsignal/protobuf/SignalService.proto +++ b/libsignal/protobuf/SignalService.proto @@ -119,6 +119,13 @@ message DataMessage { required string name = 3; } + message GroupMessage { + optional GroupDeleteMessage deleteMessage = 31; + optional GroupMemberLeftMessage memberLeftMessage = 32; + optional GroupInviteMessage inviteMessage = 33; + optional GroupPromoteMessage promoteMessage = 34; + } + message ClosedGroupControlMessage { enum Type { @@ -182,6 +189,34 @@ message DataMessage { optional OpenGroupInvitation openGroupInvitation = 102; optional ClosedGroupControlMessage closedGroupControlMessage = 104; optional string syncTarget = 105; + optional GroupMessage groupMessage = 120; +} + +message GroupDeleteMessage { + // @required + required bytes publicKey = 1; // the identity public key of the group to be deleted + // @required + required bytes lastEncryptionKey = 2; // used by members to make sure incoming admin action can be trusted +} + +message GroupMemberLeftMessage { + // the pubkey of the member left is included as part of the closed group encryption logic (senderIdentity on desktop) +} + +message GroupInviteMessage { + // @required + required bytes publicKey = 1; // this is the group public key + // @required + required string name = 2; + // @required + required bytes memberPrivateKey = 3; +} + +message GroupPromoteMessage { + // @required + required bytes publicKey = 1; // this is the session id for the user that should be promoted + // @required + required bytes encryptedPrivateKey = 2; // this is the group admins key } message CallMessage { diff --git a/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java b/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java index 47e8eae82f..ba11666c45 100644 --- a/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java +++ b/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java @@ -5672,6 +5672,20 @@ public final class SignalServiceProtos { */ com.google.protobuf.ByteString getSyncTargetBytes(); + + // optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + boolean hasGroupMessage(); + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getGroupMessage(); + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder getGroupMessageOrBuilder(); } /** * Protobuf type {@code signalservice.DataMessage} @@ -5835,6 +5849,19 @@ public final class SignalServiceProtos { syncTarget_ = input.readBytes(); break; } + case 962: { + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder subBuilder = null; + if (((bitField0_ & 0x00000800) == 0x00000800)) { + subBuilder = groupMessage_.toBuilder(); + } + groupMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(groupMessage_); + groupMessage_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000800; + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -10369,6 +10396,1125 @@ public final class SignalServiceProtos { // @@protoc_insertion_point(class_scope:signalservice.DataMessage.OpenGroupInvitation) } + public interface GroupMessageOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional .signalservice.GroupDeleteMessage deleteMessage = 31; + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + boolean hasDeleteMessage(); + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage getDeleteMessage(); + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder getDeleteMessageOrBuilder(); + + // optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + boolean hasMemberLeftMessage(); + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage getMemberLeftMessage(); + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder getMemberLeftMessageOrBuilder(); + + // optional .signalservice.GroupInviteMessage inviteMessage = 33; + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + boolean hasInviteMessage(); + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage getInviteMessage(); + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder getInviteMessageOrBuilder(); + + // optional .signalservice.GroupPromoteMessage promoteMessage = 34; + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + boolean hasPromoteMessage(); + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage getPromoteMessage(); + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder getPromoteMessageOrBuilder(); + } + /** + * Protobuf type {@code signalservice.DataMessage.GroupMessage} + */ + public static final class GroupMessage extends + com.google.protobuf.GeneratedMessage + implements GroupMessageOrBuilder { + // Use GroupMessage.newBuilder() to construct. + private GroupMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupMessage defaultInstance; + public static GroupMessage getDefaultInstance() { + return defaultInstance; + } + + public GroupMessage getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 250: { + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = deleteMessage_.toBuilder(); + } + deleteMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(deleteMessage_); + deleteMessage_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 258: { + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = memberLeftMessage_.toBuilder(); + } + memberLeftMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(memberLeftMessage_); + memberLeftMessage_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000002; + break; + } + case 266: { + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = inviteMessage_.toBuilder(); + } + inviteMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(inviteMessage_); + inviteMessage_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + case 274: { + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = promoteMessage_.toBuilder(); + } + promoteMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(promoteMessage_); + promoteMessage_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_DataMessage_GroupMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_DataMessage_GroupMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.class, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupMessage(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional .signalservice.GroupDeleteMessage deleteMessage = 31; + public static final int DELETEMESSAGE_FIELD_NUMBER = 31; + private org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage deleteMessage_; + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public boolean hasDeleteMessage() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage getDeleteMessage() { + return deleteMessage_; + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder getDeleteMessageOrBuilder() { + return deleteMessage_; + } + + // optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + public static final int MEMBERLEFTMESSAGE_FIELD_NUMBER = 32; + private org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage memberLeftMessage_; + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public boolean hasMemberLeftMessage() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage getMemberLeftMessage() { + return memberLeftMessage_; + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder getMemberLeftMessageOrBuilder() { + return memberLeftMessage_; + } + + // optional .signalservice.GroupInviteMessage inviteMessage = 33; + public static final int INVITEMESSAGE_FIELD_NUMBER = 33; + private org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage inviteMessage_; + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public boolean hasInviteMessage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage getInviteMessage() { + return inviteMessage_; + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder getInviteMessageOrBuilder() { + return inviteMessage_; + } + + // optional .signalservice.GroupPromoteMessage promoteMessage = 34; + public static final int PROMOTEMESSAGE_FIELD_NUMBER = 34; + private org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage promoteMessage_; + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public boolean hasPromoteMessage() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage getPromoteMessage() { + return promoteMessage_; + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder getPromoteMessageOrBuilder() { + return promoteMessage_; + } + + private void initFields() { + deleteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance(); + memberLeftMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance(); + inviteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance(); + promoteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (hasDeleteMessage()) { + if (!getDeleteMessage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasInviteMessage()) { + if (!getInviteMessage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + if (hasPromoteMessage()) { + if (!getPromoteMessage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(31, deleteMessage_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeMessage(32, memberLeftMessage_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(33, inviteMessage_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(34, promoteMessage_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(31, deleteMessage_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(32, memberLeftMessage_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(33, inviteMessage_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(34, promoteMessage_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code signalservice.DataMessage.GroupMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_DataMessage_GroupMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_DataMessage_GroupMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.class, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getDeleteMessageFieldBuilder(); + getMemberLeftMessageFieldBuilder(); + getInviteMessageFieldBuilder(); + getPromoteMessageFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (deleteMessageBuilder_ == null) { + deleteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance(); + } else { + deleteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (memberLeftMessageBuilder_ == null) { + memberLeftMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance(); + } else { + memberLeftMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (inviteMessageBuilder_ == null) { + inviteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance(); + } else { + inviteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (promoteMessageBuilder_ == null) { + promoteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance(); + } else { + promoteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_DataMessage_GroupMessage_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage build() { + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage result = new org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (deleteMessageBuilder_ == null) { + result.deleteMessage_ = deleteMessage_; + } else { + result.deleteMessage_ = deleteMessageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + if (memberLeftMessageBuilder_ == null) { + result.memberLeftMessage_ = memberLeftMessage_; + } else { + result.memberLeftMessage_ = memberLeftMessageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + if (inviteMessageBuilder_ == null) { + result.inviteMessage_ = inviteMessage_; + } else { + result.inviteMessage_ = inviteMessageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + if (promoteMessageBuilder_ == null) { + result.promoteMessage_ = promoteMessage_; + } else { + result.promoteMessage_ = promoteMessageBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance()) return this; + if (other.hasDeleteMessage()) { + mergeDeleteMessage(other.getDeleteMessage()); + } + if (other.hasMemberLeftMessage()) { + mergeMemberLeftMessage(other.getMemberLeftMessage()); + } + if (other.hasInviteMessage()) { + mergeInviteMessage(other.getInviteMessage()); + } + if (other.hasPromoteMessage()) { + mergePromoteMessage(other.getPromoteMessage()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (hasDeleteMessage()) { + if (!getDeleteMessage().isInitialized()) { + + return false; + } + } + if (hasInviteMessage()) { + if (!getInviteMessage().isInitialized()) { + + return false; + } + } + if (hasPromoteMessage()) { + if (!getPromoteMessage().isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional .signalservice.GroupDeleteMessage deleteMessage = 31; + private org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage deleteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder> deleteMessageBuilder_; + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public boolean hasDeleteMessage() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage getDeleteMessage() { + if (deleteMessageBuilder_ == null) { + return deleteMessage_; + } else { + return deleteMessageBuilder_.getMessage(); + } + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public Builder setDeleteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage value) { + if (deleteMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deleteMessage_ = value; + onChanged(); + } else { + deleteMessageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public Builder setDeleteMessage( + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder builderForValue) { + if (deleteMessageBuilder_ == null) { + deleteMessage_ = builderForValue.build(); + onChanged(); + } else { + deleteMessageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public Builder mergeDeleteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage value) { + if (deleteMessageBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + deleteMessage_ != org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance()) { + deleteMessage_ = + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.newBuilder(deleteMessage_).mergeFrom(value).buildPartial(); + } else { + deleteMessage_ = value; + } + onChanged(); + } else { + deleteMessageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public Builder clearDeleteMessage() { + if (deleteMessageBuilder_ == null) { + deleteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance(); + onChanged(); + } else { + deleteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder getDeleteMessageBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDeleteMessageFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder getDeleteMessageOrBuilder() { + if (deleteMessageBuilder_ != null) { + return deleteMessageBuilder_.getMessageOrBuilder(); + } else { + return deleteMessage_; + } + } + /** + * optional .signalservice.GroupDeleteMessage deleteMessage = 31; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder> + getDeleteMessageFieldBuilder() { + if (deleteMessageBuilder_ == null) { + deleteMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder>( + deleteMessage_, + getParentForChildren(), + isClean()); + deleteMessage_ = null; + } + return deleteMessageBuilder_; + } + + // optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + private org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage memberLeftMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder> memberLeftMessageBuilder_; + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public boolean hasMemberLeftMessage() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage getMemberLeftMessage() { + if (memberLeftMessageBuilder_ == null) { + return memberLeftMessage_; + } else { + return memberLeftMessageBuilder_.getMessage(); + } + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public Builder setMemberLeftMessage(org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage value) { + if (memberLeftMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + memberLeftMessage_ = value; + onChanged(); + } else { + memberLeftMessageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public Builder setMemberLeftMessage( + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder builderForValue) { + if (memberLeftMessageBuilder_ == null) { + memberLeftMessage_ = builderForValue.build(); + onChanged(); + } else { + memberLeftMessageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public Builder mergeMemberLeftMessage(org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage value) { + if (memberLeftMessageBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + memberLeftMessage_ != org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance()) { + memberLeftMessage_ = + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.newBuilder(memberLeftMessage_).mergeFrom(value).buildPartial(); + } else { + memberLeftMessage_ = value; + } + onChanged(); + } else { + memberLeftMessageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public Builder clearMemberLeftMessage() { + if (memberLeftMessageBuilder_ == null) { + memberLeftMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance(); + onChanged(); + } else { + memberLeftMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder getMemberLeftMessageBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getMemberLeftMessageFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder getMemberLeftMessageOrBuilder() { + if (memberLeftMessageBuilder_ != null) { + return memberLeftMessageBuilder_.getMessageOrBuilder(); + } else { + return memberLeftMessage_; + } + } + /** + * optional .signalservice.GroupMemberLeftMessage memberLeftMessage = 32; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder> + getMemberLeftMessageFieldBuilder() { + if (memberLeftMessageBuilder_ == null) { + memberLeftMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder>( + memberLeftMessage_, + getParentForChildren(), + isClean()); + memberLeftMessage_ = null; + } + return memberLeftMessageBuilder_; + } + + // optional .signalservice.GroupInviteMessage inviteMessage = 33; + private org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage inviteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder> inviteMessageBuilder_; + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public boolean hasInviteMessage() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage getInviteMessage() { + if (inviteMessageBuilder_ == null) { + return inviteMessage_; + } else { + return inviteMessageBuilder_.getMessage(); + } + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public Builder setInviteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage value) { + if (inviteMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + inviteMessage_ = value; + onChanged(); + } else { + inviteMessageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public Builder setInviteMessage( + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder builderForValue) { + if (inviteMessageBuilder_ == null) { + inviteMessage_ = builderForValue.build(); + onChanged(); + } else { + inviteMessageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public Builder mergeInviteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage value) { + if (inviteMessageBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + inviteMessage_ != org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance()) { + inviteMessage_ = + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.newBuilder(inviteMessage_).mergeFrom(value).buildPartial(); + } else { + inviteMessage_ = value; + } + onChanged(); + } else { + inviteMessageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public Builder clearInviteMessage() { + if (inviteMessageBuilder_ == null) { + inviteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance(); + onChanged(); + } else { + inviteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder getInviteMessageBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getInviteMessageFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder getInviteMessageOrBuilder() { + if (inviteMessageBuilder_ != null) { + return inviteMessageBuilder_.getMessageOrBuilder(); + } else { + return inviteMessage_; + } + } + /** + * optional .signalservice.GroupInviteMessage inviteMessage = 33; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder> + getInviteMessageFieldBuilder() { + if (inviteMessageBuilder_ == null) { + inviteMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder>( + inviteMessage_, + getParentForChildren(), + isClean()); + inviteMessage_ = null; + } + return inviteMessageBuilder_; + } + + // optional .signalservice.GroupPromoteMessage promoteMessage = 34; + private org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage promoteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder> promoteMessageBuilder_; + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public boolean hasPromoteMessage() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage getPromoteMessage() { + if (promoteMessageBuilder_ == null) { + return promoteMessage_; + } else { + return promoteMessageBuilder_.getMessage(); + } + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public Builder setPromoteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage value) { + if (promoteMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + promoteMessage_ = value; + onChanged(); + } else { + promoteMessageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public Builder setPromoteMessage( + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder builderForValue) { + if (promoteMessageBuilder_ == null) { + promoteMessage_ = builderForValue.build(); + onChanged(); + } else { + promoteMessageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public Builder mergePromoteMessage(org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage value) { + if (promoteMessageBuilder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + promoteMessage_ != org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance()) { + promoteMessage_ = + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.newBuilder(promoteMessage_).mergeFrom(value).buildPartial(); + } else { + promoteMessage_ = value; + } + onChanged(); + } else { + promoteMessageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public Builder clearPromoteMessage() { + if (promoteMessageBuilder_ == null) { + promoteMessage_ = org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance(); + onChanged(); + } else { + promoteMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder getPromoteMessageBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getPromoteMessageFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder getPromoteMessageOrBuilder() { + if (promoteMessageBuilder_ != null) { + return promoteMessageBuilder_.getMessageOrBuilder(); + } else { + return promoteMessage_; + } + } + /** + * optional .signalservice.GroupPromoteMessage promoteMessage = 34; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder> + getPromoteMessageFieldBuilder() { + if (promoteMessageBuilder_ == null) { + promoteMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder>( + promoteMessage_, + getParentForChildren(), + isClean()); + promoteMessage_ = null; + } + return promoteMessageBuilder_; + } + + // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.GroupMessage) + } + + static { + defaultInstance = new GroupMessage(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.DataMessage.GroupMessage) + } + public interface ClosedGroupControlMessageOrBuilder extends com.google.protobuf.MessageOrBuilder { @@ -14336,6 +15482,28 @@ public final class SignalServiceProtos { } } + // optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + public static final int GROUPMESSAGE_FIELD_NUMBER = 120; + private org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage groupMessage_; + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public boolean hasGroupMessage() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getGroupMessage() { + return groupMessage_; + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder getGroupMessageOrBuilder() { + return groupMessage_; + } + private void initFields() { body_ = ""; attachments_ = java.util.Collections.emptyList(); @@ -14350,6 +15518,7 @@ public final class SignalServiceProtos { openGroupInvitation_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.getDefaultInstance(); closedGroupControlMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.getDefaultInstance(); syncTarget_ = ""; + groupMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -14392,6 +15561,12 @@ public final class SignalServiceProtos { return false; } } + if (hasGroupMessage()) { + if (!getGroupMessage().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -14438,6 +15613,9 @@ public final class SignalServiceProtos { if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeBytes(105, getSyncTargetBytes()); } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + output.writeMessage(120, groupMessage_); + } getUnknownFields().writeTo(output); } @@ -14499,6 +15677,10 @@ public final class SignalServiceProtos { size += com.google.protobuf.CodedOutputStream .computeBytesSize(105, getSyncTargetBytes()); } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(120, groupMessage_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -14614,6 +15796,7 @@ public final class SignalServiceProtos { getProfileFieldBuilder(); getOpenGroupInvitationFieldBuilder(); getClosedGroupControlMessageFieldBuilder(); + getGroupMessageFieldBuilder(); } } private static Builder create() { @@ -14676,6 +15859,12 @@ public final class SignalServiceProtos { bitField0_ = (bitField0_ & ~0x00000800); syncTarget_ = ""; bitField0_ = (bitField0_ & ~0x00001000); + if (groupMessageBuilder_ == null) { + groupMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); + } else { + groupMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00002000); return this; } @@ -14786,6 +15975,14 @@ public final class SignalServiceProtos { to_bitField0_ |= 0x00000400; } result.syncTarget_ = syncTarget_; + if (((from_bitField0_ & 0x00002000) == 0x00002000)) { + to_bitField0_ |= 0x00000800; + } + if (groupMessageBuilder_ == null) { + result.groupMessage_ = groupMessage_; + } else { + result.groupMessage_ = groupMessageBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -14891,6 +16088,9 @@ public final class SignalServiceProtos { syncTarget_ = other.syncTarget_; onChanged(); } + if (other.hasGroupMessage()) { + mergeGroupMessage(other.getGroupMessage()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -14932,6 +16132,12 @@ public final class SignalServiceProtos { return false; } } + if (hasGroupMessage()) { + if (!getGroupMessage().isInitialized()) { + + return false; + } + } return true; } @@ -16302,6 +17508,123 @@ public final class SignalServiceProtos { return this; } + // optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + private org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage groupMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder> groupMessageBuilder_; + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public boolean hasGroupMessage() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getGroupMessage() { + if (groupMessageBuilder_ == null) { + return groupMessage_; + } else { + return groupMessageBuilder_.getMessage(); + } + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public Builder setGroupMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage value) { + if (groupMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + groupMessage_ = value; + onChanged(); + } else { + groupMessageBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + return this; + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public Builder setGroupMessage( + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder builderForValue) { + if (groupMessageBuilder_ == null) { + groupMessage_ = builderForValue.build(); + onChanged(); + } else { + groupMessageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + return this; + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public Builder mergeGroupMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage value) { + if (groupMessageBuilder_ == null) { + if (((bitField0_ & 0x00002000) == 0x00002000) && + groupMessage_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance()) { + groupMessage_ = + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.newBuilder(groupMessage_).mergeFrom(value).buildPartial(); + } else { + groupMessage_ = value; + } + onChanged(); + } else { + groupMessageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + return this; + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public Builder clearGroupMessage() { + if (groupMessageBuilder_ == null) { + groupMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); + onChanged(); + } else { + groupMessageBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00002000); + return this; + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder getGroupMessageBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getGroupMessageFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder getGroupMessageOrBuilder() { + if (groupMessageBuilder_ != null) { + return groupMessageBuilder_.getMessageOrBuilder(); + } else { + return groupMessage_; + } + } + /** + * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder> + getGroupMessageFieldBuilder() { + if (groupMessageBuilder_ == null) { + groupMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.Builder, org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder>( + groupMessage_, + getParentForChildren(), + isClean()); + groupMessage_ = null; + } + return groupMessageBuilder_; + } + // @@protoc_insertion_point(builder_scope:signalservice.DataMessage) } @@ -16313,6 +17636,2224 @@ public final class SignalServiceProtos { // @@protoc_insertion_point(class_scope:signalservice.DataMessage) } + public interface GroupDeleteMessageOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required bytes publicKey = 1; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + boolean hasPublicKey(); + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getPublicKey(); + + // required bytes lastEncryptionKey = 2; + /** + * required bytes lastEncryptionKey = 2; + * + *
+     * @required
+     * 
+ */ + boolean hasLastEncryptionKey(); + /** + * required bytes lastEncryptionKey = 2; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getLastEncryptionKey(); + } + /** + * Protobuf type {@code signalservice.GroupDeleteMessage} + */ + public static final class GroupDeleteMessage extends + com.google.protobuf.GeneratedMessage + implements GroupDeleteMessageOrBuilder { + // Use GroupDeleteMessage.newBuilder() to construct. + private GroupDeleteMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupDeleteMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupDeleteMessage defaultInstance; + public static GroupDeleteMessage getDefaultInstance() { + return defaultInstance; + } + + public GroupDeleteMessage getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupDeleteMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + publicKey_ = input.readBytes(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + lastEncryptionKey_ = input.readBytes(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupDeleteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupDeleteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupDeleteMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupDeleteMessage(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required bytes publicKey = 1; + public static final int PUBLICKEY_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString publicKey_; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + + // required bytes lastEncryptionKey = 2; + public static final int LASTENCRYPTIONKEY_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString lastEncryptionKey_; + /** + * required bytes lastEncryptionKey = 2; + * + *
+     * @required
+     * 
+ */ + public boolean hasLastEncryptionKey() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required bytes lastEncryptionKey = 2; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getLastEncryptionKey() { + return lastEncryptionKey_; + } + + private void initFields() { + publicKey_ = com.google.protobuf.ByteString.EMPTY; + lastEncryptionKey_ = com.google.protobuf.ByteString.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasPublicKey()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasLastEncryptionKey()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, lastEncryptionKey_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, lastEncryptionKey_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code signalservice.GroupDeleteMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupDeleteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupDeleteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + publicKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + lastEncryptionKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupDeleteMessage_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage build() { + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage result = new org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.publicKey_ = publicKey_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.lastEncryptionKey_ = lastEncryptionKey_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage.getDefaultInstance()) return this; + if (other.hasPublicKey()) { + setPublicKey(other.getPublicKey()); + } + if (other.hasLastEncryptionKey()) { + setLastEncryptionKey(other.getLastEncryptionKey()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasPublicKey()) { + + return false; + } + if (!hasLastEncryptionKey()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.GroupDeleteMessage) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required bytes publicKey = 1; + private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder setPublicKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + publicKey_ = value; + onChanged(); + return this; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder clearPublicKey() { + bitField0_ = (bitField0_ & ~0x00000001); + publicKey_ = getDefaultInstance().getPublicKey(); + onChanged(); + return this; + } + + // required bytes lastEncryptionKey = 2; + private com.google.protobuf.ByteString lastEncryptionKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes lastEncryptionKey = 2; + * + *
+       * @required
+       * 
+ */ + public boolean hasLastEncryptionKey() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required bytes lastEncryptionKey = 2; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getLastEncryptionKey() { + return lastEncryptionKey_; + } + /** + * required bytes lastEncryptionKey = 2; + * + *
+       * @required
+       * 
+ */ + public Builder setLastEncryptionKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + lastEncryptionKey_ = value; + onChanged(); + return this; + } + /** + * required bytes lastEncryptionKey = 2; + * + *
+       * @required
+       * 
+ */ + public Builder clearLastEncryptionKey() { + bitField0_ = (bitField0_ & ~0x00000002); + lastEncryptionKey_ = getDefaultInstance().getLastEncryptionKey(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:signalservice.GroupDeleteMessage) + } + + static { + defaultInstance = new GroupDeleteMessage(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.GroupDeleteMessage) + } + + public interface GroupMemberLeftMessageOrBuilder + extends com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code signalservice.GroupMemberLeftMessage} + * + *
+   * the pubkey of the member left is included as part of the closed group encryption logic (senderIdentity on desktop)
+   * 
+ */ + public static final class GroupMemberLeftMessage extends + com.google.protobuf.GeneratedMessage + implements GroupMemberLeftMessageOrBuilder { + // Use GroupMemberLeftMessage.newBuilder() to construct. + private GroupMemberLeftMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupMemberLeftMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupMemberLeftMessage defaultInstance; + public static GroupMemberLeftMessage getDefaultInstance() { + return defaultInstance; + } + + public GroupMemberLeftMessage getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupMemberLeftMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupMemberLeftMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupMemberLeftMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupMemberLeftMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupMemberLeftMessage(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private void initFields() { + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code signalservice.GroupMemberLeftMessage} + * + *
+     * the pubkey of the member left is included as part of the closed group encryption logic (senderIdentity on desktop)
+     * 
+ */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupMemberLeftMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupMemberLeftMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupMemberLeftMessage_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage build() { + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage result = new org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage(this); + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.GroupMemberLeftMessage) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + // @@protoc_insertion_point(builder_scope:signalservice.GroupMemberLeftMessage) + } + + static { + defaultInstance = new GroupMemberLeftMessage(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.GroupMemberLeftMessage) + } + + public interface GroupInviteMessageOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required bytes publicKey = 1; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + boolean hasPublicKey(); + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getPublicKey(); + + // required string name = 2; + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + boolean hasName(); + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + java.lang.String getName(); + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString + getNameBytes(); + + // required bytes memberPrivateKey = 3; + /** + * required bytes memberPrivateKey = 3; + * + *
+     * @required
+     * 
+ */ + boolean hasMemberPrivateKey(); + /** + * required bytes memberPrivateKey = 3; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getMemberPrivateKey(); + } + /** + * Protobuf type {@code signalservice.GroupInviteMessage} + */ + public static final class GroupInviteMessage extends + com.google.protobuf.GeneratedMessage + implements GroupInviteMessageOrBuilder { + // Use GroupInviteMessage.newBuilder() to construct. + private GroupInviteMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupInviteMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupInviteMessage defaultInstance; + public static GroupInviteMessage getDefaultInstance() { + return defaultInstance; + } + + public GroupInviteMessage getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupInviteMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + publicKey_ = input.readBytes(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + name_ = input.readBytes(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + memberPrivateKey_ = input.readBytes(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupInviteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupInviteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupInviteMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupInviteMessage(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required bytes publicKey = 1; + public static final int PUBLICKEY_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString publicKey_; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + + // required string name = 2; + public static final int NAME_FIELD_NUMBER = 2; + private java.lang.Object name_; + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + public boolean hasName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + name_ = s; + } + return s; + } + } + /** + * required string name = 2; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // required bytes memberPrivateKey = 3; + public static final int MEMBERPRIVATEKEY_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString memberPrivateKey_; + /** + * required bytes memberPrivateKey = 3; + * + *
+     * @required
+     * 
+ */ + public boolean hasMemberPrivateKey() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes memberPrivateKey = 3; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getMemberPrivateKey() { + return memberPrivateKey_; + } + + private void initFields() { + publicKey_ = com.google.protobuf.ByteString.EMPTY; + name_ = ""; + memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasPublicKey()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasName()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasMemberPrivateKey()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getNameBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, memberPrivateKey_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, getNameBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, memberPrivateKey_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code signalservice.GroupInviteMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupInviteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupInviteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + publicKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + name_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupInviteMessage_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage build() { + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage result = new org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.publicKey_ = publicKey_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.name_ = name_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.memberPrivateKey_ = memberPrivateKey_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage.getDefaultInstance()) return this; + if (other.hasPublicKey()) { + setPublicKey(other.getPublicKey()); + } + if (other.hasName()) { + bitField0_ |= 0x00000002; + name_ = other.name_; + onChanged(); + } + if (other.hasMemberPrivateKey()) { + setMemberPrivateKey(other.getMemberPrivateKey()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasPublicKey()) { + + return false; + } + if (!hasName()) { + + return false; + } + if (!hasMemberPrivateKey()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.GroupInviteMessage) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required bytes publicKey = 1; + private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder setPublicKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + publicKey_ = value; + onChanged(); + return this; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder clearPublicKey() { + bitField0_ = (bitField0_ & ~0x00000001); + publicKey_ = getDefaultInstance().getPublicKey(); + onChanged(); + return this; + } + + // required string name = 2; + private java.lang.Object name_ = ""; + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public boolean hasName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + java.lang.String s = ((com.google.protobuf.ByteString) ref) + .toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + name_ = value; + onChanged(); + return this; + } + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public Builder clearName() { + bitField0_ = (bitField0_ & ~0x00000002); + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * required string name = 2; + * + *
+       * @required
+       * 
+ */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + name_ = value; + onChanged(); + return this; + } + + // required bytes memberPrivateKey = 3; + private com.google.protobuf.ByteString memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes memberPrivateKey = 3; + * + *
+       * @required
+       * 
+ */ + public boolean hasMemberPrivateKey() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * required bytes memberPrivateKey = 3; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getMemberPrivateKey() { + return memberPrivateKey_; + } + /** + * required bytes memberPrivateKey = 3; + * + *
+       * @required
+       * 
+ */ + public Builder setMemberPrivateKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + memberPrivateKey_ = value; + onChanged(); + return this; + } + /** + * required bytes memberPrivateKey = 3; + * + *
+       * @required
+       * 
+ */ + public Builder clearMemberPrivateKey() { + bitField0_ = (bitField0_ & ~0x00000004); + memberPrivateKey_ = getDefaultInstance().getMemberPrivateKey(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:signalservice.GroupInviteMessage) + } + + static { + defaultInstance = new GroupInviteMessage(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.GroupInviteMessage) + } + + public interface GroupPromoteMessageOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required bytes publicKey = 1; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + boolean hasPublicKey(); + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getPublicKey(); + + // required bytes encryptedPrivateKey = 2; + /** + * required bytes encryptedPrivateKey = 2; + * + *
+     * @required
+     * 
+ */ + boolean hasEncryptedPrivateKey(); + /** + * required bytes encryptedPrivateKey = 2; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getEncryptedPrivateKey(); + } + /** + * Protobuf type {@code signalservice.GroupPromoteMessage} + */ + public static final class GroupPromoteMessage extends + com.google.protobuf.GeneratedMessage + implements GroupPromoteMessageOrBuilder { + // Use GroupPromoteMessage.newBuilder() to construct. + private GroupPromoteMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupPromoteMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupPromoteMessage defaultInstance; + public static GroupPromoteMessage getDefaultInstance() { + return defaultInstance; + } + + public GroupPromoteMessage getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupPromoteMessage( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + publicKey_ = input.readBytes(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + encryptedPrivateKey_ = input.readBytes(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupPromoteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupPromoteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupPromoteMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupPromoteMessage(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + // required bytes publicKey = 1; + public static final int PUBLICKEY_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString publicKey_; + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + + // required bytes encryptedPrivateKey = 2; + public static final int ENCRYPTEDPRIVATEKEY_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString encryptedPrivateKey_; + /** + * required bytes encryptedPrivateKey = 2; + * + *
+     * @required
+     * 
+ */ + public boolean hasEncryptedPrivateKey() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required bytes encryptedPrivateKey = 2; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getEncryptedPrivateKey() { + return encryptedPrivateKey_; + } + + private void initFields() { + publicKey_ = com.google.protobuf.ByteString.EMPTY; + encryptedPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasPublicKey()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasEncryptedPrivateKey()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, encryptedPrivateKey_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, publicKey_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, encryptedPrivateKey_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code signalservice.GroupPromoteMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupPromoteMessage_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupPromoteMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.class, org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + publicKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + encryptedPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupPromoteMessage_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage build() { + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage result = new org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.publicKey_ = publicKey_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.encryptedPrivateKey_ = encryptedPrivateKey_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage.getDefaultInstance()) return this; + if (other.hasPublicKey()) { + setPublicKey(other.getPublicKey()); + } + if (other.hasEncryptedPrivateKey()) { + setEncryptedPrivateKey(other.getEncryptedPrivateKey()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasPublicKey()) { + + return false; + } + if (!hasEncryptedPrivateKey()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.GroupPromoteMessage) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required bytes publicKey = 1; + private com.google.protobuf.ByteString publicKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public boolean hasPublicKey() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getPublicKey() { + return publicKey_; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder setPublicKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + publicKey_ = value; + onChanged(); + return this; + } + /** + * required bytes publicKey = 1; + * + *
+       * @required
+       * 
+ */ + public Builder clearPublicKey() { + bitField0_ = (bitField0_ & ~0x00000001); + publicKey_ = getDefaultInstance().getPublicKey(); + onChanged(); + return this; + } + + // required bytes encryptedPrivateKey = 2; + private com.google.protobuf.ByteString encryptedPrivateKey_ = com.google.protobuf.ByteString.EMPTY; + /** + * required bytes encryptedPrivateKey = 2; + * + *
+       * @required
+       * 
+ */ + public boolean hasEncryptedPrivateKey() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * required bytes encryptedPrivateKey = 2; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getEncryptedPrivateKey() { + return encryptedPrivateKey_; + } + /** + * required bytes encryptedPrivateKey = 2; + * + *
+       * @required
+       * 
+ */ + public Builder setEncryptedPrivateKey(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + encryptedPrivateKey_ = value; + onChanged(); + return this; + } + /** + * required bytes encryptedPrivateKey = 2; + * + *
+       * @required
+       * 
+ */ + public Builder clearEncryptedPrivateKey() { + bitField0_ = (bitField0_ & ~0x00000002); + encryptedPrivateKey_ = getDefaultInstance().getEncryptedPrivateKey(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:signalservice.GroupPromoteMessage) + } + + static { + defaultInstance = new GroupPromoteMessage(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.GroupPromoteMessage) + } + public interface CallMessageOrBuilder extends com.google.protobuf.MessageOrBuilder { @@ -25059,6 +28600,11 @@ public final class SignalServiceProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_signalservice_DataMessage_OpenGroupInvitation_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_DataMessage_GroupMessage_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_DataMessage_GroupMessage_fieldAccessorTable; private static com.google.protobuf.Descriptors.Descriptor internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor; private static @@ -25074,6 +28620,26 @@ public final class SignalServiceProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_signalservice_DataMessage_Reaction_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_GroupDeleteMessage_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_GroupDeleteMessage_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_GroupMemberLeftMessage_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_GroupMemberLeftMessage_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_GroupInviteMessage_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_GroupInviteMessage_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_GroupPromoteMessage_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_GroupPromoteMessage_fieldAccessorTable; private static com.google.protobuf.Descriptors.Descriptor internal_static_signalservice_CallMessage_descriptor; private static @@ -25150,7 +28716,7 @@ public final class SignalServiceProtos { "(\014\"\226\001\n\032DataExtractionNotification\022<\n\004typ" + "e\030\001 \002(\0162..signalservice.DataExtractionNo" + "tification.Type\022\021\n\ttimestamp\030\002 \001(\004\"\'\n\004Ty" + - "pe\022\016\n\nSCREENSHOT\020\001\022\017\n\013MEDIA_SAVED\020\002\"\314\016\n\013" + + "pe\022\016\n\nSCREENSHOT\020\001\022\017\n\013MEDIA_SAVED\020\002\"\216\021\n\013" + "DataMessage\022\014\n\004body\030\001 \001(\t\0225\n\013attachments" + "\030\002 \003(\0132 .signalservice.AttachmentPointer", "\022\r\n\005flags\030\004 \001(\r\022\023\n\013expireTimer\030\005 \001(\r\022\022\n\n" + @@ -25164,76 +28730,90 @@ public final class SignalServiceProtos { ".signalservice.DataMessage.OpenGroupInvi" + "tation\022W\n\031closedGroupControlMessage\030h \001(", "\01324.signalservice.DataMessage.ClosedGrou" + - "pControlMessage\022\022\n\nsyncTarget\030i \001(\t\032\225\002\n\005" + - "Quote\022\n\n\002id\030\001 \002(\004\022\016\n\006author\030\002 \002(\t\022\014\n\004tex" + - "t\030\003 \001(\t\022F\n\013attachments\030\004 \003(\01321.signalser" + - "vice.DataMessage.Quote.QuotedAttachment\032" + - "\231\001\n\020QuotedAttachment\022\023\n\013contentType\030\001 \001(" + - "\t\022\020\n\010fileName\030\002 \001(\t\0223\n\tthumbnail\030\003 \001(\0132 " + - ".signalservice.AttachmentPointer\022\r\n\005flag" + - "s\030\004 \001(\r\"\032\n\005Flags\022\021\n\rVOICE_MESSAGE\020\001\032V\n\007P" + - "review\022\013\n\003url\030\001 \002(\t\022\r\n\005title\030\002 \001(\t\022/\n\005im", - "age\030\003 \001(\0132 .signalservice.AttachmentPoin" + - "ter\032:\n\013LokiProfile\022\023\n\013displayName\030\001 \001(\t\022" + - "\026\n\016profilePicture\030\002 \001(\t\0320\n\023OpenGroupInvi" + - "tation\022\013\n\003url\030\001 \002(\t\022\014\n\004name\030\003 \002(\t\032\203\005\n\031Cl" + - "osedGroupControlMessage\022G\n\004type\030\001 \002(\01629." + - "signalservice.DataMessage.ClosedGroupCon" + - "trolMessage.Type\022\021\n\tpublicKey\030\002 \001(\014\022\014\n\004n" + - "ame\030\003 \001(\t\0221\n\021encryptionKeyPair\030\004 \001(\0132\026.s" + - "ignalservice.KeyPair\022\017\n\007members\030\005 \003(\014\022\016\n" + - "\006admins\030\006 \003(\014\022U\n\010wrappers\030\007 \003(\0132C.signal", - "service.DataMessage.ClosedGroupControlMe" + - "ssage.KeyPairWrapper\022\027\n\017expirationTimer\030" + - "\010 \001(\r\022\030\n\020memberPrivateKey\030\t \001(\014\022\022\n\npriva" + - "teKey\030\n \001(\014\032=\n\016KeyPairWrapper\022\021\n\tpublicK" + - "ey\030\001 \002(\014\022\030\n\020encryptedKeyPair\030\002 \002(\014\"\312\001\n\004T" + - "ype\022\007\n\003NEW\020\001\022\027\n\023ENCRYPTION_KEY_PAIR\020\003\022\017\n" + - "\013NAME_CHANGE\020\004\022\021\n\rMEMBERS_ADDED\020\005\022\023\n\017MEM" + - "BERS_REMOVED\020\006\022\017\n\013MEMBER_LEFT\020\007\022\n\n\006INVIT" + - "E\020\t\022\013\n\007PROMOTE\020\n\022\020\n\014DELETE_GROUP\020\013\022\023\n\017DE" + - "LETE_MESSAGES\020\014\022\026\n\022DELETE_ATTACHMENTS\020\r\032", - "\222\001\n\010Reaction\022\n\n\002id\030\001 \002(\004\022\016\n\006author\030\002 \002(\t" + - "\022\r\n\005emoji\030\003 \001(\t\022:\n\006action\030\004 \002(\0162*.signal" + - "service.DataMessage.Reaction.Action\"\037\n\006A" + - "ction\022\t\n\005REACT\020\000\022\n\n\006REMOVE\020\001\"$\n\005Flags\022\033\n" + - "\027EXPIRATION_TIMER_UPDATE\020\002\"\352\001\n\013CallMessa" + - "ge\022-\n\004type\030\001 \002(\0162\037.signalservice.CallMes" + - "sage.Type\022\014\n\004sdps\030\002 \003(\t\022\027\n\017sdpMLineIndex" + - "es\030\003 \003(\r\022\017\n\007sdpMids\030\004 \003(\t\022\014\n\004uuid\030\005 \002(\t\"" + - "f\n\004Type\022\r\n\tPRE_OFFER\020\006\022\t\n\005OFFER\020\001\022\n\n\006ANS" + - "WER\020\002\022\026\n\022PROVISIONAL_ANSWER\020\003\022\022\n\016ICE_CAN", - "DIDATES\020\004\022\014\n\010END_CALL\020\005\"\265\001\n\023SharedConfig" + - "Message\0225\n\004type\030\001 \002(\0162\'.signalservice.Sh" + - "aredConfigMessage.Type\022\014\n\004data\030\002 \002(\014\"Y\n\004" + - "Type\022\010\n\004USER\020\001\022\025\n\021CLOSED_GROUP_INFO\020\002\022\023\n" + - "\017ENCRYPTION_KEYS\020\003\022\033\n\027CONVERSATION_READ_" + - "STATE\020\004\"\245\004\n\024ConfigurationMessage\022E\n\014clos" + - "edGroups\030\001 \003(\0132/.signalservice.Configura" + - "tionMessage.ClosedGroup\022\022\n\nopenGroups\030\002 " + - "\003(\t\022\023\n\013displayName\030\003 \001(\t\022\026\n\016profilePictu" + - "re\030\004 \001(\t\022\022\n\nprofileKey\030\005 \001(\014\022=\n\010contacts", - "\030\006 \003(\0132+.signalservice.ConfigurationMess" + - "age.Contact\032\233\001\n\013ClosedGroup\022\021\n\tpublicKey" + - "\030\001 \001(\014\022\014\n\004name\030\002 \001(\t\0221\n\021encryptionKeyPai" + - "r\030\003 \001(\0132\026.signalservice.KeyPair\022\017\n\007membe" + - "rs\030\004 \003(\014\022\016\n\006admins\030\005 \003(\014\022\027\n\017expirationTi" + - "mer\030\006 \001(\r\032\223\001\n\007Contact\022\021\n\tpublicKey\030\001 \002(\014" + - "\022\014\n\004name\030\002 \002(\t\022\026\n\016profilePicture\030\003 \001(\t\022\022" + - "\n\nprofileKey\030\004 \001(\014\022\022\n\nisApproved\030\005 \001(\010\022\021" + - "\n\tisBlocked\030\006 \001(\010\022\024\n\014didApproveMe\030\007 \001(\010\"" + - ",\n\026MessageRequestResponse\022\022\n\nisApproved\030", - "\001 \002(\010\"u\n\016ReceiptMessage\0220\n\004type\030\001 \002(\0162\"." + - "signalservice.ReceiptMessage.Type\022\021\n\ttim" + - "estamp\030\002 \003(\004\"\036\n\004Type\022\014\n\010DELIVERY\020\000\022\010\n\004RE" + - "AD\020\001\"\354\001\n\021AttachmentPointer\022\n\n\002id\030\001 \002(\006\022\023" + - "\n\013contentType\030\002 \001(\t\022\013\n\003key\030\003 \001(\014\022\014\n\004size" + - "\030\004 \001(\r\022\021\n\tthumbnail\030\005 \001(\014\022\016\n\006digest\030\006 \001(" + - "\014\022\020\n\010fileName\030\007 \001(\t\022\r\n\005flags\030\010 \001(\r\022\r\n\005wi" + - "dth\030\t \001(\r\022\016\n\006height\030\n \001(\r\022\017\n\007caption\030\013 \001" + - "(\t\022\013\n\003url\030e \001(\t\"\032\n\005Flags\022\021\n\rVOICE_MESSAG" + - "E\020\001B3\n\034org.session.libsignal.protosB\023Sig", - "nalServiceProtos" + "pControlMessage\022\022\n\nsyncTarget\030i \001(\t\022=\n\014g" + + "roupMessage\030x \001(\0132\'.signalservice.DataMe" + + "ssage.GroupMessage\032\225\002\n\005Quote\022\n\n\002id\030\001 \002(\004" + + "\022\016\n\006author\030\002 \002(\t\022\014\n\004text\030\003 \001(\t\022F\n\013attach" + + "ments\030\004 \003(\01321.signalservice.DataMessage." + + "Quote.QuotedAttachment\032\231\001\n\020QuotedAttachm" + + "ent\022\023\n\013contentType\030\001 \001(\t\022\020\n\010fileName\030\002 \001" + + "(\t\0223\n\tthumbnail\030\003 \001(\0132 .signalservice.At" + + "tachmentPointer\022\r\n\005flags\030\004 \001(\r\"\032\n\005Flags\022", + "\021\n\rVOICE_MESSAGE\020\001\032V\n\007Preview\022\013\n\003url\030\001 \002" + + "(\t\022\r\n\005title\030\002 \001(\t\022/\n\005image\030\003 \001(\0132 .signa" + + "lservice.AttachmentPointer\032:\n\013LokiProfil" + + "e\022\023\n\013displayName\030\001 \001(\t\022\026\n\016profilePicture" + + "\030\002 \001(\t\0320\n\023OpenGroupInvitation\022\013\n\003url\030\001 \002" + + "(\t\022\014\n\004name\030\003 \002(\t\032\200\002\n\014GroupMessage\0228\n\rdel" + + "eteMessage\030\037 \001(\0132!.signalservice.GroupDe" + + "leteMessage\022@\n\021memberLeftMessage\030 \001(\0132%" + + ".signalservice.GroupMemberLeftMessage\0228\n" + + "\rinviteMessage\030! \001(\0132!.signalservice.Gro", + "upInviteMessage\022:\n\016promoteMessage\030\" \001(\0132" + + "\".signalservice.GroupPromoteMessage\032\203\005\n\031" + + "ClosedGroupControlMessage\022G\n\004type\030\001 \002(\0162" + + "9.signalservice.DataMessage.ClosedGroupC" + + "ontrolMessage.Type\022\021\n\tpublicKey\030\002 \001(\014\022\014\n" + + "\004name\030\003 \001(\t\0221\n\021encryptionKeyPair\030\004 \001(\0132\026" + + ".signalservice.KeyPair\022\017\n\007members\030\005 \003(\014\022" + + "\016\n\006admins\030\006 \003(\014\022U\n\010wrappers\030\007 \003(\0132C.sign" + + "alservice.DataMessage.ClosedGroupControl" + + "Message.KeyPairWrapper\022\027\n\017expirationTime", + "r\030\010 \001(\r\022\030\n\020memberPrivateKey\030\t \001(\014\022\022\n\npri" + + "vateKey\030\n \001(\014\032=\n\016KeyPairWrapper\022\021\n\tpubli" + + "cKey\030\001 \002(\014\022\030\n\020encryptedKeyPair\030\002 \002(\014\"\312\001\n" + + "\004Type\022\007\n\003NEW\020\001\022\027\n\023ENCRYPTION_KEY_PAIR\020\003\022" + + "\017\n\013NAME_CHANGE\020\004\022\021\n\rMEMBERS_ADDED\020\005\022\023\n\017M" + + "EMBERS_REMOVED\020\006\022\017\n\013MEMBER_LEFT\020\007\022\n\n\006INV" + + "ITE\020\t\022\013\n\007PROMOTE\020\n\022\020\n\014DELETE_GROUP\020\013\022\023\n\017" + + "DELETE_MESSAGES\020\014\022\026\n\022DELETE_ATTACHMENTS\020" + + "\r\032\222\001\n\010Reaction\022\n\n\002id\030\001 \002(\004\022\016\n\006author\030\002 \002" + + "(\t\022\r\n\005emoji\030\003 \001(\t\022:\n\006action\030\004 \002(\0162*.sign", + "alservice.DataMessage.Reaction.Action\"\037\n" + + "\006Action\022\t\n\005REACT\020\000\022\n\n\006REMOVE\020\001\"$\n\005Flags\022" + + "\033\n\027EXPIRATION_TIMER_UPDATE\020\002\"B\n\022GroupDel" + + "eteMessage\022\021\n\tpublicKey\030\001 \002(\014\022\031\n\021lastEnc" + + "ryptionKey\030\002 \002(\014\"\030\n\026GroupMemberLeftMessa" + + "ge\"O\n\022GroupInviteMessage\022\021\n\tpublicKey\030\001 " + + "\002(\014\022\014\n\004name\030\002 \002(\t\022\030\n\020memberPrivateKey\030\003 " + + "\002(\014\"E\n\023GroupPromoteMessage\022\021\n\tpublicKey\030" + + "\001 \002(\014\022\033\n\023encryptedPrivateKey\030\002 \002(\014\"\352\001\n\013C" + + "allMessage\022-\n\004type\030\001 \002(\0162\037.signalservice", + ".CallMessage.Type\022\014\n\004sdps\030\002 \003(\t\022\027\n\017sdpML" + + "ineIndexes\030\003 \003(\r\022\017\n\007sdpMids\030\004 \003(\t\022\014\n\004uui" + + "d\030\005 \002(\t\"f\n\004Type\022\r\n\tPRE_OFFER\020\006\022\t\n\005OFFER\020" + + "\001\022\n\n\006ANSWER\020\002\022\026\n\022PROVISIONAL_ANSWER\020\003\022\022\n" + + "\016ICE_CANDIDATES\020\004\022\014\n\010END_CALL\020\005\"\265\001\n\023Shar" + + "edConfigMessage\0225\n\004type\030\001 \002(\0162\'.signalse" + + "rvice.SharedConfigMessage.Type\022\014\n\004data\030\002" + + " \002(\014\"Y\n\004Type\022\010\n\004USER\020\001\022\025\n\021CLOSED_GROUP_I" + + "NFO\020\002\022\023\n\017ENCRYPTION_KEYS\020\003\022\033\n\027CONVERSATI" + + "ON_READ_STATE\020\004\"\245\004\n\024ConfigurationMessage", + "\022E\n\014closedGroups\030\001 \003(\0132/.signalservice.C" + + "onfigurationMessage.ClosedGroup\022\022\n\nopenG" + + "roups\030\002 \003(\t\022\023\n\013displayName\030\003 \001(\t\022\026\n\016prof" + + "ilePicture\030\004 \001(\t\022\022\n\nprofileKey\030\005 \001(\014\022=\n\010" + + "contacts\030\006 \003(\0132+.signalservice.Configura" + + "tionMessage.Contact\032\233\001\n\013ClosedGroup\022\021\n\tp" + + "ublicKey\030\001 \001(\014\022\014\n\004name\030\002 \001(\t\0221\n\021encrypti" + + "onKeyPair\030\003 \001(\0132\026.signalservice.KeyPair\022" + + "\017\n\007members\030\004 \003(\014\022\016\n\006admins\030\005 \003(\014\022\027\n\017expi" + + "rationTimer\030\006 \001(\r\032\223\001\n\007Contact\022\021\n\tpublicK", + "ey\030\001 \002(\014\022\014\n\004name\030\002 \002(\t\022\026\n\016profilePicture" + + "\030\003 \001(\t\022\022\n\nprofileKey\030\004 \001(\014\022\022\n\nisApproved" + + "\030\005 \001(\010\022\021\n\tisBlocked\030\006 \001(\010\022\024\n\014didApproveM" + + "e\030\007 \001(\010\",\n\026MessageRequestResponse\022\022\n\nisA" + + "pproved\030\001 \002(\010\"u\n\016ReceiptMessage\0220\n\004type\030" + + "\001 \002(\0162\".signalservice.ReceiptMessage.Typ" + + "e\022\021\n\ttimestamp\030\002 \003(\004\"\036\n\004Type\022\014\n\010DELIVERY" + + "\020\000\022\010\n\004READ\020\001\"\354\001\n\021AttachmentPointer\022\n\n\002id" + + "\030\001 \002(\006\022\023\n\013contentType\030\002 \001(\t\022\013\n\003key\030\003 \001(\014" + + "\022\014\n\004size\030\004 \001(\r\022\021\n\tthumbnail\030\005 \001(\014\022\016\n\006dig", + "est\030\006 \001(\014\022\020\n\010fileName\030\007 \001(\t\022\r\n\005flags\030\010 \001" + + "(\r\022\r\n\005width\030\t \001(\r\022\016\n\006height\030\n \001(\r\022\017\n\007cap" + + "tion\030\013 \001(\t\022\013\n\003url\030e \001(\t\"\032\n\005Flags\022\021\n\rVOIC" + + "E_MESSAGE\020\001B3\n\034org.session.libsignal.pro" + + "tosB\023SignalServiceProtos" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -25281,7 +28861,7 @@ public final class SignalServiceProtos { internal_static_signalservice_DataMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_DataMessage_descriptor, - new java.lang.String[] { "Body", "Attachments", "Flags", "ExpireTimer", "ProfileKey", "Timestamp", "Quote", "Preview", "Reaction", "Profile", "OpenGroupInvitation", "ClosedGroupControlMessage", "SyncTarget", }); + new java.lang.String[] { "Body", "Attachments", "Flags", "ExpireTimer", "ProfileKey", "Timestamp", "Quote", "Preview", "Reaction", "Profile", "OpenGroupInvitation", "ClosedGroupControlMessage", "SyncTarget", "GroupMessage", }); internal_static_signalservice_DataMessage_Quote_descriptor = internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(0); internal_static_signalservice_DataMessage_Quote_fieldAccessorTable = new @@ -25312,8 +28892,14 @@ public final class SignalServiceProtos { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_DataMessage_OpenGroupInvitation_descriptor, new java.lang.String[] { "Url", "Name", }); - internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor = + internal_static_signalservice_DataMessage_GroupMessage_descriptor = internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(4); + internal_static_signalservice_DataMessage_GroupMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_DataMessage_GroupMessage_descriptor, + new java.lang.String[] { "DeleteMessage", "MemberLeftMessage", "InviteMessage", "PromoteMessage", }); + internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor = + internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(5); internal_static_signalservice_DataMessage_ClosedGroupControlMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor, @@ -25325,25 +28911,49 @@ public final class SignalServiceProtos { internal_static_signalservice_DataMessage_ClosedGroupControlMessage_KeyPairWrapper_descriptor, new java.lang.String[] { "PublicKey", "EncryptedKeyPair", }); internal_static_signalservice_DataMessage_Reaction_descriptor = - internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(5); + internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(6); internal_static_signalservice_DataMessage_Reaction_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_DataMessage_Reaction_descriptor, new java.lang.String[] { "Id", "Author", "Emoji", "Action", }); - internal_static_signalservice_CallMessage_descriptor = + internal_static_signalservice_GroupDeleteMessage_descriptor = getDescriptor().getMessageTypes().get(7); + internal_static_signalservice_GroupDeleteMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_GroupDeleteMessage_descriptor, + new java.lang.String[] { "PublicKey", "LastEncryptionKey", }); + internal_static_signalservice_GroupMemberLeftMessage_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_signalservice_GroupMemberLeftMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_GroupMemberLeftMessage_descriptor, + new java.lang.String[] { }); + internal_static_signalservice_GroupInviteMessage_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_signalservice_GroupInviteMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_GroupInviteMessage_descriptor, + new java.lang.String[] { "PublicKey", "Name", "MemberPrivateKey", }); + internal_static_signalservice_GroupPromoteMessage_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_signalservice_GroupPromoteMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_GroupPromoteMessage_descriptor, + new java.lang.String[] { "PublicKey", "EncryptedPrivateKey", }); + internal_static_signalservice_CallMessage_descriptor = + getDescriptor().getMessageTypes().get(11); internal_static_signalservice_CallMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_CallMessage_descriptor, new java.lang.String[] { "Type", "Sdps", "SdpMLineIndexes", "SdpMids", "Uuid", }); internal_static_signalservice_SharedConfigMessage_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(12); internal_static_signalservice_SharedConfigMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_SharedConfigMessage_descriptor, new java.lang.String[] { "Type", "Data", }); internal_static_signalservice_ConfigurationMessage_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(13); internal_static_signalservice_ConfigurationMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_ConfigurationMessage_descriptor, @@ -25361,19 +28971,19 @@ public final class SignalServiceProtos { internal_static_signalservice_ConfigurationMessage_Contact_descriptor, new java.lang.String[] { "PublicKey", "Name", "ProfilePicture", "ProfileKey", "IsApproved", "IsBlocked", "DidApproveMe", }); internal_static_signalservice_MessageRequestResponse_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(14); internal_static_signalservice_MessageRequestResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_MessageRequestResponse_descriptor, new java.lang.String[] { "IsApproved", }); internal_static_signalservice_ReceiptMessage_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(15); internal_static_signalservice_ReceiptMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_ReceiptMessage_descriptor, new java.lang.String[] { "Type", "Timestamp", }); internal_static_signalservice_AttachmentPointer_descriptor = - getDescriptor().getMessageTypes().get(12); + getDescriptor().getMessageTypes().get(16); internal_static_signalservice_AttachmentPointer_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_AttachmentPointer_descriptor,