diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt b/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt index 81695e3bf2..52748b4292 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ProfilePictureView.kt @@ -10,7 +10,6 @@ import androidx.annotation.DimenRes import com.bumptech.glide.load.engine.DiskCacheStrategy import network.loki.messenger.R import network.loki.messenger.databinding.ViewProfilePictureBinding -import network.loki.messenger.databinding.ViewUserBinding import org.session.libsession.avatars.ContactColors import org.session.libsession.avatars.PlaceholderAvatarPhoto import org.session.libsession.avatars.ProfileContactPhoto @@ -74,7 +73,7 @@ class ProfilePictureView @JvmOverloads constructor( additionalDisplayName = getUserDisplayName(apk) } } else if(recipient.isOpenGroupInboxRecipient) { - val publicKey = GroupUtil.getDecodedOpenGroupInbox(recipient.address.serialize()) + val publicKey = GroupUtil.getDecodedOpenGroupInboxSessionId(recipient.address.serialize()) this.publicKey = publicKey displayName = getUserDisplayName(publicKey) additionalPublicKey = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index fd2d300b5c..ffd0dc9bd9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -40,6 +40,7 @@ import androidx.annotation.DimenRes import androidx.core.text.set import androidx.core.text.toSpannable import androidx.core.view.drawToBitmap +import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.lifecycle.Lifecycle @@ -79,7 +80,6 @@ import org.session.libsession.messaging.messages.signal.OutgoingTextMessage import org.session.libsession.messaging.messages.visible.Reaction import org.session.libsession.messaging.messages.visible.VisibleMessage import org.session.libsession.messaging.open_groups.OpenGroupApi -import org.session.libsession.messaging.open_groups.OpenGroupApi.Capability import org.session.libsession.messaging.sending_receiving.MessageSender import org.session.libsession.messaging.sending_receiving.attachments.Attachment import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview @@ -112,9 +112,9 @@ import org.thoughtcrime.securesms.conversation.settings.ConversationSettingsActi import org.thoughtcrime.securesms.conversation.v2.ConversationReactionOverlay.OnActionSelectedListener import org.thoughtcrime.securesms.conversation.v2.ConversationReactionOverlay.OnReactionSelectedListener import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.MESSAGE_TIMESTAMP +import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.ON_DELETE import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.ON_REPLY import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.ON_RESEND -import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.ON_DELETE import org.thoughtcrime.securesms.conversation.v2.dialogs.BlockedDialog import org.thoughtcrime.securesms.conversation.v2.dialogs.LinkPreviewDialog import org.thoughtcrime.securesms.conversation.v2.dialogs.SendSeedDialog @@ -177,6 +177,7 @@ import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.SaveAttachmentTask +import org.thoughtcrime.securesms.util.SimpleTextWatcher import org.thoughtcrime.securesms.util.isScrolledToBottom import org.thoughtcrime.securesms.util.push import org.thoughtcrime.securesms.util.toPx @@ -250,11 +251,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe val address = if (sessionId.prefix == IdPrefix.BLINDED && openGroup != null) { storage.getOrCreateBlindedIdMapping(sessionId.hexString, openGroup.server, openGroup.publicKey).sessionId?.let { fromSerialized(it) - } ?: run { - val openGroupInboxId = - "${openGroup.server}!${openGroup.publicKey}!${sessionId.hexString}".toByteArray() - fromSerialized(GroupUtil.getEncodedOpenGroupInboxID(openGroupInboxId)) - } + } ?: GroupUtil.getEncodedOpenGroupInboxID(openGroup, sessionId) } else { it } @@ -263,7 +260,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe } } ?: finish() } - viewModelFactory.create(threadId, MessagingModuleConfiguration.shared.getUserED25519KeyPair(), contentResolver) + viewModelFactory.create(threadId, MessagingModuleConfiguration.shared.getUserED25519KeyPair()) } private var actionMode: ActionMode? = null private var unreadCount = 0 @@ -322,8 +319,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe handleSwipeToReply(message) }, onItemLongPress = { message, position, view -> - if (!isMessageRequestThread() && - (viewModel.openGroup == null || Capability.REACTIONS.name.lowercase() in viewModel.serverCapabilities) + if (!viewModel.isMessageRequestThread && + viewModel.canReactToMessages ) { showEmojiPicker(message, view) } else { @@ -606,26 +603,27 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe // called from onCreate private fun setUpInputBar() { - binding!!.inputBar.isVisible = viewModel.openGroup == null || viewModel.openGroup?.canWrite == true - binding!!.inputBar.delegate = this - binding!!.inputBarRecordingView.delegate = this + val binding = binding ?: return + binding.inputBar.isGone = viewModel.hidesInputBar() + binding.inputBar.delegate = this + binding.inputBarRecordingView.delegate = this // GIF button - binding!!.gifButtonContainer.addView(gifButton) + binding.gifButtonContainer.addView(gifButton) gifButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT) gifButton.onUp = { showGIFPicker() } gifButton.snIsEnabled = false // Document button - binding!!.documentButtonContainer.addView(documentButton) + binding.documentButtonContainer.addView(documentButton) documentButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT) documentButton.onUp = { showDocumentPicker() } documentButton.snIsEnabled = false // Library button - binding!!.libraryButtonContainer.addView(libraryButton) + binding.libraryButtonContainer.addView(libraryButton) libraryButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT) libraryButton.onUp = { pickFromLibrary() } libraryButton.snIsEnabled = false // Camera button - binding!!.cameraButtonContainer.addView(cameraButton) + binding.cameraButtonContainer.addView(cameraButton) cameraButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT) cameraButton.onUp = { showCamera() } cameraButton.snIsEnabled = false @@ -774,7 +772,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe override fun onPrepareOptionsMenu(menu: Menu): Boolean { val recipient = viewModel.recipient ?: return false - if (!isMessageRequestThread()) { + if (!viewModel.isMessageRequestThread) { ConversationMenuHelper.onPrepareOptionsMenu( menu, menuInflater, @@ -860,11 +858,6 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe } } - private fun isMessageRequestThread(): Boolean { - val recipient = viewModel.recipient ?: return false - return !recipient.isGroupRecipient && !recipient.isApproved - } - private fun isOutgoingMessageRequestThread(): Boolean { val recipient = viewModel.recipient ?: return false return !recipient.isGroupRecipient && @@ -1079,11 +1072,13 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe private fun updatePlaceholder() { val recipient = viewModel.recipient ?: return Log.w("Loki", "recipient was null in placeholder update") + val blindedRecipient = viewModel.blindedRecipient val binding = binding ?: return val openGroup = viewModel.openGroup val (textResource, insertParam) = when { recipient.isLocalNumber -> R.string.activity_conversation_empty_state_note_to_self to null openGroup != null && !openGroup.canWrite -> R.string.activity_conversation_empty_state_read_only to recipient.toShortString() + blindedRecipient?.blocksCommunityMessageRequests == true -> R.string.activity_conversation_empty_state_blocks_community_requests to recipient.toShortString() else -> R.string.activity_conversation_empty_state_default to recipient.toShortString() } val showPlaceholder = adapter.itemCount == 0 diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 94fe1e232c..85c9b02c26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -1,10 +1,8 @@ package org.thoughtcrime.securesms.conversation.v2 -import android.content.ContentResolver import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import app.cash.copper.flow.observeQuery import com.goterl.lazysodium.utils.KeyPair import dagger.assisted.Assisted import dagger.assisted.AssistedInject @@ -22,7 +20,6 @@ import org.session.libsession.messaging.utilities.SodiumUtilities import org.session.libsession.utilities.recipients.Recipient import org.session.libsignal.utilities.IdPrefix import org.session.libsignal.utilities.Log -import org.thoughtcrime.securesms.database.DatabaseContentProviders import org.thoughtcrime.securesms.database.Storage import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.repository.ConversationRepository @@ -31,7 +28,6 @@ import java.util.UUID class ConversationViewModel( val threadId: Long, val edKeyPair: KeyPair?, - private val contentResolver: ContentResolver, private val repository: ConversationRepository, private val storage: StorageProtocol ) : ViewModel() { @@ -48,6 +44,15 @@ class ConversationViewModel( val recipient: Recipient? get() = _recipient.value + val blindedRecipient: Recipient? + get() = _recipient.value?.let { recipient -> + when { + recipient.isOpenGroupOutboxRecipient -> recipient + recipient.isOpenGroupInboxRecipient -> repository.maybeGetBlindedRecipient(recipient) + else -> null + } + } + private var _openGroup: RetrieveOnce = RetrieveOnce { storage.getOpenGroup(threadId) } @@ -63,12 +68,22 @@ class ConversationViewModel( ?.let { SessionId(IdPrefix.BLINDED, it) }?.hexString } + val isMessageRequestThread : Boolean + get() { + val recipient = recipient ?: return false + return !recipient.isLocalNumber && !recipient.isGroupRecipient && !recipient.isApproved + } + + val canReactToMessages: Boolean + // allow reactions if the open group is null (normal conversations) or the open group's capabilities include reactions + get() = (openGroup == null || OpenGroupApi.Capability.REACTIONS.name.lowercase() in serverCapabilities) + + init { viewModelScope.launch(Dispatchers.IO) { - contentResolver.observeQuery(DatabaseContentProviders.Conversation.getUriForThread(threadId)) - .collect { - val recipientExists = storage.getRecipientForThread(threadId) != null - if (!recipientExists && _uiState.value.conversationExists) { + repository.recipientUpdateFlow(threadId) + .collect { recipient -> + if (recipient == null && _uiState.value.conversationExists) { _uiState.update { it.copy(conversationExists = false) } } } @@ -200,22 +215,25 @@ class ConversationViewModel( _recipient.updateTo(repository.maybeGetRecipientForThreadId(threadId)) } + fun hidesInputBar(): Boolean = openGroup?.canWrite != true && + blindedRecipient?.blocksCommunityMessageRequests == true + + @dagger.assisted.AssistedFactory interface AssistedFactory { - fun create(threadId: Long, edKeyPair: KeyPair?, contentResolver: ContentResolver): Factory + fun create(threadId: Long, edKeyPair: KeyPair?): Factory } @Suppress("UNCHECKED_CAST") class Factory @AssistedInject constructor( @Assisted private val threadId: Long, @Assisted private val edKeyPair: KeyPair?, - @Assisted private val contentResolver: ContentResolver, private val repository: ConversationRepository, private val storage: StorageProtocol ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { - return ConversationViewModel(threadId, edKeyPair, contentResolver, repository, storage) as T + return ConversationViewModel(threadId, edKeyPair, repository, storage) as T } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index 28fe608976..76b8cc1c31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -63,14 +63,15 @@ public class RecipientDatabase extends Database { private static final String FORCE_SMS_SELECTION = "force_sms_selection"; private static final String NOTIFY_TYPE = "notify_type"; // all, mentions only, none private static final String WRAPPER_HASH = "wrapper_hash"; + private static final String BLOCKS_COMMUNITY_MESSAGE_REQUESTS = "blocks_community_message_requests"; private static final String AUTO_DOWNLOAD = "auto_download"; // 1 / 0 / -1 flag for whether to auto-download in a conversation, or if the user hasn't selected a preference private static final String[] RECIPIENT_PROJECTION = new String[] { BLOCK, APPROVED, APPROVED_ME, NOTIFICATION, CALL_RINGTONE, VIBRATE, CALL_VIBRATE, MUTE_UNTIL, COLOR, SEEN_INVITE_REMINDER, DEFAULT_SUBSCRIPTION_ID, EXPIRE_MESSAGES, REGISTERED, PROFILE_KEY, SYSTEM_DISPLAY_NAME, SYSTEM_PHOTO_URI, SYSTEM_PHONE_LABEL, SYSTEM_CONTACT_URI, SIGNAL_PROFILE_NAME, SIGNAL_PROFILE_AVATAR, PROFILE_SHARING, NOTIFICATION_CHANNEL, - UNIDENTIFIED_ACCESS_MODE, - FORCE_SMS_SELECTION, NOTIFY_TYPE, WRAPPER_HASH, AUTO_DOWNLOAD, + UNIDENTIFIED_ACCESS_MODE, FORCE_SMS_SELECTION, NOTIFY_TYPE, WRAPPER_HASH, + BLOCKS_COMMUNITY_MESSAGE_REQUESTS, AUTO_DOWNLOAD, }; static final List TYPED_RECIPIENT_PROJECTION = Stream.of(RECIPIENT_PROJECTION) @@ -154,6 +155,11 @@ public class RecipientDatabase extends Database { "ADD COLUMN "+WRAPPER_HASH+" TEXT DEFAULT NULL;"; } + public static String getAddBlocksCommunityMessageRequests() { + return "ALTER TABLE "+TABLE_NAME+" "+ + "ADD COLUMN "+BLOCKS_COMMUNITY_MESSAGE_REQUESTS+" INT DEFAULT 0;"; + } + public static final int NOTIFY_TYPE_ALL = 0; public static final int NOTIFY_TYPE_MENTIONS = 1; public static final int NOTIFY_TYPE_NONE = 2; @@ -210,6 +216,7 @@ public class RecipientDatabase extends Database { int unidentifiedAccessMode = cursor.getInt(cursor.getColumnIndexOrThrow(UNIDENTIFIED_ACCESS_MODE)); boolean forceSmsSelection = cursor.getInt(cursor.getColumnIndexOrThrow(FORCE_SMS_SELECTION)) == 1; String wrapperHash = cursor.getString(cursor.getColumnIndexOrThrow(WRAPPER_HASH)); + boolean blocksCommunityMessageRequests = cursor.getInt(cursor.getColumnIndexOrThrow(BLOCKS_COMMUNITY_MESSAGE_REQUESTS)) == 1; MaterialColor color; byte[] profileKey = null; @@ -241,7 +248,7 @@ public class RecipientDatabase extends Database { systemPhoneLabel, systemContactUri, signalProfileName, signalProfileAvatar, profileSharing, notificationChannel, Recipient.UnidentifiedAccessMode.fromMode(unidentifiedAccessMode), - forceSmsSelection, wrapperHash)); + forceSmsSelection, wrapperHash, blocksCommunityMessageRequests)); } public boolean isAutoDownloadFlagSet(Recipient recipient) { @@ -439,6 +446,14 @@ public class RecipientDatabase extends Database { notifyRecipientListeners(); } + public void setBlocksCommunityMessageRequests(@NonNull Recipient recipient, boolean isBlocked) { + ContentValues contentValues = new ContentValues(1); + contentValues.put(BLOCKS_COMMUNITY_MESSAGE_REQUESTS, isBlocked ? 1 : 0); + updateOrInsert(recipient.getAddress(), contentValues); + recipient.resolve().setBlocksCommunityMessageRequests(isBlocked); + notifyRecipientListeners(); + } + private void updateOrInsert(Address address, ContentValues contentValues) { SQLiteDatabase database = databaseHelper.getWritableDatabase(); 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 b0e4eb6d8a..927f0bd2b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -197,6 +197,11 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co db.setProfileKey(recipient, newProfileKey) } + override fun setBlocksCommunityMessageRequests(recipient: Recipient, blocksMessageRequests: Boolean) { + val db = DatabaseComponent.get(context).recipientDatabase() + db.setBlocksCommunityMessageRequests(recipient, blocksMessageRequests) + } + override fun setUserProfilePicture(newProfilePicture: String?, newProfileKey: ByteArray?) { val ourRecipient = fromSerialized(getUserPublicKey()!!).let { Recipient.from(context, it, false) @@ -438,6 +443,10 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co return configFactory.canPerformChange(variant, publicKey, changeTimestampMs) } + override fun isCheckingCommunityRequests(): Boolean { + return configFactory.user?.getCommunityMessageRequests() == true + } + fun notifyUpdates(forConfigObject: ConfigBase) { when (forConfigObject) { is UserProfile -> updateUser(forConfigObject) @@ -1459,7 +1468,7 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co val blindedId = when { recipient.isGroupRecipient -> null recipient.isOpenGroupInboxRecipient -> { - GroupUtil.getDecodedOpenGroupInbox(address) + GroupUtil.getDecodedOpenGroupInboxSessionId(address) } else -> { if (SessionId(address).prefix == IdPrefix.BLINDED) { @@ -1578,16 +1587,12 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co if (mapping.sessionId != null) { return mapping } - val threadDb = DatabaseComponent.get(context).threadDatabase() - threadDb.readerFor(threadDb.conversationList).use { reader -> - while (reader.next != null) { - val recipient = reader.current.recipient - val sessionId = recipient.address.serialize() - if (!recipient.isGroupRecipient && SodiumUtilities.sessionId(sessionId, blindedId, serverPublicKey)) { - val contactMapping = mapping.copy(sessionId = sessionId) - db.addBlindedIdMapping(contactMapping) - return contactMapping - } + getAllContacts().forEach { contact -> + val sessionId = SessionId(contact.sessionID) + if (sessionId.prefix == IdPrefix.STANDARD && SodiumUtilities.sessionId(sessionId.hexString, blindedId, serverPublicKey)) { + val contactMapping = mapping.copy(sessionId = sessionId.hexString) + db.addBlindedIdMapping(contactMapping) + return contactMapping } } db.getBlindedIdMappingsExceptFor(server).forEach { 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 0c0ebb01d6..0928fc5982 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 @@ -89,9 +89,10 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { private static final int lokiV41 = 62; private static final int lokiV42 = 63; private static final int lokiV43 = 64; + private static final int lokiV44 = 65; // Loki - onUpgrade(...) must be updated to use Loki version numbers if Signal makes any database changes - private static final int DATABASE_VERSION = lokiV43; + private static final int DATABASE_VERSION = lokiV44; private static final int MIN_DATABASE_VERSION = lokiV7; private static final String CIPHER3_DATABASE_NAME = "signal.db"; public static final String DATABASE_NAME = "signal_v4.db"; @@ -357,6 +358,7 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { executeStatements(db, ReactionDatabase.CREATE_REACTION_TRIGGERS); db.execSQL(RecipientDatabase.getAddWrapperHash()); + db.execSQL(RecipientDatabase.getAddBlocksCommunityMessageRequests()); db.execSQL(RecipientDatabase.getCreateAutoDownloadCommand()); db.execSQL(RecipientDatabase.getUpdateAutoDownloadValuesCommand()); @@ -603,6 +605,10 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { } if (oldVersion < lokiV43) { + db.execSQL(RecipientDatabase.getAddBlocksCommunityMessageRequests()); + } + + if (oldVersion < lokiV44) { db.execSQL(RecipientDatabase.getCreateAutoDownloadCommand()); db.execSQL(RecipientDatabase.getUpdateAutoDownloadValuesCommand()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ContentModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ContentModule.kt new file mode 100644 index 0000000000..89098a0f16 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ContentModule.kt @@ -0,0 +1,17 @@ +package org.thoughtcrime.securesms.dependencies + +import android.content.Context +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent + +@Module +@InstallIn(SingletonComponent::class) +object ContentModule { + + @Provides + fun providesContentResolver(@ApplicationContext context: Context) =context.contentResolver + +} \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt index 59f324b525..ba519f0a79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt @@ -72,8 +72,8 @@ import org.thoughtcrime.securesms.onboarding.SeedActivity import org.thoughtcrime.securesms.onboarding.SeedReminderViewDelegate import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.preferences.SettingsActivity -import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.showMuteDialog +import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.IP2Country @@ -299,12 +299,17 @@ class HomeActivity : PassphraseRequiredActionBarActivity(), } EventBus.getDefault().register(this@HomeActivity) if (intent.hasExtra(FROM_ONBOARDING) - && intent.getBooleanExtra(FROM_ONBOARDING, false) - && !(getSystemService(NOTIFICATION_SERVICE) as NotificationManager).areNotificationsEnabled() - ) { - Permissions.with(this) - .request(Manifest.permission.POST_NOTIFICATIONS) - .execute() + && intent.getBooleanExtra(FROM_ONBOARDING, false)) { + if ((getSystemService(NOTIFICATION_SERVICE) as NotificationManager).areNotificationsEnabled().not()) { + Permissions.with(this) + .request(Manifest.permission.POST_NOTIFICATIONS) + .execute() + } + configFactory.user?.let { user -> + if (!user.isBlockCommunityMessageRequestsSet()) { + user.setCommunityMessageRequests(false) + } + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsActivity.kt index b8606a3d54..de136694ff 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsActivity.kt @@ -1,9 +1,11 @@ package org.thoughtcrime.securesms.preferences import android.os.Bundle +import dagger.hilt.android.AndroidEntryPoint import network.loki.messenger.R import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity +@AndroidEntryPoint class PrivacySettingsActivity : PassphraseRequiredActionBarActivity() { override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt index eaf48f8688..a04e71ddf1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt @@ -8,6 +8,9 @@ import android.os.Build import android.os.Bundle import android.provider.Settings import androidx.preference.Preference +import androidx.preference.PreferenceCategory +import androidx.preference.PreferenceDataStore +import dagger.hilt.android.AndroidEntryPoint import network.loki.messenger.BuildConfig import network.loki.messenger.R import org.session.libsession.utilities.TextSecurePreferences @@ -15,13 +18,19 @@ import org.session.libsession.utilities.TextSecurePreferences.Companion.isPasswo import org.session.libsession.utilities.TextSecurePreferences.Companion.setScreenLockEnabled import org.thoughtcrime.securesms.ApplicationContext import org.thoughtcrime.securesms.components.SwitchPreferenceCompat +import org.thoughtcrime.securesms.dependencies.ConfigFactory import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.service.KeyCachingService import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.util.CallNotificationBuilder.Companion.areNotificationsEnabled import org.thoughtcrime.securesms.util.IntentUtils +import javax.inject.Inject +@AndroidEntryPoint class PrivacySettingsPreferenceFragment : ListSummaryPreferenceFragment() { + + @Inject lateinit var configFactory: ConfigFactory + override fun onCreate(paramBundle: Bundle?) { super.onCreate(paramBundle) findPreference(TextSecurePreferences.SCREEN_LOCK)!! @@ -30,6 +39,33 @@ class PrivacySettingsPreferenceFragment : ListSummaryPreferenceFragment() { .onPreferenceChangeListener = TypingIndicatorsToggleListener() findPreference(TextSecurePreferences.CALL_NOTIFICATIONS_ENABLED)!! .onPreferenceChangeListener = CallToggleListener(this) { setCall(it) } + findPreference(getString(R.string.preferences__message_requests_category))?.let { category -> + when (val user = configFactory.user) { + null -> category.isVisible = false + else -> SwitchPreferenceCompat(requireContext()).apply { + key = TextSecurePreferences.ALLOW_MESSAGE_REQUESTS + preferenceDataStore = object : PreferenceDataStore() { + + override fun getBoolean(key: String?, defValue: Boolean): Boolean { + if (key == TextSecurePreferences.ALLOW_MESSAGE_REQUESTS) { + return user.getCommunityMessageRequests() + } + return super.getBoolean(key, defValue) + } + + override fun putBoolean(key: String?, value: Boolean) { + if (key == TextSecurePreferences.ALLOW_MESSAGE_REQUESTS) { + user.setCommunityMessageRequests(value) + return + } + super.putBoolean(key, value) + } + } + title = getString(R.string.preferences__message_requests_title) + summary = getString(R.string.preferences__message_requests_summary) + }.let(category::addPreference) + } + } initializeVisibility() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt index dd013afa74..2c0b39d69d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/repository/ConversationRepository.kt @@ -1,5 +1,11 @@ package org.thoughtcrime.securesms.repository +import android.content.ContentResolver +import android.content.Context +import app.cash.copper.flow.observeQuery +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.map import org.session.libsession.database.MessageDataProvider import org.session.libsession.messaging.messages.Destination import org.session.libsession.messaging.messages.control.MessageRequestResponse @@ -15,6 +21,7 @@ import org.session.libsession.utilities.GroupUtil import org.session.libsession.utilities.TextSecurePreferences import org.session.libsession.utilities.recipients.Recipient import org.session.libsignal.utilities.toHexString +import org.thoughtcrime.securesms.database.DatabaseContentProviders import org.thoughtcrime.securesms.database.DraftDatabase import org.thoughtcrime.securesms.database.LokiMessageDatabase import org.thoughtcrime.securesms.database.LokiThreadDatabase @@ -35,6 +42,8 @@ import kotlin.coroutines.suspendCoroutine interface ConversationRepository { fun maybeGetRecipientForThreadId(threadId: Long): Recipient? + fun maybeGetBlindedRecipient(recipient: Recipient): Recipient? + fun recipientUpdateFlow(threadId: Long): Flow fun saveDraft(threadId: Long, text: String) fun getDraft(threadId: Long): String? fun clearDrafts(threadId: Long) @@ -75,6 +84,7 @@ interface ConversationRepository { } class DefaultConversationRepository @Inject constructor( + @ApplicationContext private val context: Context, private val textSecurePreferences: TextSecurePreferences, private val messageDataProvider: MessageDataProvider, private val threadDb: ThreadDatabase, @@ -87,13 +97,29 @@ class DefaultConversationRepository @Inject constructor( private val storage: Storage, private val lokiMessageDb: LokiMessageDatabase, private val sessionJobDb: SessionJobDatabase, - private val configFactory: ConfigFactory + private val configFactory: ConfigFactory, + private val contentResolver: ContentResolver, ) : ConversationRepository { override fun maybeGetRecipientForThreadId(threadId: Long): Recipient? { return threadDb.getRecipientForThreadId(threadId) } + override fun maybeGetBlindedRecipient(recipient: Recipient): Recipient? { + if (!recipient.isOpenGroupInboxRecipient) return null + return Recipient.from( + context, + Address.fromSerialized(GroupUtil.getDecodedOpenGroupInboxSessionId(recipient.address.serialize())), + false + ) + } + + override fun recipientUpdateFlow(threadId: Long): Flow { + return contentResolver.observeQuery(DatabaseContentProviders.Conversation.getUriForThread(threadId)).map { + maybeGetRecipientForThreadId(threadId) + } + } + override fun saveDraft(threadId: Long, text: String) { if (text.isEmpty()) return val drafts = DraftDatabase.Drafts() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d092031b78..8d1e2dd230 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -628,6 +628,9 @@ Priority Screenshot Notifications Receive a notification when a contact takes a screenshot of a one-to-one chat. + Message Requests + Community Message Requests + Allow message requests from Community conversations @@ -1036,6 +1039,7 @@ Some of your devices are using outdated versions. Syncing may be unreliable until they are updated. There are no messages in %s. + %s has message requests from Community conversations turned off, so you cannot send them a message. You have no messages in Note to Self. You have no messages from %s.\nSend a message to start the conversation! diff --git a/app/src/main/res/xml/preferences_app_protection.xml b/app/src/main/res/xml/preferences_app_protection.xml index 12607ee769..6e0cd98c2f 100644 --- a/app/src/main/res/xml/preferences_app_protection.xml +++ b/app/src/main/res/xml/preferences_app_protection.xml @@ -20,6 +20,12 @@ + + + () + private val storage = mock() private val threadId = 123L - private val edKeyPair = mock(KeyPair::class.java) + private val edKeyPair = mock() private lateinit var recipient: Recipient private val viewModel: ConversationViewModel by lazy { - ConversationViewModel(threadId, edKeyPair, mock(), repository, storage) + ConversationViewModel(threadId, edKeyPair, repository, storage) } @Before fun setUp() { - recipient = mock(Recipient::class.java) + recipient = mock() whenever(repository.maybeGetRecipientForThreadId(anyLong())).thenReturn(recipient) + whenever(repository.recipientUpdateFlow(anyLong())).thenReturn(emptyFlow()) } @Test @@ -79,7 +83,7 @@ class ConversationViewModelTest: BaseViewModelTest() { @Test fun `should delete locally`() { - val message = mock(MessageRecord::class.java) + val message = mock() viewModel.deleteLocally(message) @@ -88,7 +92,7 @@ class ConversationViewModelTest: BaseViewModelTest() { @Test fun `should emit error message on failure to delete a message for everyone`() = runBlockingTest { - val message = mock(MessageRecord::class.java) + val message = mock() val error = Throwable() whenever(repository.deleteForEveryone(anyLong(), any(), any())) .thenReturn(ResultOf.Failure(error)) @@ -101,7 +105,7 @@ class ConversationViewModelTest: BaseViewModelTest() { @Test fun `should emit error message on failure to delete messages without unsend request`() = runBlockingTest { - val message = mock(MessageRecord::class.java) + val message = mock() val error = Throwable() whenever(repository.deleteMessageWithoutUnsendRequest(anyLong(), anySet())) .thenReturn(ResultOf.Failure(error)) @@ -181,4 +185,30 @@ class ConversationViewModelTest: BaseViewModelTest() { assertThat(viewModel.uiState.value.uiMessages.size, equalTo(0)) } + @Test + fun `open group recipient should have no blinded recipient`() { + whenever(recipient.isOpenGroupRecipient).thenReturn(true) + whenever(recipient.isOpenGroupOutboxRecipient).thenReturn(false) + whenever(recipient.isOpenGroupInboxRecipient).thenReturn(false) + assertThat(viewModel.blindedRecipient, nullValue()) + } + + @Test + fun `local recipient should have input and no blinded recipient`() { + whenever(recipient.isLocalNumber).thenReturn(true) + assertThat(viewModel.hidesInputBar(), equalTo(false)) + assertThat(viewModel.blindedRecipient, nullValue()) + } + + @Test + fun `contact recipient should hide input bar if not accepting requests`() { + whenever(recipient.isOpenGroupInboxRecipient).thenReturn(true) + val blinded = mock { + whenever(it.blocksCommunityMessageRequests).thenReturn(true) + } + whenever(repository.maybeGetBlindedRecipient(recipient)).thenReturn(blinded) + assertThat(viewModel.blindedRecipient, notNullValue()) + assertThat(viewModel.hidesInputBar(), equalTo(true)) + } + } \ No newline at end of file diff --git a/libsession-util/src/main/cpp/user_profile.cpp b/libsession-util/src/main/cpp/user_profile.cpp index 78b671ef0d..5b3980e634 100644 --- a/libsession-util/src/main/cpp/user_profile.cpp +++ b/libsession-util/src/main/cpp/user_profile.cpp @@ -95,4 +95,33 @@ Java_network_loki_messenger_libsession_1util_UserProfile_getNtsPriority(JNIEnv * std::lock_guard lock{util::util_mutex_}; auto profile = ptrToProfile(env, thiz); return profile->get_nts_priority(); +} +extern "C" +JNIEXPORT jboolean JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_getCommunityMessageRequests( + JNIEnv *env, jobject thiz) { + std::lock_guard lock{util::util_mutex_}; + auto profile = ptrToProfile(env, thiz); + auto blinded_msg_requests = profile->get_blinded_msgreqs(); + if (blinded_msg_requests.has_value()) { + return *blinded_msg_requests; + } + return true; +} + +extern "C" +JNIEXPORT void JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_setCommunityMessageRequests( + JNIEnv *env, jobject thiz, jboolean blocks) { + std::lock_guard lock{util::util_mutex_}; + auto profile = ptrToProfile(env, thiz); + profile->set_blinded_msgreqs(std::optional{(bool)blocks}); +} +extern "C" +JNIEXPORT jboolean JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_isBlockCommunityMessageRequestsSet( + JNIEnv *env, jobject thiz) { + std::lock_guard lock{util::util_mutex_}; + auto profile = ptrToProfile(env, thiz); + return profile->get_blinded_msgreqs().has_value(); } \ No newline at end of file diff --git a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt index 2692699075..7ed73ebf2d 100644 --- a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt +++ b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt @@ -127,6 +127,9 @@ class UserProfile(pointer: Long) : ConfigBase(pointer) { external fun setPic(userPic: UserPic) external fun setNtsPriority(priority: Int) external fun getNtsPriority(): Int + external fun getCommunityMessageRequests(): Boolean + external fun setCommunityMessageRequests(blocks: Boolean) + external fun isBlockCommunityMessageRequestsSet(): Boolean } class ConversationVolatileConfig(pointer: Long): ConfigBase(pointer) { diff --git a/libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt b/libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt index 65ed6ec420..89fc162cd6 100644 --- a/libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt +++ b/libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt @@ -42,6 +42,7 @@ interface StorageProtocol { fun getUserProfile(): Profile fun setProfileAvatar(recipient: Recipient, profileAvatar: String?) fun setProfilePicture(recipient: Recipient, newProfilePicture: String?, newProfileKey: ByteArray?) + fun setBlocksCommunityMessageRequests(recipient: Recipient, blocksMessageRequests: Boolean) fun setUserProfilePicture(newProfilePicture: String?, newProfileKey: ByteArray?) fun clearUserPic() // Signal @@ -233,4 +234,5 @@ interface StorageProtocol { fun notifyConfigUpdates(forConfigObject: ConfigBase) fun conversationInConfig(publicKey: String?, groupPublicKey: String?, openGroupId: String?, visibleOnly: Boolean): Boolean fun canPerformConfigChange(variant: String, publicKey: String, changeTimestampMs: Long): Boolean + fun isCheckingCommunityRequests(): Boolean } diff --git a/libsession/src/main/java/org/session/libsession/messaging/messages/visible/VisibleMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/messages/visible/VisibleMessage.kt index 7f67272c84..63c84c915e 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/messages/visible/VisibleMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/messages/visible/VisibleMessage.kt @@ -25,7 +25,8 @@ class VisibleMessage( var profile: Profile? = null, var openGroupInvitation: OpenGroupInvitation? = null, var reaction: Reaction? = null, - var hasMention: Boolean = false + var hasMention: Boolean = false, + var blocksMessageRequests: Boolean = false ) : Message() { override val isSelfSendValid: Boolean = true @@ -74,6 +75,9 @@ class VisibleMessage( val reaction = Reaction.fromProto(reactionProto) result.reaction = reaction } + + result.blocksMessageRequests = with (dataMessage) { hasBlocksCommunityMessageRequests() && blocksCommunityMessageRequests } + return result } } @@ -132,6 +136,8 @@ class VisibleMessage( Recipient.from(context, Address.fromSerialized(recipient!!), false).expireMessages } dataMessage.expireTimer = expiration + // Community blocked message requests flag + dataMessage.blocksCommunityMessageRequests = blocksMessageRequests // Sync target if (syncTarget != null) { dataMessage.syncTarget = syncTarget diff --git a/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupApi.kt b/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupApi.kt index dc6d1475f8..c6b6186c9c 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupApi.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupApi.kt @@ -753,7 +753,8 @@ object OpenGroupApi { ) } val serverCapabilities = storage.getServerCapabilities(server) - if (serverCapabilities.contains(Capability.BLIND.name.lowercase())) { + val isAcceptingCommunityRequests = storage.isCheckingCommunityRequests() + if (serverCapabilities.contains(Capability.BLIND.name.lowercase()) && isAcceptingCommunityRequests) { requests.add( if (lastInboxMessageId == null) { BatchRequestInfo( diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt index b80b2088f2..c29bc30bf7 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt @@ -242,9 +242,16 @@ object MessageSender { private fun sendToOpenGroupDestination(destination: Destination, message: Message): Promise { val deferred = deferred() val storage = MessagingModuleConfiguration.shared.storage + val configFactory = MessagingModuleConfiguration.shared.configFactory if (message.sentTimestamp == null) { message.sentTimestamp = SnodeAPI.nowWithOffset } + // Attach the blocks message requests info + configFactory.user?.let { user -> + if (message is VisibleMessage) { + message.blocksMessageRequests = !user.getCommunityMessageRequests() + } + } val userEdKeyPair = MessagingModuleConfiguration.shared.getUserED25519KeyPair()!! var serverCapabilities = listOf() var blindedPublicKey: ByteArray? = null diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt index 489e03dde9..436c961e0f 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt @@ -305,6 +305,10 @@ fun MessageReceiver.handleVisibleMessage( profileManager.setProfilePicture(context, recipient, null, null) } } + + if (userPublicKey != messageSender && !isUserBlindedSender) { + storage.setBlocksCommunityMessageRequests(recipient, message.blocksMessageRequests) + } } // Parse quote if needed var quoteModel: QuoteModel? = null diff --git a/libsession/src/main/java/org/session/libsession/utilities/GroupUtil.kt b/libsession/src/main/java/org/session/libsession/utilities/GroupUtil.kt index fa0c62f455..5b2a669248 100644 --- a/libsession/src/main/java/org/session/libsession/utilities/GroupUtil.kt +++ b/libsession/src/main/java/org/session/libsession/utilities/GroupUtil.kt @@ -1,5 +1,7 @@ package org.session.libsession.utilities +import org.session.libsession.messaging.open_groups.OpenGroup +import org.session.libsession.messaging.utilities.SessionId import org.session.libsignal.messages.SignalServiceGroup import org.session.libsignal.utilities.Hex import java.io.IOException @@ -15,8 +17,15 @@ object GroupUtil { } @JvmStatic - fun getEncodedOpenGroupInboxID(groupInboxID: ByteArray): String { - return OPEN_GROUP_INBOX_PREFIX + Hex.toStringCondensed(groupInboxID) + fun getEncodedOpenGroupInboxID(openGroup: OpenGroup, sessionId: SessionId): Address { + val openGroupInboxId = + "${openGroup.server}!${openGroup.publicKey}!${sessionId.hexString}".toByteArray() + return getEncodedOpenGroupInboxID(openGroupInboxId) + } + + @JvmStatic + fun getEncodedOpenGroupInboxID(groupInboxID: ByteArray): Address { + return Address.fromSerialized(OPEN_GROUP_INBOX_PREFIX + Hex.toStringCondensed(groupInboxID)) } @JvmStatic @@ -51,7 +60,7 @@ object GroupUtil { } @JvmStatic - fun getDecodedOpenGroupInbox(groupID: String): String { + fun getDecodedOpenGroupInboxSessionId(groupID: String): String { val decodedGroupId = getDecodedGroupID(groupID) if (decodedGroupId.split("!").count() > 2) { return decodedGroupId.split("!", limit = 3)[2] diff --git a/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt b/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt index 2b92b9836e..9f00047ac2 100644 --- a/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt +++ b/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt @@ -287,6 +287,8 @@ interface TextSecurePreferences { const val OCEAN_DARK = "ocean.dark" const val OCEAN_LIGHT = "ocean.light" + const val ALLOW_MESSAGE_REQUESTS = "libsession.ALLOW_MESSAGE_REQUESTS" + @JvmStatic fun getLastConfigurationSyncTime(context: Context): Long { return getLongPreference(context, LAST_CONFIGURATION_SYNC_TIME, 0) diff --git a/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java b/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java index c299ace948..9d2c8f150f 100644 --- a/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java +++ b/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java @@ -101,6 +101,7 @@ public class Recipient implements RecipientModifiedListener { private String notificationChannel; private boolean forceSmsSelection; private String wrapperHash; + private boolean blocksCommunityMessageRequests; private @NonNull UnidentifiedAccessMode unidentifiedAccessMode = UnidentifiedAccessMode.ENABLED; @@ -195,6 +196,7 @@ public class Recipient implements RecipientModifiedListener { this.forceSmsSelection = details.get().forceSmsSelection; this.notifyType = details.get().notifyType; this.autoDownloadAttachments = details.get().autoDownloadAttachments; + this.blocksCommunityMessageRequests = details.get().blocksCommunityMessageRequests; this.participants.clear(); this.participants.addAll(details.get().participants); @@ -232,6 +234,8 @@ public class Recipient implements RecipientModifiedListener { Recipient.this.forceSmsSelection = result.forceSmsSelection; Recipient.this.notifyType = result.notifyType; Recipient.this.autoDownloadAttachments = result.autoDownloadAttachments; + Recipient.this.blocksCommunityMessageRequests = result.blocksCommunityMessageRequests; + Recipient.this.participants.clear(); Recipient.this.participants.addAll(result.participants); @@ -286,6 +290,7 @@ public class Recipient implements RecipientModifiedListener { this.unidentifiedAccessMode = details.unidentifiedAccessMode; this.forceSmsSelection = details.forceSmsSelection; this.wrapperHash = details.wrapperHash; + this.blocksCommunityMessageRequests = details.blocksCommunityMessageRequests; this.participants.addAll(details.participants); this.resolving = false; @@ -326,7 +331,7 @@ public class Recipient implements RecipientModifiedListener { return this.name; } } else if (isOpenGroupInboxRecipient()){ - String inboxID = GroupUtil.getDecodedOpenGroupInbox(sessionID); + String inboxID = GroupUtil.getDecodedOpenGroupInboxSessionId(sessionID); Contact contact = storage.getContactWithSessionID(inboxID); if (contact == null) { return sessionID; } return contact.displayName(Contact.ContactContext.REGULAR); @@ -350,6 +355,18 @@ public class Recipient implements RecipientModifiedListener { if (notify) notifyListeners(); } + public boolean getBlocksCommunityMessageRequests() { + return blocksCommunityMessageRequests; + } + + public void setBlocksCommunityMessageRequests(boolean blocksCommunityMessageRequests) { + synchronized (this) { + this.blocksCommunityMessageRequests = blocksCommunityMessageRequests; + } + + notifyListeners(); + } + public synchronized @NonNull MaterialColor getColor() { if (isGroupRecipient()) return MaterialColor.GROUP; else if (color != null) return color; @@ -777,12 +794,43 @@ public class Recipient implements RecipientModifiedListener { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Recipient recipient = (Recipient) o; - return resolving == recipient.resolving && mutedUntil == recipient.mutedUntil && notifyType == recipient.notifyType && blocked == recipient.blocked && approved == recipient.approved && approvedMe == recipient.approvedMe && expireMessages == recipient.expireMessages && address.equals(recipient.address) && Objects.equals(name, recipient.name) && Objects.equals(customLabel, recipient.customLabel) && Objects.equals(groupAvatarId, recipient.groupAvatarId) && Arrays.equals(profileKey, recipient.profileKey) && Objects.equals(profileName, recipient.profileName) && Objects.equals(profileAvatar, recipient.profileAvatar) && Objects.equals(wrapperHash, recipient.wrapperHash); + return resolving == recipient.resolving + && mutedUntil == recipient.mutedUntil + && notifyType == recipient.notifyType + && blocked == recipient.blocked + && approved == recipient.approved + && approvedMe == recipient.approvedMe + && expireMessages == recipient.expireMessages + && address.equals(recipient.address) + && Objects.equals(name, recipient.name) + && Objects.equals(customLabel, recipient.customLabel) + && Objects.equals(groupAvatarId, recipient.groupAvatarId) + && Arrays.equals(profileKey, recipient.profileKey) + && Objects.equals(profileName, recipient.profileName) + && Objects.equals(profileAvatar, recipient.profileAvatar) + && Objects.equals(wrapperHash, recipient.wrapperHash) + && blocksCommunityMessageRequests == recipient.blocksCommunityMessageRequests; } @Override public int hashCode() { - int result = Objects.hash(address, name, customLabel, resolving, groupAvatarId, mutedUntil, notifyType, blocked, approved, approvedMe, expireMessages, profileName, profileAvatar, wrapperHash); + int result = Objects.hash( + address, + name, + customLabel, + resolving, + groupAvatarId, + mutedUntil, + notifyType, + blocked, + approved, + approvedMe, + expireMessages, + profileName, + profileAvatar, + wrapperHash, + blocksCommunityMessageRequests + ); result = 31 * result + Arrays.hashCode(profileKey); return result; } @@ -888,10 +936,11 @@ public class Recipient implements RecipientModifiedListener { private final UnidentifiedAccessMode unidentifiedAccessMode; private final boolean forceSmsSelection; private final String wrapperHash; + private final boolean blocksCommunityMessageRequests; public RecipientSettings(boolean blocked, boolean approved, boolean approvedMe, long muteUntil, - int notifyType, - boolean autoDownloadAttachments, + int notifyType, + boolean autoDownloadAttachments, @NonNull VibrateState messageVibrateState, @NonNull VibrateState callVibrateState, @Nullable Uri messageRingtone, @@ -911,7 +960,9 @@ public class Recipient implements RecipientModifiedListener { @Nullable String notificationChannel, @NonNull UnidentifiedAccessMode unidentifiedAccessMode, boolean forceSmsSelection, - String wrapperHash) + String wrapperHash, + boolean blocksCommunityMessageRequests + ) { this.blocked = blocked; this.approved = approved; @@ -938,7 +989,7 @@ public class Recipient implements RecipientModifiedListener { this.notificationChannel = notificationChannel; this.unidentifiedAccessMode = unidentifiedAccessMode; this.forceSmsSelection = forceSmsSelection; - this.wrapperHash = wrapperHash; + this.wrapperHash = wrapperHash;this.blocksCommunityMessageRequests = blocksCommunityMessageRequests; } public @Nullable MaterialColor getColor() { @@ -1045,6 +1096,10 @@ public class Recipient implements RecipientModifiedListener { return wrapperHash; } + public boolean getBlocksCommunityMessageRequests() { + return blocksCommunityMessageRequests; + } + } diff --git a/libsession/src/main/java/org/session/libsession/utilities/recipients/RecipientProvider.java b/libsession/src/main/java/org/session/libsession/utilities/recipients/RecipientProvider.java index 8d0a56eb70..f64fcb65ef 100644 --- a/libsession/src/main/java/org/session/libsession/utilities/recipients/RecipientProvider.java +++ b/libsession/src/main/java/org/session/libsession/utilities/recipients/RecipientProvider.java @@ -179,6 +179,7 @@ class RecipientProvider { @NonNull final UnidentifiedAccessMode unidentifiedAccessMode; final boolean forceSmsSelection; final String wrapperHash; + final boolean blocksCommunityMessageRequests; RecipientDetails(@Nullable String name, @Nullable Long groupAvatarId, boolean systemContact, boolean isLocalNumber, @Nullable RecipientSettings settings, @@ -213,6 +214,7 @@ class RecipientProvider { this.unidentifiedAccessMode = settings != null ? settings.getUnidentifiedAccessMode() : UnidentifiedAccessMode.DISABLED; this.forceSmsSelection = settings != null && settings.isForceSmsSelection(); this.wrapperHash = settings != null ? settings.getWrapperHash() : null; + this.blocksCommunityMessageRequests = settings != null && settings.getBlocksCommunityMessageRequests(); if (name == null && settings != null) this.name = settings.getSystemDisplayName(); else this.name = name; diff --git a/libsignal/protobuf/SignalService.proto b/libsignal/protobuf/SignalService.proto index dd94c2cc36..eb5313ae12 100644 --- a/libsignal/protobuf/SignalService.proto +++ b/libsignal/protobuf/SignalService.proto @@ -177,19 +177,20 @@ message DataMessage { required Action action = 4; } - optional string body = 1; - repeated AttachmentPointer attachments = 2; - optional uint32 flags = 4; - optional uint32 expireTimer = 5; - optional bytes profileKey = 6; - optional uint64 timestamp = 7; - optional Quote quote = 8; - repeated Preview preview = 10; - optional Reaction reaction = 11; - optional LokiProfile profile = 101; - optional OpenGroupInvitation openGroupInvitation = 102; - optional ClosedGroupControlMessage closedGroupControlMessage = 104; - optional string syncTarget = 105; + optional string body = 1; + repeated AttachmentPointer attachments = 2; + optional uint32 flags = 4; + optional uint32 expireTimer = 5; + optional bytes profileKey = 6; + optional uint64 timestamp = 7; + optional Quote quote = 8; + repeated Preview preview = 10; + optional Reaction reaction = 11; + optional LokiProfile profile = 101; + optional OpenGroupInvitation openGroupInvitation = 102; + optional ClosedGroupControlMessage closedGroupControlMessage = 104; + optional string syncTarget = 105; + optional bool blocksCommunityMessageRequests = 106; optional GroupMessage groupMessage = 120; } 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 f89c79dcba..895575b09c 100644 --- a/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java +++ b/libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java @@ -5727,6 +5727,20 @@ public final class SignalServiceProtos { org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder getAttachmentsOrBuilder( int index); + // optional .signalservice.GroupContext group = 3; + /** + * optional .signalservice.GroupContext group = 3; + */ + boolean hasGroup(); + /** + * optional .signalservice.GroupContext group = 3; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupContext getGroup(); + /** + * optional .signalservice.GroupContext group = 3; + */ + org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder(); + // optional uint32 flags = 4; /** * optional uint32 flags = 4; @@ -5877,19 +5891,15 @@ public final class SignalServiceProtos { com.google.protobuf.ByteString getSyncTargetBytes(); - // optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + // optional bool blocksCommunityMessageRequests = 106; /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - boolean hasGroupMessage(); + boolean hasBlocksCommunityMessageRequests(); /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getGroupMessage(); - /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; - */ - org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessageOrBuilder getGroupMessageOrBuilder(); + boolean getBlocksCommunityMessageRequests(); } /** * Protobuf type {@code signalservice.DataMessage} @@ -5955,29 +5965,42 @@ public final class SignalServiceProtos { attachments_.add(input.readMessage(org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry)); break; } - case 32: { + case 26: { + org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = group_.toBuilder(); + } + group_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.GroupContext.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(group_); + group_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; + break; + } + case 32: { + bitField0_ |= 0x00000004; flags_ = input.readUInt32(); break; } case 40: { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; expireTimer_ = input.readUInt32(); break; } case 50: { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; profileKey_ = input.readBytes(); break; } case 56: { - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000020; timestamp_ = input.readUInt64(); break; } case 66: { org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.Builder subBuilder = null; - if (((bitField0_ & 0x00000020) == 0x00000020)) { + if (((bitField0_ & 0x00000040) == 0x00000040)) { subBuilder = quote_.toBuilder(); } quote_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.PARSER, extensionRegistry); @@ -5985,20 +6008,20 @@ public final class SignalServiceProtos { subBuilder.mergeFrom(quote_); quote_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; break; } case 82: { - if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { + if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { preview_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000080; + mutable_bitField0_ |= 0x00000100; } preview_.add(input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.Preview.PARSER, extensionRegistry)); break; } case 90: { org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction.Builder subBuilder = null; - if (((bitField0_ & 0x00000040) == 0x00000040)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { subBuilder = reaction_.toBuilder(); } reaction_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction.PARSER, extensionRegistry); @@ -6006,12 +6029,12 @@ public final class SignalServiceProtos { subBuilder.mergeFrom(reaction_); reaction_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; break; } case 810: { org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.Builder subBuilder = null; - if (((bitField0_ & 0x00000080) == 0x00000080)) { + if (((bitField0_ & 0x00000100) == 0x00000100)) { subBuilder = profile_.toBuilder(); } profile_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.PARSER, extensionRegistry); @@ -6019,12 +6042,12 @@ public final class SignalServiceProtos { subBuilder.mergeFrom(profile_); profile_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000100; break; } case 818: { org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.Builder subBuilder = null; - if (((bitField0_ & 0x00000100) == 0x00000100)) { + if (((bitField0_ & 0x00000200) == 0x00000200)) { subBuilder = openGroupInvitation_.toBuilder(); } openGroupInvitation_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.PARSER, extensionRegistry); @@ -6032,12 +6055,12 @@ public final class SignalServiceProtos { subBuilder.mergeFrom(openGroupInvitation_); openGroupInvitation_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; break; } case 834: { org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.Builder subBuilder = null; - if (((bitField0_ & 0x00000200) == 0x00000200)) { + if (((bitField0_ & 0x00000400) == 0x00000400)) { subBuilder = closedGroupControlMessage_.toBuilder(); } closedGroupControlMessage_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.PARSER, extensionRegistry); @@ -6045,25 +6068,17 @@ public final class SignalServiceProtos { subBuilder.mergeFrom(closedGroupControlMessage_); closedGroupControlMessage_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000200; + bitField0_ |= 0x00000400; break; } case 842: { - bitField0_ |= 0x00000400; + bitField0_ |= 0x00000800; 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; + case 848: { + bitField0_ |= 0x00001000; + blocksCommunityMessageRequests_ = input.readBool(); break; } } @@ -6077,7 +6092,7 @@ public final class SignalServiceProtos { if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { attachments_ = java.util.Collections.unmodifiableList(attachments_); } - if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) { + if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { preview_ = java.util.Collections.unmodifiableList(preview_); } this.unknownFields = unknownFields.build(); @@ -10600,1125 +10615,6 @@ 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 { @@ -11841,26 +10737,6 @@ public final class SignalServiceProtos { * optional uint32 expirationTimer = 8; */ int getExpirationTimer(); - - // optional bytes memberPrivateKey = 9; - /** - * optional bytes memberPrivateKey = 9; - */ - boolean hasMemberPrivateKey(); - /** - * optional bytes memberPrivateKey = 9; - */ - com.google.protobuf.ByteString getMemberPrivateKey(); - - // optional bytes privateKey = 10; - /** - * optional bytes privateKey = 10; - */ - boolean hasPrivateKey(); - /** - * optional bytes privateKey = 10; - */ - com.google.protobuf.ByteString getPrivateKey(); } /** * Protobuf type {@code signalservice.DataMessage.ClosedGroupControlMessage} @@ -11976,16 +10852,6 @@ public final class SignalServiceProtos { expirationTimer_ = input.readUInt32(); break; } - case 74: { - bitField0_ |= 0x00000020; - memberPrivateKey_ = input.readBytes(); - break; - } - case 82: { - bitField0_ |= 0x00000040; - privateKey_ = input.readBytes(); - break; - } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -12083,46 +10949,6 @@ public final class SignalServiceProtos { * MEMBER_LEFT = 7; */ MEMBER_LEFT(5, 7), - /** - * INVITE = 9; - * - *
-         * publicKey, name, memberPrivateKey
-         * 
- */ - INVITE(6, 9), - /** - * PROMOTE = 10; - * - *
-         * publicKey, privateKey
-         * 
- */ - PROMOTE(7, 10), - /** - * DELETE_GROUP = 11; - * - *
-         * publicKey, members
-         * 
- */ - DELETE_GROUP(8, 11), - /** - * DELETE_MESSAGES = 12; - * - *
-         * publicKey
-         * 
- */ - DELETE_MESSAGES(9, 12), - /** - * DELETE_ATTACHMENTS = 13; - * - *
-         * publicKey
-         * 
- */ - DELETE_ATTACHMENTS(10, 13), ; /** @@ -12169,46 +10995,6 @@ public final class SignalServiceProtos { * MEMBER_LEFT = 7; */ public static final int MEMBER_LEFT_VALUE = 7; - /** - * INVITE = 9; - * - *
-         * publicKey, name, memberPrivateKey
-         * 
- */ - public static final int INVITE_VALUE = 9; - /** - * PROMOTE = 10; - * - *
-         * publicKey, privateKey
-         * 
- */ - public static final int PROMOTE_VALUE = 10; - /** - * DELETE_GROUP = 11; - * - *
-         * publicKey, members
-         * 
- */ - public static final int DELETE_GROUP_VALUE = 11; - /** - * DELETE_MESSAGES = 12; - * - *
-         * publicKey
-         * 
- */ - public static final int DELETE_MESSAGES_VALUE = 12; - /** - * DELETE_ATTACHMENTS = 13; - * - *
-         * publicKey
-         * 
- */ - public static final int DELETE_ATTACHMENTS_VALUE = 13; public final int getNumber() { return value; } @@ -12221,11 +11007,6 @@ public final class SignalServiceProtos { case 5: return MEMBERS_ADDED; case 6: return MEMBERS_REMOVED; case 7: return MEMBER_LEFT; - case 9: return INVITE; - case 10: return PROMOTE; - case 11: return DELETE_GROUP; - case 12: return DELETE_MESSAGES; - case 13: return DELETE_ATTACHMENTS; default: return null; } } @@ -13044,38 +11825,6 @@ public final class SignalServiceProtos { return expirationTimer_; } - // optional bytes memberPrivateKey = 9; - public static final int MEMBERPRIVATEKEY_FIELD_NUMBER = 9; - private com.google.protobuf.ByteString memberPrivateKey_; - /** - * optional bytes memberPrivateKey = 9; - */ - public boolean hasMemberPrivateKey() { - return ((bitField0_ & 0x00000020) == 0x00000020); - } - /** - * optional bytes memberPrivateKey = 9; - */ - public com.google.protobuf.ByteString getMemberPrivateKey() { - return memberPrivateKey_; - } - - // optional bytes privateKey = 10; - public static final int PRIVATEKEY_FIELD_NUMBER = 10; - private com.google.protobuf.ByteString privateKey_; - /** - * optional bytes privateKey = 10; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000040) == 0x00000040); - } - /** - * optional bytes privateKey = 10; - */ - public com.google.protobuf.ByteString getPrivateKey() { - return privateKey_; - } - private void initFields() { type_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.Type.NEW; publicKey_ = com.google.protobuf.ByteString.EMPTY; @@ -13085,8 +11834,6 @@ public final class SignalServiceProtos { admins_ = java.util.Collections.emptyList(); wrappers_ = java.util.Collections.emptyList(); expirationTimer_ = 0; - memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - privateKey_ = com.google.protobuf.ByteString.EMPTY; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -13140,12 +11887,6 @@ public final class SignalServiceProtos { if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeUInt32(8, expirationTimer_); } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - output.writeBytes(9, memberPrivateKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - output.writeBytes(10, privateKey_); - } getUnknownFields().writeTo(output); } @@ -13197,14 +11938,6 @@ public final class SignalServiceProtos { size += com.google.protobuf.CodedOutputStream .computeUInt32Size(8, expirationTimer_); } - if (((bitField0_ & 0x00000020) == 0x00000020)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(9, memberPrivateKey_); - } - if (((bitField0_ & 0x00000040) == 0x00000040)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(10, privateKey_); - } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -13347,10 +12080,6 @@ public final class SignalServiceProtos { } expirationTimer_ = 0; bitField0_ = (bitField0_ & ~0x00000080); - memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000100); - privateKey_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000200); return this; } @@ -13422,14 +12151,6 @@ public final class SignalServiceProtos { to_bitField0_ |= 0x00000010; } result.expirationTimer_ = expirationTimer_; - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000020; - } - result.memberPrivateKey_ = memberPrivateKey_; - if (((from_bitField0_ & 0x00000200) == 0x00000200)) { - to_bitField0_ |= 0x00000040; - } - result.privateKey_ = privateKey_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -13509,12 +12230,6 @@ public final class SignalServiceProtos { if (other.hasExpirationTimer()) { setExpirationTimer(other.getExpirationTimer()); } - if (other.hasMemberPrivateKey()) { - setMemberPrivateKey(other.getMemberPrivateKey()); - } - if (other.hasPrivateKey()) { - setPrivateKey(other.getPrivateKey()); - } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -14254,78 +12969,6 @@ public final class SignalServiceProtos { return this; } - // optional bytes memberPrivateKey = 9; - private com.google.protobuf.ByteString memberPrivateKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes memberPrivateKey = 9; - */ - public boolean hasMemberPrivateKey() { - return ((bitField0_ & 0x00000100) == 0x00000100); - } - /** - * optional bytes memberPrivateKey = 9; - */ - public com.google.protobuf.ByteString getMemberPrivateKey() { - return memberPrivateKey_; - } - /** - * optional bytes memberPrivateKey = 9; - */ - public Builder setMemberPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000100; - memberPrivateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes memberPrivateKey = 9; - */ - public Builder clearMemberPrivateKey() { - bitField0_ = (bitField0_ & ~0x00000100); - memberPrivateKey_ = getDefaultInstance().getMemberPrivateKey(); - onChanged(); - return this; - } - - // optional bytes privateKey = 10; - private com.google.protobuf.ByteString privateKey_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes privateKey = 10; - */ - public boolean hasPrivateKey() { - return ((bitField0_ & 0x00000200) == 0x00000200); - } - /** - * optional bytes privateKey = 10; - */ - public com.google.protobuf.ByteString getPrivateKey() { - return privateKey_; - } - /** - * optional bytes privateKey = 10; - */ - public Builder setPrivateKey(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000200; - privateKey_ = value; - onChanged(); - return this; - } - /** - * optional bytes privateKey = 10; - */ - public Builder clearPrivateKey() { - bitField0_ = (bitField0_ & ~0x00000200); - privateKey_ = getDefaultInstance().getPrivateKey(); - onChanged(); - return this; - } - // @@protoc_insertion_point(builder_scope:signalservice.DataMessage.ClosedGroupControlMessage) } @@ -15433,6 +14076,28 @@ public final class SignalServiceProtos { return attachments_.get(index); } + // optional .signalservice.GroupContext group = 3; + public static final int GROUP_FIELD_NUMBER = 3; + private org.session.libsignal.protos.SignalServiceProtos.GroupContext group_; + /** + * optional .signalservice.GroupContext group = 3; + */ + public boolean hasGroup() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContext getGroup() { + return group_; + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder() { + return group_; + } + // optional uint32 flags = 4; public static final int FLAGS_FIELD_NUMBER = 4; private int flags_; @@ -15440,7 +14105,7 @@ public final class SignalServiceProtos { * optional uint32 flags = 4; */ public boolean hasFlags() { - return ((bitField0_ & 0x00000002) == 0x00000002); + return ((bitField0_ & 0x00000004) == 0x00000004); } /** * optional uint32 flags = 4; @@ -15456,7 +14121,7 @@ public final class SignalServiceProtos { * optional uint32 expireTimer = 5; */ public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000004) == 0x00000004); + return ((bitField0_ & 0x00000008) == 0x00000008); } /** * optional uint32 expireTimer = 5; @@ -15472,7 +14137,7 @@ public final class SignalServiceProtos { * optional bytes profileKey = 6; */ public boolean hasProfileKey() { - return ((bitField0_ & 0x00000008) == 0x00000008); + return ((bitField0_ & 0x00000010) == 0x00000010); } /** * optional bytes profileKey = 6; @@ -15488,7 +14153,7 @@ public final class SignalServiceProtos { * optional uint64 timestamp = 7; */ public boolean hasTimestamp() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000020) == 0x00000020); } /** * optional uint64 timestamp = 7; @@ -15504,7 +14169,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.Quote quote = 8; */ public boolean hasQuote() { - return ((bitField0_ & 0x00000020) == 0x00000020); + return ((bitField0_ & 0x00000040) == 0x00000040); } /** * optional .signalservice.DataMessage.Quote quote = 8; @@ -15562,7 +14227,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.Reaction reaction = 11; */ public boolean hasReaction() { - return ((bitField0_ & 0x00000040) == 0x00000040); + return ((bitField0_ & 0x00000080) == 0x00000080); } /** * optional .signalservice.DataMessage.Reaction reaction = 11; @@ -15584,7 +14249,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.LokiProfile profile = 101; */ public boolean hasProfile() { - return ((bitField0_ & 0x00000080) == 0x00000080); + return ((bitField0_ & 0x00000100) == 0x00000100); } /** * optional .signalservice.DataMessage.LokiProfile profile = 101; @@ -15606,7 +14271,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.OpenGroupInvitation openGroupInvitation = 102; */ public boolean hasOpenGroupInvitation() { - return ((bitField0_ & 0x00000100) == 0x00000100); + return ((bitField0_ & 0x00000200) == 0x00000200); } /** * optional .signalservice.DataMessage.OpenGroupInvitation openGroupInvitation = 102; @@ -15628,7 +14293,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.ClosedGroupControlMessage closedGroupControlMessage = 104; */ public boolean hasClosedGroupControlMessage() { - return ((bitField0_ & 0x00000200) == 0x00000200); + return ((bitField0_ & 0x00000400) == 0x00000400); } /** * optional .signalservice.DataMessage.ClosedGroupControlMessage closedGroupControlMessage = 104; @@ -15650,7 +14315,7 @@ public final class SignalServiceProtos { * optional string syncTarget = 105; */ public boolean hasSyncTarget() { - return ((bitField0_ & 0x00000400) == 0x00000400); + return ((bitField0_ & 0x00000800) == 0x00000800); } /** * optional string syncTarget = 105; @@ -15686,31 +14351,26 @@ 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 bool blocksCommunityMessageRequests = 106; + public static final int BLOCKSCOMMUNITYMESSAGEREQUESTS_FIELD_NUMBER = 106; + private boolean blocksCommunityMessageRequests_; /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - public boolean hasGroupMessage() { - return ((bitField0_ & 0x00000800) == 0x00000800); + public boolean hasBlocksCommunityMessageRequests() { + return ((bitField0_ & 0x00001000) == 0x00001000); } /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - 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_; + public boolean getBlocksCommunityMessageRequests() { + return blocksCommunityMessageRequests_; } private void initFields() { body_ = ""; attachments_ = java.util.Collections.emptyList(); + group_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance(); flags_ = 0; expireTimer_ = 0; profileKey_ = com.google.protobuf.ByteString.EMPTY; @@ -15722,7 +14382,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(); + blocksCommunityMessageRequests_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -15735,6 +14395,12 @@ public final class SignalServiceProtos { return false; } } + if (hasGroup()) { + if (!getGroup().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasQuote()) { if (!getQuote().isInitialized()) { memoizedIsInitialized = 0; @@ -15765,12 +14431,6 @@ public final class SignalServiceProtos { return false; } } - if (hasGroupMessage()) { - if (!getGroupMessage().isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } memoizedIsInitialized = 1; return true; } @@ -15785,40 +14445,43 @@ public final class SignalServiceProtos { output.writeMessage(2, attachments_.get(i)); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeUInt32(4, flags_); + output.writeMessage(3, group_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeUInt32(5, expireTimer_); + output.writeUInt32(4, flags_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(6, profileKey_); + output.writeUInt32(5, expireTimer_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeUInt64(7, timestamp_); + output.writeBytes(6, profileKey_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeUInt64(7, timestamp_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { output.writeMessage(8, quote_); } for (int i = 0; i < preview_.size(); i++) { output.writeMessage(10, preview_.get(i)); } - if (((bitField0_ & 0x00000040) == 0x00000040)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { output.writeMessage(11, reaction_); } - if (((bitField0_ & 0x00000080) == 0x00000080)) { + if (((bitField0_ & 0x00000100) == 0x00000100)) { output.writeMessage(101, profile_); } - if (((bitField0_ & 0x00000100) == 0x00000100)) { + if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeMessage(102, openGroupInvitation_); } - if (((bitField0_ & 0x00000200) == 0x00000200)) { + if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeMessage(104, closedGroupControlMessage_); } - if (((bitField0_ & 0x00000400) == 0x00000400)) { + if (((bitField0_ & 0x00000800) == 0x00000800)) { output.writeBytes(105, getSyncTargetBytes()); } - if (((bitField0_ & 0x00000800) == 0x00000800)) { - output.writeMessage(120, groupMessage_); + if (((bitField0_ & 0x00001000) == 0x00001000)) { + output.writeBool(106, blocksCommunityMessageRequests_); } getUnknownFields().writeTo(output); } @@ -15839,21 +14502,25 @@ public final class SignalServiceProtos { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, flags_); + .computeMessageSize(3, group_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, expireTimer_); + .computeUInt32Size(4, flags_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, profileKey_); + .computeUInt32Size(5, expireTimer_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(7, timestamp_); + .computeBytesSize(6, profileKey_); } if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(7, timestamp_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, quote_); } @@ -15861,29 +14528,29 @@ public final class SignalServiceProtos { size += com.google.protobuf.CodedOutputStream .computeMessageSize(10, preview_.get(i)); } - if (((bitField0_ & 0x00000040) == 0x00000040)) { + if (((bitField0_ & 0x00000080) == 0x00000080)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(11, reaction_); } - if (((bitField0_ & 0x00000080) == 0x00000080)) { + if (((bitField0_ & 0x00000100) == 0x00000100)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(101, profile_); } - if (((bitField0_ & 0x00000100) == 0x00000100)) { + if (((bitField0_ & 0x00000200) == 0x00000200)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(102, openGroupInvitation_); } - if (((bitField0_ & 0x00000200) == 0x00000200)) { + if (((bitField0_ & 0x00000400) == 0x00000400)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(104, closedGroupControlMessage_); } - if (((bitField0_ & 0x00000400) == 0x00000400)) { + if (((bitField0_ & 0x00000800) == 0x00000800)) { size += com.google.protobuf.CodedOutputStream .computeBytesSize(105, getSyncTargetBytes()); } - if (((bitField0_ & 0x00000800) == 0x00000800)) { + if (((bitField0_ & 0x00001000) == 0x00001000)) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(120, groupMessage_); + .computeBoolSize(106, blocksCommunityMessageRequests_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; @@ -15994,13 +14661,13 @@ public final class SignalServiceProtos { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { getAttachmentsFieldBuilder(); + getGroupFieldBuilder(); getQuoteFieldBuilder(); getPreviewFieldBuilder(); getReactionFieldBuilder(); getProfileFieldBuilder(); getOpenGroupInvitationFieldBuilder(); getClosedGroupControlMessageFieldBuilder(); - getGroupMessageFieldBuilder(); } } private static Builder create() { @@ -16017,23 +14684,29 @@ public final class SignalServiceProtos { } else { attachmentsBuilder_.clear(); } - flags_ = 0; + if (groupBuilder_ == null) { + group_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance(); + } else { + groupBuilder_.clear(); + } bitField0_ = (bitField0_ & ~0x00000004); - expireTimer_ = 0; + flags_ = 0; bitField0_ = (bitField0_ & ~0x00000008); - profileKey_ = com.google.protobuf.ByteString.EMPTY; + expireTimer_ = 0; bitField0_ = (bitField0_ & ~0x00000010); - timestamp_ = 0L; + profileKey_ = com.google.protobuf.ByteString.EMPTY; bitField0_ = (bitField0_ & ~0x00000020); + timestamp_ = 0L; + bitField0_ = (bitField0_ & ~0x00000040); if (quoteBuilder_ == null) { quote_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.getDefaultInstance(); } else { quoteBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); if (previewBuilder_ == null) { preview_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000100); } else { previewBuilder_.clear(); } @@ -16042,33 +14715,29 @@ public final class SignalServiceProtos { } else { reactionBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000100); + bitField0_ = (bitField0_ & ~0x00000200); if (profileBuilder_ == null) { profile_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.getDefaultInstance(); } else { profileBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000200); + bitField0_ = (bitField0_ & ~0x00000400); if (openGroupInvitationBuilder_ == null) { openGroupInvitation_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.getDefaultInstance(); } else { openGroupInvitationBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000400); + bitField0_ = (bitField0_ & ~0x00000800); if (closedGroupControlMessageBuilder_ == null) { closedGroupControlMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.getDefaultInstance(); } else { closedGroupControlMessageBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000800); - syncTarget_ = ""; bitField0_ = (bitField0_ & ~0x00001000); - if (groupMessageBuilder_ == null) { - groupMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage.getDefaultInstance(); - } else { - groupMessageBuilder_.clear(); - } + syncTarget_ = ""; bitField0_ = (bitField0_ & ~0x00002000); + blocksCommunityMessageRequests_ = false; + bitField0_ = (bitField0_ & ~0x00004000); return this; } @@ -16113,80 +14782,84 @@ public final class SignalServiceProtos { if (((from_bitField0_ & 0x00000004) == 0x00000004)) { to_bitField0_ |= 0x00000002; } - result.flags_ = flags_; + if (groupBuilder_ == null) { + result.group_ = group_; + } else { + result.group_ = groupBuilder_.build(); + } if (((from_bitField0_ & 0x00000008) == 0x00000008)) { to_bitField0_ |= 0x00000004; } - result.expireTimer_ = expireTimer_; + result.flags_ = flags_; if (((from_bitField0_ & 0x00000010) == 0x00000010)) { to_bitField0_ |= 0x00000008; } - result.profileKey_ = profileKey_; + result.expireTimer_ = expireTimer_; if (((from_bitField0_ & 0x00000020) == 0x00000020)) { to_bitField0_ |= 0x00000010; } - result.timestamp_ = timestamp_; + result.profileKey_ = profileKey_; if (((from_bitField0_ & 0x00000040) == 0x00000040)) { to_bitField0_ |= 0x00000020; } + result.timestamp_ = timestamp_; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000040; + } if (quoteBuilder_ == null) { result.quote_ = quote_; } else { result.quote_ = quoteBuilder_.build(); } if (previewBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080)) { + if (((bitField0_ & 0x00000100) == 0x00000100)) { preview_ = java.util.Collections.unmodifiableList(preview_); - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000100); } result.preview_ = preview_; } else { result.preview_ = previewBuilder_.build(); } - if (((from_bitField0_ & 0x00000100) == 0x00000100)) { - to_bitField0_ |= 0x00000040; + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000080; } if (reactionBuilder_ == null) { result.reaction_ = reaction_; } else { result.reaction_ = reactionBuilder_.build(); } - if (((from_bitField0_ & 0x00000200) == 0x00000200)) { - to_bitField0_ |= 0x00000080; + if (((from_bitField0_ & 0x00000400) == 0x00000400)) { + to_bitField0_ |= 0x00000100; } if (profileBuilder_ == null) { result.profile_ = profile_; } else { result.profile_ = profileBuilder_.build(); } - if (((from_bitField0_ & 0x00000400) == 0x00000400)) { - to_bitField0_ |= 0x00000100; + if (((from_bitField0_ & 0x00000800) == 0x00000800)) { + to_bitField0_ |= 0x00000200; } if (openGroupInvitationBuilder_ == null) { result.openGroupInvitation_ = openGroupInvitation_; } else { result.openGroupInvitation_ = openGroupInvitationBuilder_.build(); } - if (((from_bitField0_ & 0x00000800) == 0x00000800)) { - to_bitField0_ |= 0x00000200; + if (((from_bitField0_ & 0x00001000) == 0x00001000)) { + to_bitField0_ |= 0x00000400; } if (closedGroupControlMessageBuilder_ == null) { result.closedGroupControlMessage_ = closedGroupControlMessage_; } else { result.closedGroupControlMessage_ = closedGroupControlMessageBuilder_.build(); } - if (((from_bitField0_ & 0x00001000) == 0x00001000)) { - 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.syncTarget_ = syncTarget_; + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00001000; } + result.blocksCommunityMessageRequests_ = blocksCommunityMessageRequests_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -16234,6 +14907,9 @@ public final class SignalServiceProtos { } } } + if (other.hasGroup()) { + mergeGroup(other.getGroup()); + } if (other.hasFlags()) { setFlags(other.getFlags()); } @@ -16253,7 +14929,7 @@ public final class SignalServiceProtos { if (!other.preview_.isEmpty()) { if (preview_.isEmpty()) { preview_ = other.preview_; - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000100); } else { ensurePreviewIsMutable(); preview_.addAll(other.preview_); @@ -16266,7 +14942,7 @@ public final class SignalServiceProtos { previewBuilder_.dispose(); previewBuilder_ = null; preview_ = other.preview_; - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000100); previewBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getPreviewFieldBuilder() : null; @@ -16288,12 +14964,12 @@ public final class SignalServiceProtos { mergeClosedGroupControlMessage(other.getClosedGroupControlMessage()); } if (other.hasSyncTarget()) { - bitField0_ |= 0x00001000; + bitField0_ |= 0x00002000; syncTarget_ = other.syncTarget_; onChanged(); } - if (other.hasGroupMessage()) { - mergeGroupMessage(other.getGroupMessage()); + if (other.hasBlocksCommunityMessageRequests()) { + setBlocksCommunityMessageRequests(other.getBlocksCommunityMessageRequests()); } this.mergeUnknownFields(other.getUnknownFields()); return this; @@ -16306,6 +14982,12 @@ public final class SignalServiceProtos { return false; } } + if (hasGroup()) { + if (!getGroup().isInitialized()) { + + return false; + } + } if (hasQuote()) { if (!getQuote().isInitialized()) { @@ -16336,12 +15018,6 @@ public final class SignalServiceProtos { return false; } } - if (hasGroupMessage()) { - if (!getGroupMessage().isInitialized()) { - - return false; - } - } return true; } @@ -16678,13 +15354,130 @@ public final class SignalServiceProtos { return attachmentsBuilder_; } + // optional .signalservice.GroupContext group = 3; + private org.session.libsignal.protos.SignalServiceProtos.GroupContext group_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupContext, org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder> groupBuilder_; + /** + * optional .signalservice.GroupContext group = 3; + */ + public boolean hasGroup() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContext getGroup() { + if (groupBuilder_ == null) { + return group_; + } else { + return groupBuilder_.getMessage(); + } + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public Builder setGroup(org.session.libsignal.protos.SignalServiceProtos.GroupContext value) { + if (groupBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + group_ = value; + onChanged(); + } else { + groupBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public Builder setGroup( + org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder builderForValue) { + if (groupBuilder_ == null) { + group_ = builderForValue.build(); + onChanged(); + } else { + groupBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public Builder mergeGroup(org.session.libsignal.protos.SignalServiceProtos.GroupContext value) { + if (groupBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + group_ != org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance()) { + group_ = + org.session.libsignal.protos.SignalServiceProtos.GroupContext.newBuilder(group_).mergeFrom(value).buildPartial(); + } else { + group_ = value; + } + onChanged(); + } else { + groupBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public Builder clearGroup() { + if (groupBuilder_ == null) { + group_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance(); + onChanged(); + } else { + groupBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder getGroupBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getGroupFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.GroupContext group = 3; + */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder getGroupOrBuilder() { + if (groupBuilder_ != null) { + return groupBuilder_.getMessageOrBuilder(); + } else { + return group_; + } + } + /** + * optional .signalservice.GroupContext group = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupContext, org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder> + getGroupFieldBuilder() { + if (groupBuilder_ == null) { + groupBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.GroupContext, org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder, org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder>( + group_, + getParentForChildren(), + isClean()); + group_ = null; + } + return groupBuilder_; + } + // optional uint32 flags = 4; private int flags_ ; /** * optional uint32 flags = 4; */ public boolean hasFlags() { - return ((bitField0_ & 0x00000004) == 0x00000004); + return ((bitField0_ & 0x00000008) == 0x00000008); } /** * optional uint32 flags = 4; @@ -16696,7 +15489,7 @@ public final class SignalServiceProtos { * optional uint32 flags = 4; */ public Builder setFlags(int value) { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; flags_ = value; onChanged(); return this; @@ -16705,7 +15498,7 @@ public final class SignalServiceProtos { * optional uint32 flags = 4; */ public Builder clearFlags() { - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); flags_ = 0; onChanged(); return this; @@ -16717,7 +15510,7 @@ public final class SignalServiceProtos { * optional uint32 expireTimer = 5; */ public boolean hasExpireTimer() { - return ((bitField0_ & 0x00000008) == 0x00000008); + return ((bitField0_ & 0x00000010) == 0x00000010); } /** * optional uint32 expireTimer = 5; @@ -16729,7 +15522,7 @@ public final class SignalServiceProtos { * optional uint32 expireTimer = 5; */ public Builder setExpireTimer(int value) { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; expireTimer_ = value; onChanged(); return this; @@ -16738,7 +15531,7 @@ public final class SignalServiceProtos { * optional uint32 expireTimer = 5; */ public Builder clearExpireTimer() { - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); expireTimer_ = 0; onChanged(); return this; @@ -16750,7 +15543,7 @@ public final class SignalServiceProtos { * optional bytes profileKey = 6; */ public boolean hasProfileKey() { - return ((bitField0_ & 0x00000010) == 0x00000010); + return ((bitField0_ & 0x00000020) == 0x00000020); } /** * optional bytes profileKey = 6; @@ -16765,7 +15558,7 @@ public final class SignalServiceProtos { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000010; + bitField0_ |= 0x00000020; profileKey_ = value; onChanged(); return this; @@ -16774,7 +15567,7 @@ public final class SignalServiceProtos { * optional bytes profileKey = 6; */ public Builder clearProfileKey() { - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000020); profileKey_ = getDefaultInstance().getProfileKey(); onChanged(); return this; @@ -16786,7 +15579,7 @@ public final class SignalServiceProtos { * optional uint64 timestamp = 7; */ public boolean hasTimestamp() { - return ((bitField0_ & 0x00000020) == 0x00000020); + return ((bitField0_ & 0x00000040) == 0x00000040); } /** * optional uint64 timestamp = 7; @@ -16798,7 +15591,7 @@ public final class SignalServiceProtos { * optional uint64 timestamp = 7; */ public Builder setTimestamp(long value) { - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000040; timestamp_ = value; onChanged(); return this; @@ -16807,7 +15600,7 @@ public final class SignalServiceProtos { * optional uint64 timestamp = 7; */ public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000040); timestamp_ = 0L; onChanged(); return this; @@ -16821,7 +15614,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.Quote quote = 8; */ public boolean hasQuote() { - return ((bitField0_ & 0x00000040) == 0x00000040); + return ((bitField0_ & 0x00000080) == 0x00000080); } /** * optional .signalservice.DataMessage.Quote quote = 8; @@ -16846,7 +15639,7 @@ public final class SignalServiceProtos { } else { quoteBuilder_.setMessage(value); } - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; return this; } /** @@ -16860,7 +15653,7 @@ public final class SignalServiceProtos { } else { quoteBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; return this; } /** @@ -16868,7 +15661,7 @@ public final class SignalServiceProtos { */ public Builder mergeQuote(org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote value) { if (quoteBuilder_ == null) { - if (((bitField0_ & 0x00000040) == 0x00000040) && + if (((bitField0_ & 0x00000080) == 0x00000080) && quote_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.getDefaultInstance()) { quote_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.newBuilder(quote_).mergeFrom(value).buildPartial(); @@ -16879,7 +15672,7 @@ public final class SignalServiceProtos { } else { quoteBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; return this; } /** @@ -16892,14 +15685,14 @@ public final class SignalServiceProtos { } else { quoteBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000080); return this; } /** * optional .signalservice.DataMessage.Quote quote = 8; */ public org.session.libsignal.protos.SignalServiceProtos.DataMessage.Quote.Builder getQuoteBuilder() { - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000080; onChanged(); return getQuoteFieldBuilder().getBuilder(); } @@ -16934,9 +15727,9 @@ public final class SignalServiceProtos { private java.util.List preview_ = java.util.Collections.emptyList(); private void ensurePreviewIsMutable() { - if (!((bitField0_ & 0x00000080) == 0x00000080)) { + if (!((bitField0_ & 0x00000100) == 0x00000100)) { preview_ = new java.util.ArrayList(preview_); - bitField0_ |= 0x00000080; + bitField0_ |= 0x00000100; } } @@ -17085,7 +15878,7 @@ public final class SignalServiceProtos { public Builder clearPreview() { if (previewBuilder_ == null) { preview_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); + bitField0_ = (bitField0_ & ~0x00000100); onChanged(); } else { previewBuilder_.clear(); @@ -17162,7 +15955,7 @@ public final class SignalServiceProtos { previewBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< org.session.libsignal.protos.SignalServiceProtos.DataMessage.Preview, org.session.libsignal.protos.SignalServiceProtos.DataMessage.Preview.Builder, org.session.libsignal.protos.SignalServiceProtos.DataMessage.PreviewOrBuilder>( preview_, - ((bitField0_ & 0x00000080) == 0x00000080), + ((bitField0_ & 0x00000100) == 0x00000100), getParentForChildren(), isClean()); preview_ = null; @@ -17178,7 +15971,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.Reaction reaction = 11; */ public boolean hasReaction() { - return ((bitField0_ & 0x00000100) == 0x00000100); + return ((bitField0_ & 0x00000200) == 0x00000200); } /** * optional .signalservice.DataMessage.Reaction reaction = 11; @@ -17203,7 +15996,7 @@ public final class SignalServiceProtos { } else { reactionBuilder_.setMessage(value); } - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; return this; } /** @@ -17217,7 +16010,7 @@ public final class SignalServiceProtos { } else { reactionBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; return this; } /** @@ -17225,7 +16018,7 @@ public final class SignalServiceProtos { */ public Builder mergeReaction(org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction value) { if (reactionBuilder_ == null) { - if (((bitField0_ & 0x00000100) == 0x00000100) && + if (((bitField0_ & 0x00000200) == 0x00000200) && reaction_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction.getDefaultInstance()) { reaction_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction.newBuilder(reaction_).mergeFrom(value).buildPartial(); @@ -17236,7 +16029,7 @@ public final class SignalServiceProtos { } else { reactionBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; return this; } /** @@ -17249,14 +16042,14 @@ public final class SignalServiceProtos { } else { reactionBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000100); + bitField0_ = (bitField0_ & ~0x00000200); return this; } /** * optional .signalservice.DataMessage.Reaction reaction = 11; */ public org.session.libsignal.protos.SignalServiceProtos.DataMessage.Reaction.Builder getReactionBuilder() { - bitField0_ |= 0x00000100; + bitField0_ |= 0x00000200; onChanged(); return getReactionFieldBuilder().getBuilder(); } @@ -17295,7 +16088,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.LokiProfile profile = 101; */ public boolean hasProfile() { - return ((bitField0_ & 0x00000200) == 0x00000200); + return ((bitField0_ & 0x00000400) == 0x00000400); } /** * optional .signalservice.DataMessage.LokiProfile profile = 101; @@ -17320,7 +16113,7 @@ public final class SignalServiceProtos { } else { profileBuilder_.setMessage(value); } - bitField0_ |= 0x00000200; + bitField0_ |= 0x00000400; return this; } /** @@ -17334,7 +16127,7 @@ public final class SignalServiceProtos { } else { profileBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000200; + bitField0_ |= 0x00000400; return this; } /** @@ -17342,7 +16135,7 @@ public final class SignalServiceProtos { */ public Builder mergeProfile(org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile value) { if (profileBuilder_ == null) { - if (((bitField0_ & 0x00000200) == 0x00000200) && + if (((bitField0_ & 0x00000400) == 0x00000400) && profile_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.getDefaultInstance()) { profile_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.newBuilder(profile_).mergeFrom(value).buildPartial(); @@ -17353,7 +16146,7 @@ public final class SignalServiceProtos { } else { profileBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000200; + bitField0_ |= 0x00000400; return this; } /** @@ -17366,14 +16159,14 @@ public final class SignalServiceProtos { } else { profileBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000200); + bitField0_ = (bitField0_ & ~0x00000400); return this; } /** * optional .signalservice.DataMessage.LokiProfile profile = 101; */ public org.session.libsignal.protos.SignalServiceProtos.DataMessage.LokiProfile.Builder getProfileBuilder() { - bitField0_ |= 0x00000200; + bitField0_ |= 0x00000400; onChanged(); return getProfileFieldBuilder().getBuilder(); } @@ -17412,7 +16205,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.OpenGroupInvitation openGroupInvitation = 102; */ public boolean hasOpenGroupInvitation() { - return ((bitField0_ & 0x00000400) == 0x00000400); + return ((bitField0_ & 0x00000800) == 0x00000800); } /** * optional .signalservice.DataMessage.OpenGroupInvitation openGroupInvitation = 102; @@ -17437,7 +16230,7 @@ public final class SignalServiceProtos { } else { openGroupInvitationBuilder_.setMessage(value); } - bitField0_ |= 0x00000400; + bitField0_ |= 0x00000800; return this; } /** @@ -17451,7 +16244,7 @@ public final class SignalServiceProtos { } else { openGroupInvitationBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000400; + bitField0_ |= 0x00000800; return this; } /** @@ -17459,7 +16252,7 @@ public final class SignalServiceProtos { */ public Builder mergeOpenGroupInvitation(org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation value) { if (openGroupInvitationBuilder_ == null) { - if (((bitField0_ & 0x00000400) == 0x00000400) && + if (((bitField0_ & 0x00000800) == 0x00000800) && openGroupInvitation_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.getDefaultInstance()) { openGroupInvitation_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.newBuilder(openGroupInvitation_).mergeFrom(value).buildPartial(); @@ -17470,7 +16263,7 @@ public final class SignalServiceProtos { } else { openGroupInvitationBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000400; + bitField0_ |= 0x00000800; return this; } /** @@ -17483,14 +16276,14 @@ public final class SignalServiceProtos { } else { openGroupInvitationBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000400); + bitField0_ = (bitField0_ & ~0x00000800); return this; } /** * optional .signalservice.DataMessage.OpenGroupInvitation openGroupInvitation = 102; */ public org.session.libsignal.protos.SignalServiceProtos.DataMessage.OpenGroupInvitation.Builder getOpenGroupInvitationBuilder() { - bitField0_ |= 0x00000400; + bitField0_ |= 0x00000800; onChanged(); return getOpenGroupInvitationFieldBuilder().getBuilder(); } @@ -17529,7 +16322,7 @@ public final class SignalServiceProtos { * optional .signalservice.DataMessage.ClosedGroupControlMessage closedGroupControlMessage = 104; */ public boolean hasClosedGroupControlMessage() { - return ((bitField0_ & 0x00000800) == 0x00000800); + return ((bitField0_ & 0x00001000) == 0x00001000); } /** * optional .signalservice.DataMessage.ClosedGroupControlMessage closedGroupControlMessage = 104; @@ -17554,7 +16347,7 @@ public final class SignalServiceProtos { } else { closedGroupControlMessageBuilder_.setMessage(value); } - bitField0_ |= 0x00000800; + bitField0_ |= 0x00001000; return this; } /** @@ -17568,7 +16361,7 @@ public final class SignalServiceProtos { } else { closedGroupControlMessageBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000800; + bitField0_ |= 0x00001000; return this; } /** @@ -17576,7 +16369,7 @@ public final class SignalServiceProtos { */ public Builder mergeClosedGroupControlMessage(org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage value) { if (closedGroupControlMessageBuilder_ == null) { - if (((bitField0_ & 0x00000800) == 0x00000800) && + if (((bitField0_ & 0x00001000) == 0x00001000) && closedGroupControlMessage_ != org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.getDefaultInstance()) { closedGroupControlMessage_ = org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.newBuilder(closedGroupControlMessage_).mergeFrom(value).buildPartial(); @@ -17587,7 +16380,7 @@ public final class SignalServiceProtos { } else { closedGroupControlMessageBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000800; + bitField0_ |= 0x00001000; return this; } /** @@ -17600,14 +16393,14 @@ public final class SignalServiceProtos { } else { closedGroupControlMessageBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000800); + bitField0_ = (bitField0_ & ~0x00001000); return this; } /** * optional .signalservice.DataMessage.ClosedGroupControlMessage closedGroupControlMessage = 104; */ public org.session.libsignal.protos.SignalServiceProtos.DataMessage.ClosedGroupControlMessage.Builder getClosedGroupControlMessageBuilder() { - bitField0_ |= 0x00000800; + bitField0_ |= 0x00001000; onChanged(); return getClosedGroupControlMessageFieldBuilder().getBuilder(); } @@ -17644,7 +16437,7 @@ public final class SignalServiceProtos { * optional string syncTarget = 105; */ public boolean hasSyncTarget() { - return ((bitField0_ & 0x00001000) == 0x00001000); + return ((bitField0_ & 0x00002000) == 0x00002000); } /** * optional string syncTarget = 105; @@ -17684,7 +16477,7 @@ public final class SignalServiceProtos { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00001000; + bitField0_ |= 0x00002000; syncTarget_ = value; onChanged(); return this; @@ -17693,7 +16486,7 @@ public final class SignalServiceProtos { * optional string syncTarget = 105; */ public Builder clearSyncTarget() { - bitField0_ = (bitField0_ & ~0x00001000); + bitField0_ = (bitField0_ & ~0x00002000); syncTarget_ = getDefaultInstance().getSyncTarget(); onChanged(); return this; @@ -17706,127 +16499,43 @@ public final class SignalServiceProtos { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00001000; + bitField0_ |= 0x00002000; syncTarget_ = value; onChanged(); 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 bool blocksCommunityMessageRequests = 106; + private boolean blocksCommunityMessageRequests_ ; /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - public boolean hasGroupMessage() { - return ((bitField0_ & 0x00002000) == 0x00002000); + public boolean hasBlocksCommunityMessageRequests() { + return ((bitField0_ & 0x00004000) == 0x00004000); } /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - public org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupMessage getGroupMessage() { - if (groupMessageBuilder_ == null) { - return groupMessage_; - } else { - return groupMessageBuilder_.getMessage(); - } + public boolean getBlocksCommunityMessageRequests() { + return blocksCommunityMessageRequests_; } /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - 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; + public Builder setBlocksCommunityMessageRequests(boolean value) { + bitField0_ |= 0x00004000; + blocksCommunityMessageRequests_ = value; onChanged(); - return getGroupMessageFieldBuilder().getBuilder(); + return this; } /** - * optional .signalservice.DataMessage.GroupMessage groupMessage = 120; + * optional bool blocksCommunityMessageRequests = 106; */ - 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_; + public Builder clearBlocksCommunityMessageRequests() { + bitField0_ = (bitField0_ & ~0x00004000); + blocksCommunityMessageRequests_ = false; + onChanged(); + return this; } // @@protoc_insertion_point(builder_scope:signalservice.DataMessage) @@ -17840,2224 +16549,6 @@ 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 { @@ -29200,6 +25691,1398 @@ public final class SignalServiceProtos { // @@protoc_insertion_point(class_scope:signalservice.AttachmentPointer) } + public interface GroupContextOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional bytes id = 1; + /** + * optional bytes id = 1; + * + *
+     * @required
+     * 
+ */ + boolean hasId(); + /** + * optional bytes id = 1; + * + *
+     * @required
+     * 
+ */ + com.google.protobuf.ByteString getId(); + + // optional .signalservice.GroupContext.Type type = 2; + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+     * @required
+     * 
+ */ + boolean hasType(); + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+     * @required
+     * 
+ */ + org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type getType(); + + // optional string name = 3; + /** + * optional string name = 3; + */ + boolean hasName(); + /** + * optional string name = 3; + */ + java.lang.String getName(); + /** + * optional string name = 3; + */ + com.google.protobuf.ByteString + getNameBytes(); + + // repeated string members = 4; + /** + * repeated string members = 4; + */ + java.util.List + getMembersList(); + /** + * repeated string members = 4; + */ + int getMembersCount(); + /** + * repeated string members = 4; + */ + java.lang.String getMembers(int index); + /** + * repeated string members = 4; + */ + com.google.protobuf.ByteString + getMembersBytes(int index); + + // optional .signalservice.AttachmentPointer avatar = 5; + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + boolean hasAvatar(); + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer getAvatar(); + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder(); + + // repeated string admins = 6; + /** + * repeated string admins = 6; + */ + java.util.List + getAdminsList(); + /** + * repeated string admins = 6; + */ + int getAdminsCount(); + /** + * repeated string admins = 6; + */ + java.lang.String getAdmins(int index); + /** + * repeated string admins = 6; + */ + com.google.protobuf.ByteString + getAdminsBytes(int index); + } + /** + * Protobuf type {@code signalservice.GroupContext} + */ + public static final class GroupContext extends + com.google.protobuf.GeneratedMessage + implements GroupContextOrBuilder { + // Use GroupContext.newBuilder() to construct. + private GroupContext(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private GroupContext(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final GroupContext defaultInstance; + public static GroupContext getDefaultInstance() { + return defaultInstance; + } + + public GroupContext getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GroupContext( + 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; + id_ = input.readBytes(); + break; + } + case 16: { + int rawValue = input.readEnum(); + org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type value = org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type.valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(2, rawValue); + } else { + bitField0_ |= 0x00000002; + type_ = value; + } + break; + } + case 26: { + bitField0_ |= 0x00000004; + name_ = input.readBytes(); + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + members_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000008; + } + members_.add(input.readBytes()); + break; + } + case 42: { + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = avatar_.toBuilder(); + } + avatar_ = input.readMessage(org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(avatar_); + avatar_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; + break; + } + case 50: { + if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + admins_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000020; + } + admins_.add(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 { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + members_ = new com.google.protobuf.UnmodifiableLazyStringList(members_); + } + if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + admins_ = new com.google.protobuf.UnmodifiableLazyStringList(admins_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupContext_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupContext.class, org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public GroupContext parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GroupContext(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + /** + * Protobuf enum {@code signalservice.GroupContext.Type} + */ + public enum Type + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0, 0), + /** + * UPDATE = 1; + */ + UPDATE(1, 1), + /** + * DELIVER = 2; + */ + DELIVER(2, 2), + /** + * QUIT = 3; + */ + QUIT(3, 3), + /** + * REQUEST_INFO = 4; + */ + REQUEST_INFO(4, 4), + ; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * UPDATE = 1; + */ + public static final int UPDATE_VALUE = 1; + /** + * DELIVER = 2; + */ + public static final int DELIVER_VALUE = 2; + /** + * QUIT = 3; + */ + public static final int QUIT_VALUE = 3; + /** + * REQUEST_INFO = 4; + */ + public static final int REQUEST_INFO_VALUE = 4; + + + public final int getNumber() { return value; } + + public static Type valueOf(int value) { + switch (value) { + case 0: return UNKNOWN; + case 1: return UPDATE; + case 2: return DELIVER; + case 3: return QUIT; + case 4: return REQUEST_INFO; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Type findValueByNumber(int number) { + return Type.valueOf(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(index); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDescriptor().getEnumTypes().get(0); + } + + private static final Type[] VALUES = values(); + + public static Type valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int index; + private final int value; + + private Type(int index, int value) { + this.index = index; + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:signalservice.GroupContext.Type) + } + + private int bitField0_; + // optional bytes id = 1; + public static final int ID_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString id_; + /** + * optional bytes id = 1; + * + *
+     * @required
+     * 
+ */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional bytes id = 1; + * + *
+     * @required
+     * 
+ */ + public com.google.protobuf.ByteString getId() { + return id_; + } + + // optional .signalservice.GroupContext.Type type = 2; + public static final int TYPE_FIELD_NUMBER = 2; + private org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type type_; + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+     * @required
+     * 
+ */ + public boolean hasType() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+     * @required
+     * 
+ */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type getType() { + return type_; + } + + // optional string name = 3; + public static final int NAME_FIELD_NUMBER = 3; + private java.lang.Object name_; + /** + * optional string name = 3; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string name = 3; + */ + 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; + } + } + /** + * optional string name = 3; + */ + 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; + } + } + + // repeated string members = 4; + public static final int MEMBERS_FIELD_NUMBER = 4; + private com.google.protobuf.LazyStringList members_; + /** + * repeated string members = 4; + */ + public java.util.List + getMembersList() { + return members_; + } + /** + * repeated string members = 4; + */ + public int getMembersCount() { + return members_.size(); + } + /** + * repeated string members = 4; + */ + public java.lang.String getMembers(int index) { + return members_.get(index); + } + /** + * repeated string members = 4; + */ + public com.google.protobuf.ByteString + getMembersBytes(int index) { + return members_.getByteString(index); + } + + // optional .signalservice.AttachmentPointer avatar = 5; + public static final int AVATAR_FIELD_NUMBER = 5; + private org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer avatar_; + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public boolean hasAvatar() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer getAvatar() { + return avatar_; + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { + return avatar_; + } + + // repeated string admins = 6; + public static final int ADMINS_FIELD_NUMBER = 6; + private com.google.protobuf.LazyStringList admins_; + /** + * repeated string admins = 6; + */ + public java.util.List + getAdminsList() { + return admins_; + } + /** + * repeated string admins = 6; + */ + public int getAdminsCount() { + return admins_.size(); + } + /** + * repeated string admins = 6; + */ + public java.lang.String getAdmins(int index) { + return admins_.get(index); + } + /** + * repeated string admins = 6; + */ + public com.google.protobuf.ByteString + getAdminsBytes(int index) { + return admins_.getByteString(index); + } + + private void initFields() { + id_ = com.google.protobuf.ByteString.EMPTY; + type_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type.UNKNOWN; + name_ = ""; + members_ = com.google.protobuf.LazyStringArrayList.EMPTY; + avatar_ = org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); + admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (hasAvatar()) { + if (!getAvatar().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.writeBytes(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeEnum(2, type_.getNumber()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, getNameBytes()); + } + for (int i = 0; i < members_.size(); i++) { + output.writeBytes(4, members_.getByteString(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(5, avatar_); + } + for (int i = 0; i < admins_.size(); i++) { + output.writeBytes(6, admins_.getByteString(i)); + } + 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, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, type_.getNumber()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, getNameBytes()); + } + { + int dataSize = 0; + for (int i = 0; i < members_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(members_.getByteString(i)); + } + size += dataSize; + size += 1 * getMembersList().size(); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, avatar_); + } + { + int dataSize = 0; + for (int i = 0; i < admins_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(admins_.getByteString(i)); + } + size += dataSize; + size += 1 * getAdminsList().size(); + } + 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.GroupContext parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupContext 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.GroupContext parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupContext 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.GroupContext parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupContext 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.GroupContext parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupContext 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.GroupContext parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.session.libsignal.protos.SignalServiceProtos.GroupContext 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.GroupContext 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.GroupContext} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.session.libsignal.protos.SignalServiceProtos.GroupContextOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupContext_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.session.libsignal.protos.SignalServiceProtos.internal_static_signalservice_GroupContext_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.session.libsignal.protos.SignalServiceProtos.GroupContext.class, org.session.libsignal.protos.SignalServiceProtos.GroupContext.Builder.class); + } + + // Construct using org.session.libsignal.protos.SignalServiceProtos.GroupContext.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getAvatarFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + id_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + type_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type.UNKNOWN; + bitField0_ = (bitField0_ & ~0x00000002); + name_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + members_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000008); + if (avatarBuilder_ == null) { + avatar_ = org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); + } else { + avatarBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000020); + 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_GroupContext_descriptor; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupContext getDefaultInstanceForType() { + return org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance(); + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupContext build() { + org.session.libsignal.protos.SignalServiceProtos.GroupContext result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.session.libsignal.protos.SignalServiceProtos.GroupContext buildPartial() { + org.session.libsignal.protos.SignalServiceProtos.GroupContext result = new org.session.libsignal.protos.SignalServiceProtos.GroupContext(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.type_ = type_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.name_ = name_; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + members_ = new com.google.protobuf.UnmodifiableLazyStringList( + members_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.members_ = members_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + if (avatarBuilder_ == null) { + result.avatar_ = avatar_; + } else { + result.avatar_ = avatarBuilder_.build(); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + admins_ = new com.google.protobuf.UnmodifiableLazyStringList( + admins_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.admins_ = admins_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.session.libsignal.protos.SignalServiceProtos.GroupContext) { + return mergeFrom((org.session.libsignal.protos.SignalServiceProtos.GroupContext)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.session.libsignal.protos.SignalServiceProtos.GroupContext other) { + if (other == org.session.libsignal.protos.SignalServiceProtos.GroupContext.getDefaultInstance()) return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasType()) { + setType(other.getType()); + } + if (other.hasName()) { + bitField0_ |= 0x00000004; + name_ = other.name_; + onChanged(); + } + if (!other.members_.isEmpty()) { + if (members_.isEmpty()) { + members_ = other.members_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureMembersIsMutable(); + members_.addAll(other.members_); + } + onChanged(); + } + if (other.hasAvatar()) { + mergeAvatar(other.getAvatar()); + } + if (!other.admins_.isEmpty()) { + if (admins_.isEmpty()) { + admins_ = other.admins_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureAdminsIsMutable(); + admins_.addAll(other.admins_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (hasAvatar()) { + if (!getAvatar().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.GroupContext parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.session.libsignal.protos.SignalServiceProtos.GroupContext) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional bytes id = 1; + private com.google.protobuf.ByteString id_ = com.google.protobuf.ByteString.EMPTY; + /** + * optional bytes id = 1; + * + *
+       * @required
+       * 
+ */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * optional bytes id = 1; + * + *
+       * @required
+       * 
+ */ + public com.google.protobuf.ByteString getId() { + return id_; + } + /** + * optional bytes id = 1; + * + *
+       * @required
+       * 
+ */ + public Builder setId(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + /** + * optional bytes id = 1; + * + *
+       * @required
+       * 
+ */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + + // optional .signalservice.GroupContext.Type type = 2; + private org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type type_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type.UNKNOWN; + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+       * @required
+       * 
+ */ + public boolean hasType() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+       * @required
+       * 
+ */ + public org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type getType() { + return type_; + } + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+       * @required
+       * 
+ */ + public Builder setType(org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + type_ = value; + onChanged(); + return this; + } + /** + * optional .signalservice.GroupContext.Type type = 2; + * + *
+       * @required
+       * 
+ */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000002); + type_ = org.session.libsignal.protos.SignalServiceProtos.GroupContext.Type.UNKNOWN; + onChanged(); + return this; + } + + // optional string name = 3; + private java.lang.Object name_ = ""; + /** + * optional string name = 3; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional string name = 3; + */ + 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; + } + } + /** + * optional string name = 3; + */ + 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; + } + } + /** + * optional string name = 3; + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + name_ = value; + onChanged(); + return this; + } + /** + * optional string name = 3; + */ + public Builder clearName() { + bitField0_ = (bitField0_ & ~0x00000004); + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * optional string name = 3; + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + name_ = value; + onChanged(); + return this; + } + + // repeated string members = 4; + private com.google.protobuf.LazyStringList members_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureMembersIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + members_ = new com.google.protobuf.LazyStringArrayList(members_); + bitField0_ |= 0x00000008; + } + } + /** + * repeated string members = 4; + */ + public java.util.List + getMembersList() { + return java.util.Collections.unmodifiableList(members_); + } + /** + * repeated string members = 4; + */ + public int getMembersCount() { + return members_.size(); + } + /** + * repeated string members = 4; + */ + public java.lang.String getMembers(int index) { + return members_.get(index); + } + /** + * repeated string members = 4; + */ + public com.google.protobuf.ByteString + getMembersBytes(int index) { + return members_.getByteString(index); + } + /** + * repeated string members = 4; + */ + public Builder setMembers( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureMembersIsMutable(); + members_.set(index, value); + onChanged(); + return this; + } + /** + * repeated string members = 4; + */ + public Builder addMembers( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureMembersIsMutable(); + members_.add(value); + onChanged(); + return this; + } + /** + * repeated string members = 4; + */ + public Builder addAllMembers( + java.lang.Iterable values) { + ensureMembersIsMutable(); + super.addAll(values, members_); + onChanged(); + return this; + } + /** + * repeated string members = 4; + */ + public Builder clearMembers() { + members_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * repeated string members = 4; + */ + public Builder addMembersBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureMembersIsMutable(); + members_.add(value); + onChanged(); + return this; + } + + // optional .signalservice.AttachmentPointer avatar = 5; + private org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer avatar_ = org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder> avatarBuilder_; + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public boolean hasAvatar() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer getAvatar() { + if (avatarBuilder_ == null) { + return avatar_; + } else { + return avatarBuilder_.getMessage(); + } + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public Builder setAvatar(org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer value) { + if (avatarBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatar_ = value; + onChanged(); + } else { + avatarBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public Builder setAvatar( + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder builderForValue) { + if (avatarBuilder_ == null) { + avatar_ = builderForValue.build(); + onChanged(); + } else { + avatarBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public Builder mergeAvatar(org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer value) { + if (avatarBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010) && + avatar_ != org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.getDefaultInstance()) { + avatar_ = + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.newBuilder(avatar_).mergeFrom(value).buildPartial(); + } else { + avatar_ = value; + } + onChanged(); + } else { + avatarBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public Builder clearAvatar() { + if (avatarBuilder_ == null) { + avatar_ = org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.getDefaultInstance(); + onChanged(); + } else { + avatarBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder getAvatarBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getAvatarFieldBuilder().getBuilder(); + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + public org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder getAvatarOrBuilder() { + if (avatarBuilder_ != null) { + return avatarBuilder_.getMessageOrBuilder(); + } else { + return avatar_; + } + } + /** + * optional .signalservice.AttachmentPointer avatar = 5; + */ + private com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder> + getAvatarFieldBuilder() { + if (avatarBuilder_ == null) { + avatarBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointer.Builder, org.session.libsignal.protos.SignalServiceProtos.AttachmentPointerOrBuilder>( + avatar_, + getParentForChildren(), + isClean()); + avatar_ = null; + } + return avatarBuilder_; + } + + // repeated string admins = 6; + private com.google.protobuf.LazyStringList admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureAdminsIsMutable() { + if (!((bitField0_ & 0x00000020) == 0x00000020)) { + admins_ = new com.google.protobuf.LazyStringArrayList(admins_); + bitField0_ |= 0x00000020; + } + } + /** + * repeated string admins = 6; + */ + public java.util.List + getAdminsList() { + return java.util.Collections.unmodifiableList(admins_); + } + /** + * repeated string admins = 6; + */ + public int getAdminsCount() { + return admins_.size(); + } + /** + * repeated string admins = 6; + */ + public java.lang.String getAdmins(int index) { + return admins_.get(index); + } + /** + * repeated string admins = 6; + */ + public com.google.protobuf.ByteString + getAdminsBytes(int index) { + return admins_.getByteString(index); + } + /** + * repeated string admins = 6; + */ + public Builder setAdmins( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdminsIsMutable(); + admins_.set(index, value); + onChanged(); + return this; + } + /** + * repeated string admins = 6; + */ + public Builder addAdmins( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdminsIsMutable(); + admins_.add(value); + onChanged(); + return this; + } + /** + * repeated string admins = 6; + */ + public Builder addAllAdmins( + java.lang.Iterable values) { + ensureAdminsIsMutable(); + super.addAll(values, admins_); + onChanged(); + return this; + } + /** + * repeated string admins = 6; + */ + public Builder clearAdmins() { + admins_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * repeated string admins = 6; + */ + public Builder addAdminsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdminsIsMutable(); + admins_.add(value); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:signalservice.GroupContext) + } + + static { + defaultInstance = new GroupContext(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:signalservice.GroupContext) + } + private static com.google.protobuf.Descriptors.Descriptor internal_static_signalservice_Envelope_descriptor; private static @@ -29260,11 +27143,6 @@ 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 @@ -29280,26 +27158,6 @@ 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 @@ -29340,6 +27198,11 @@ public final class SignalServiceProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_signalservice_AttachmentPointer_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_signalservice_GroupContext_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_signalservice_GroupContext_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -29378,107 +27241,98 @@ public final class SignalServiceProtos { "actionNotification\022<\n\004type\030\001 \002(\0162..signa" + "lservice.DataExtractionNotification.Type" + "\022\021\n\ttimestamp\030\002 \001(\004\"\'\n\004Type\022\016\n\nSCREENSHO" + - "T\020\001\022\017\n\013MEDIA_SAVED\020\002\"\216\021\n\013DataMessage\022\014\n\004", + "T\020\001\022\017\n\013MEDIA_SAVED\020\002\"\231\016\n\013DataMessage\022\014\n\004", "body\030\001 \001(\t\0225\n\013attachments\030\002 \003(\0132 .signal" + - "service.AttachmentPointer\022\r\n\005flags\030\004 \001(\r" + - "\022\023\n\013expireTimer\030\005 \001(\r\022\022\n\nprofileKey\030\006 \001(" + - "\014\022\021\n\ttimestamp\030\007 \001(\004\022/\n\005quote\030\010 \001(\0132 .si" + - "gnalservice.DataMessage.Quote\0223\n\007preview" + - "\030\n \003(\0132\".signalservice.DataMessage.Previ" + - "ew\0225\n\010reaction\030\013 \001(\0132#.signalservice.Dat" + - "aMessage.Reaction\0227\n\007profile\030e \001(\0132&.sig" + - "nalservice.DataMessage.LokiProfile\022K\n\023op" + - "enGroupInvitation\030f \001(\0132..signalservice.", - "DataMessage.OpenGroupInvitation\022W\n\031close" + - "dGroupControlMessage\030h \001(\01324.signalservi" + - "ce.DataMessage.ClosedGroupControlMessage" + - "\022\022\n\nsyncTarget\030i \001(\t\022=\n\014groupMessage\030x \001" + - "(\0132\'.signalservice.DataMessage.GroupMess" + - "age\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\013attachments\030\004 \003(\01321.s" + - "ignalservice.DataMessage.Quote.QuotedAtt" + - "achment\032\231\001\n\020QuotedAttachment\022\023\n\013contentT" + - "ype\030\001 \001(\t\022\020\n\010fileName\030\002 \001(\t\0223\n\tthumbnail", - "\030\003 \001(\0132 .signalservice.AttachmentPointer" + - "\022\r\n\005flags\030\004 \001(\r\"\032\n\005Flags\022\021\n\rVOICE_MESSAG" + - "E\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 .signalservice.Attach" + - "mentPointer\032:\n\013LokiProfile\022\023\n\013displayNam" + - "e\030\001 \001(\t\022\026\n\016profilePicture\030\002 \001(\t\0320\n\023OpenG" + - "roupInvitation\022\013\n\003url\030\001 \002(\t\022\014\n\004name\030\003 \002(" + - "\t\032\200\002\n\014GroupMessage\0228\n\rdeleteMessage\030\037 \001(" + - "\0132!.signalservice.GroupDeleteMessage\022@\n\021" + - "memberLeftMessage\030 \001(\0132%.signalservice.", - "GroupMemberLeftMessage\0228\n\rinviteMessage\030" + - "! \001(\0132!.signalservice.GroupInviteMessage" + - "\022:\n\016promoteMessage\030\" \001(\0132\".signalservice" + - ".GroupPromoteMessage\032\203\005\n\031ClosedGroupCont" + - "rolMessage\022G\n\004type\030\001 \002(\01629.signalservice" + - ".DataMessage.ClosedGroupControlMessage.T" + - "ype\022\021\n\tpublicKey\030\002 \001(\014\022\014\n\004name\030\003 \001(\t\0221\n\021" + - "encryptionKeyPair\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.signalservice.DataM", - "essage.ClosedGroupControlMessage.KeyPair" + - "Wrapper\022\027\n\017expirationTimer\030\010 \001(\r\022\030\n\020memb" + - "erPrivateKey\030\t \001(\014\022\022\n\nprivateKey\030\n \001(\014\032=" + - "\n\016KeyPairWrapper\022\021\n\tpublicKey\030\001 \002(\014\022\030\n\020e" + - "ncryptedKeyPair\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\017MEMBERS_REMOVED\020" + - "\006\022\017\n\013MEMBER_LEFT\020\007\022\n\n\006INVITE\020\t\022\013\n\007PROMOT" + - "E\020\n\022\020\n\014DELETE_GROUP\020\013\022\023\n\017DELETE_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*.signalservice.DataM" + - "essage.Reaction.Action\"\037\n\006Action\022\t\n\005REAC" + - "T\020\000\022\n\n\006REMOVE\020\001\"$\n\005Flags\022\033\n\027EXPIRATION_T" + - "IMER_UPDATE\020\002\"B\n\022GroupDeleteMessage\022\021\n\tp" + - "ublicKey\030\001 \002(\014\022\031\n\021lastEncryptionKey\030\002 \002(" + - "\014\"\030\n\026GroupMemberLeftMessage\"O\n\022GroupInvi" + - "teMessage\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\023GroupPro" + - "moteMessage\022\021\n\tpublicKey\030\001 \002(\014\022\033\n\023encryp", - "tedPrivateKey\030\002 \002(\014\"\352\001\n\013CallMessage\022-\n\004t" + - "ype\030\001 \002(\0162\037.signalservice.CallMessage.Ty" + - "pe\022\014\n\004sdps\030\002 \003(\t\022\027\n\017sdpMLineIndexes\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\006ANSWER\020\002\022\026" + - "\n\022PROVISIONAL_ANSWER\020\003\022\022\n\016ICE_CANDIDATES" + - "\020\004\022\014\n\010END_CALL\020\005\"\245\004\n\024ConfigurationMessag" + - "e\022E\n\014closedGroups\030\001 \003(\0132/.signalservice." + - "ConfigurationMessage.ClosedGroup\022\022\n\nopen" + - "Groups\030\002 \003(\t\022\023\n\013displayName\030\003 \001(\t\022\026\n\016pro", - "filePicture\030\004 \001(\t\022\022\n\nprofileKey\030\005 \001(\014\022=\n" + - "\010contacts\030\006 \003(\0132+.signalservice.Configur" + - "ationMessage.Contact\032\233\001\n\013ClosedGroup\022\021\n\t" + - "publicKey\030\001 \001(\014\022\014\n\004name\030\002 \001(\t\0221\n\021encrypt" + - "ionKeyPair\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\017exp" + - "irationTimer\030\006 \001(\r\032\223\001\n\007Contact\022\021\n\tpublic" + - "Key\030\001 \002(\014\022\014\n\004name\030\002 \002(\t\022\026\n\016profilePictur" + - "e\030\003 \001(\t\022\022\n\nprofileKey\030\004 \001(\014\022\022\n\nisApprove" + - "d\030\005 \001(\010\022\021\n\tisBlocked\030\006 \001(\010\022\024\n\014didApprove", - "Me\030\007 \001(\010\"y\n\026MessageRequestResponse\022\022\n\nis" + - "Approved\030\001 \002(\010\022\022\n\nprofileKey\030\002 \001(\014\0227\n\007pr" + - "ofile\030\003 \001(\0132&.signalservice.DataMessage." + - "LokiProfile\"\375\001\n\023SharedConfigMessage\0225\n\004k" + - "ind\030\001 \002(\0162\'.signalservice.SharedConfigMe" + - "ssage.Kind\022\r\n\005seqno\030\002 \002(\003\022\014\n\004data\030\003 \002(\014\"" + - "\221\001\n\004Kind\022\020\n\014USER_PROFILE\020\001\022\014\n\010CONTACTS\020\002" + - "\022\027\n\023CONVO_INFO_VOLATILE\020\003\022\n\n\006GROUPS\020\004\022\025\n" + - "\021CLOSED_GROUP_INFO\020\005\022\030\n\024CLOSED_GROUP_MEM" + - "BERS\020\006\022\023\n\017ENCRYPTION_KEYS\020\007\"u\n\016ReceiptMe", - "ssage\0220\n\004type\030\001 \002(\0162\".signalservice.Rece" + - "iptMessage.Type\022\021\n\ttimestamp\030\002 \003(\004\"\036\n\004Ty" + - "pe\022\014\n\010DELIVERY\020\000\022\010\n\004READ\020\001\"\354\001\n\021Attachmen" + - "tPointer\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\tthumbnai" + - "l\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\005width\030\t \001(\r\022\016\n\006heigh" + - "t\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_MESSAGE\020\001B3\n\034org.session" + - ".libsignal.protosB\023SignalServiceProtos" + "service.AttachmentPointer\022*\n\005group\030\003 \001(\013" + + "2\033.signalservice.GroupContext\022\r\n\005flags\030\004" + + " \001(\r\022\023\n\013expireTimer\030\005 \001(\r\022\022\n\nprofileKey\030" + + "\006 \001(\014\022\021\n\ttimestamp\030\007 \001(\004\022/\n\005quote\030\010 \001(\0132" + + " .signalservice.DataMessage.Quote\0223\n\007pre" + + "view\030\n \003(\0132\".signalservice.DataMessage.P" + + "review\0225\n\010reaction\030\013 \001(\0132#.signalservice" + + ".DataMessage.Reaction\0227\n\007profile\030e \001(\0132&" + + ".signalservice.DataMessage.LokiProfile\022K", + "\n\023openGroupInvitation\030f \001(\0132..signalserv" + + "ice.DataMessage.OpenGroupInvitation\022W\n\031c" + + "losedGroupControlMessage\030h \001(\01324.signals" + + "ervice.DataMessage.ClosedGroupControlMes" + + "sage\022\022\n\nsyncTarget\030i \001(\t\022&\n\036blocksCommun" + + "ityMessageRequests\030j \001(\010\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\013" + + "attachments\030\004 \003(\01321.signalservice.DataMe" + + "ssage.Quote.QuotedAttachment\032\231\001\n\020QuotedA" + + "ttachment\022\023\n\013contentType\030\001 \001(\t\022\020\n\010fileNa", + "me\030\002 \001(\t\0223\n\tthumbnail\030\003 \001(\0132 .signalserv" + + "ice.AttachmentPointer\022\r\n\005flags\030\004 \001(\r\"\032\n\005" + + "Flags\022\021\n\rVOICE_MESSAGE\020\001\032V\n\007Preview\022\013\n\003u" + + "rl\030\001 \002(\t\022\r\n\005title\030\002 \001(\t\022/\n\005image\030\003 \001(\0132 " + + ".signalservice.AttachmentPointer\032:\n\013Loki" + + "Profile\022\023\n\013displayName\030\001 \001(\t\022\026\n\016profileP" + + "icture\030\002 \001(\t\0320\n\023OpenGroupInvitation\022\013\n\003u" + + "rl\030\001 \002(\t\022\014\n\004name\030\003 \002(\t\032\374\003\n\031ClosedGroupCo" + + "ntrolMessage\022G\n\004type\030\001 \002(\01629.signalservi" + + "ce.DataMessage.ClosedGroupControlMessage", + ".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.signalservic" + + "e.KeyPair\022\017\n\007members\030\005 \003(\014\022\016\n\006admins\030\006 \003" + + "(\014\022U\n\010wrappers\030\007 \003(\0132C.signalservice.Dat" + + "aMessage.ClosedGroupControlMessage.KeyPa" + + "irWrapper\022\027\n\017expirationTimer\030\010 \001(\r\032=\n\016Ke" + + "yPairWrapper\022\021\n\tpublicKey\030\001 \002(\014\022\030\n\020encry" + + "ptedKeyPair\030\002 \002(\014\"r\n\004Type\022\007\n\003NEW\020\001\022\027\n\023EN" + + "CRYPTION_KEY_PAIR\020\003\022\017\n\013NAME_CHANGE\020\004\022\021\n\r" + + "MEMBERS_ADDED\020\005\022\023\n\017MEMBERS_REMOVED\020\006\022\017\n\013", + "MEMBER_LEFT\020\007\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*.signalservice.DataMessage.Reacti" + + "on.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" + + "\"\352\001\n\013CallMessage\022-\n\004type\030\001 \002(\0162\037.signals" + + "ervice.CallMessage.Type\022\014\n\004sdps\030\002 \003(\t\022\027\n" + + "\017sdpMLineIndexes\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\005" + + "OFFER\020\001\022\n\n\006ANSWER\020\002\022\026\n\022PROVISIONAL_ANSWE", + "R\020\003\022\022\n\016ICE_CANDIDATES\020\004\022\014\n\010END_CALL\020\005\"\245\004" + + "\n\024ConfigurationMessage\022E\n\014closedGroups\030\001" + + " \003(\0132/.signalservice.ConfigurationMessag" + + "e.ClosedGroup\022\022\n\nopenGroups\030\002 \003(\t\022\023\n\013dis" + + "playName\030\003 \001(\t\022\026\n\016profilePicture\030\004 \001(\t\022\022" + + "\n\nprofileKey\030\005 \001(\014\022=\n\010contacts\030\006 \003(\0132+.s" + + "ignalservice.ConfigurationMessage.Contac" + + "t\032\233\001\n\013ClosedGroup\022\021\n\tpublicKey\030\001 \001(\014\022\014\n\004" + + "name\030\002 \001(\t\0221\n\021encryptionKeyPair\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\017expirationTimer\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\nprofileK" + + "ey\030\004 \001(\014\022\022\n\nisApproved\030\005 \001(\010\022\021\n\tisBlocke" + + "d\030\006 \001(\010\022\024\n\014didApproveMe\030\007 \001(\010\"y\n\026Message" + + "RequestResponse\022\022\n\nisApproved\030\001 \002(\010\022\022\n\np" + + "rofileKey\030\002 \001(\014\0227\n\007profile\030\003 \001(\0132&.signa" + + "lservice.DataMessage.LokiProfile\"\375\001\n\023Sha" + + "redConfigMessage\0225\n\004kind\030\001 \002(\0162\'.signals" + + "ervice.SharedConfigMessage.Kind\022\r\n\005seqno", + "\030\002 \002(\003\022\014\n\004data\030\003 \002(\014\"\221\001\n\004Kind\022\020\n\014USER_PR" + + "OFILE\020\001\022\014\n\010CONTACTS\020\002\022\027\n\023CONVO_INFO_VOLA" + + "TILE\020\003\022\n\n\006GROUPS\020\004\022\025\n\021CLOSED_GROUP_INFO\020" + + "\005\022\030\n\024CLOSED_GROUP_MEMBERS\020\006\022\023\n\017ENCRYPTIO" + + "N_KEYS\020\007\"u\n\016ReceiptMessage\0220\n\004type\030\001 \002(\016" + + "2\".signalservice.ReceiptMessage.Type\022\021\n\t" + + "timestamp\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\004s" + + "ize\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" + + "\005width\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_MES" + + "SAGE\020\001\"\365\001\n\014GroupContext\022\n\n\002id\030\001 \001(\014\022.\n\004t" + + "ype\030\002 \001(\0162 .signalservice.GroupContext.T" + + "ype\022\014\n\004name\030\003 \001(\t\022\017\n\007members\030\004 \003(\t\0220\n\006av" + + "atar\030\005 \001(\0132 .signalservice.AttachmentPoi" + + "nter\022\016\n\006admins\030\006 \003(\t\"H\n\004Type\022\013\n\007UNKNOWN\020" + + "\000\022\n\n\006UPDATE\020\001\022\013\n\007DELIVER\020\002\022\010\n\004QUIT\020\003\022\020\n\014" + + "REQUEST_INFO\020\004B3\n\034org.session.libsignal.", + "protosB\023SignalServiceProtos" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -29526,7 +27380,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", "GroupMessage", }); + new java.lang.String[] { "Body", "Attachments", "Group", "Flags", "ExpireTimer", "ProfileKey", "Timestamp", "Quote", "Preview", "Reaction", "Profile", "OpenGroupInvitation", "ClosedGroupControlMessage", "SyncTarget", "BlocksCommunityMessageRequests", }); internal_static_signalservice_DataMessage_Quote_descriptor = internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(0); internal_static_signalservice_DataMessage_Quote_fieldAccessorTable = new @@ -29557,18 +27411,12 @@ 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_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_descriptor.getNestedTypes().get(4); internal_static_signalservice_DataMessage_ClosedGroupControlMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor, - new java.lang.String[] { "Type", "PublicKey", "Name", "EncryptionKeyPair", "Members", "Admins", "Wrappers", "ExpirationTimer", "MemberPrivateKey", "PrivateKey", }); + new java.lang.String[] { "Type", "PublicKey", "Name", "EncryptionKeyPair", "Members", "Admins", "Wrappers", "ExpirationTimer", }); internal_static_signalservice_DataMessage_ClosedGroupControlMessage_KeyPairWrapper_descriptor = internal_static_signalservice_DataMessage_ClosedGroupControlMessage_descriptor.getNestedTypes().get(0); internal_static_signalservice_DataMessage_ClosedGroupControlMessage_KeyPairWrapper_fieldAccessorTable = new @@ -29576,43 +27424,19 @@ 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(6); + internal_static_signalservice_DataMessage_descriptor.getNestedTypes().get(5); 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_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); + getDescriptor().getMessageTypes().get(7); 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_ConfigurationMessage_descriptor = - getDescriptor().getMessageTypes().get(12); + getDescriptor().getMessageTypes().get(8); internal_static_signalservice_ConfigurationMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_ConfigurationMessage_descriptor, @@ -29630,29 +27454,35 @@ 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(13); + getDescriptor().getMessageTypes().get(9); internal_static_signalservice_MessageRequestResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_MessageRequestResponse_descriptor, new java.lang.String[] { "IsApproved", "ProfileKey", "Profile", }); internal_static_signalservice_SharedConfigMessage_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(10); internal_static_signalservice_SharedConfigMessage_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_SharedConfigMessage_descriptor, new java.lang.String[] { "Kind", "Seqno", "Data", }); internal_static_signalservice_ReceiptMessage_descriptor = - getDescriptor().getMessageTypes().get(15); + getDescriptor().getMessageTypes().get(11); 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(16); + getDescriptor().getMessageTypes().get(12); internal_static_signalservice_AttachmentPointer_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_signalservice_AttachmentPointer_descriptor, new java.lang.String[] { "Id", "ContentType", "Key", "Size", "Thumbnail", "Digest", "FileName", "Flags", "Width", "Height", "Caption", "Url", }); + internal_static_signalservice_GroupContext_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_signalservice_GroupContext_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_signalservice_GroupContext_descriptor, + new java.lang.String[] { "Id", "Type", "Name", "Members", "Avatar", "Admins", }); return null; } };