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 37fafebc53..5a4044a090 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 @@ -346,10 +346,10 @@ class ConversationViewModel( val recipient = invitingAdmin ?: recipient ?: return Log.w("Loki", "Recipient was null for block action") if (recipient.isContactRecipient || recipient.isGroupV2Recipient) { repository.setBlocked(threadId, recipient, true) + } - if (recipient.isGroupV2Recipient) { - groupManagerV2.onBlocked(AccountId(recipient.address.serialize())) - } + if (this.recipient?.isGroupV2Recipient == true) { + groupManagerV2.onBlocked(AccountId(this.recipient!!.address.serialize())) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt index 2bc923dd81..da791dc3b4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt @@ -47,7 +47,6 @@ import org.session.libsession.utilities.SSKEnvironment import org.session.libsession.utilities.getGroup import org.session.libsession.utilities.recipients.Recipient import org.session.libsession.utilities.waitUntilGroupConfigsPushed -import org.session.libsignal.messages.SignalServiceGroup import org.session.libsignal.protos.SignalServiceProtos.DataMessage import org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupUpdateDeleteMemberContentMessage import org.session.libsignal.protos.SignalServiceProtos.DataMessage.GroupUpdateInfoChangeMessage @@ -1085,9 +1084,12 @@ class GroupManagerV2Impl @Inject constructor( } } - override fun onBlocked(accountId: AccountId) { - GlobalScope.launch { - respondToInvitation(accountId, false) + override fun onBlocked(groupAccountId: AccountId) { + GlobalScope.launch(dispatcher) { + respondToInvitation(groupAccountId, false) + + // Remove this group from config regardless + configFactory.removeGroup(groupAccountId) } } diff --git a/libsession/src/main/java/org/session/libsession/messaging/groups/GroupManagerV2.kt b/libsession/src/main/java/org/session/libsession/messaging/groups/GroupManagerV2.kt index 5331a6291b..64c7e48e6e 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/groups/GroupManagerV2.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/groups/GroupManagerV2.kt @@ -103,5 +103,8 @@ interface GroupManagerV2 { fun setExpirationTimer(groupId: AccountId, mode: ExpiryMode, expiryChangeTimestampMs: Long) - fun onBlocked(accountId: AccountId) + /** + * Should be called whenever a group invite is blocked + */ + fun onBlocked(groupAccountId: AccountId) } \ No newline at end of file