mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-27 12:15:50 +01:00
Add GV2 accept by PNI invite.
This commit is contained in:
@@ -21,7 +21,6 @@ import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations
|
||||
import org.whispersystems.signalservice.api.push.DistributionId
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import java.util.Optional
|
||||
import java.util.UUID
|
||||
|
||||
fun DecryptedGroupChange.Builder.setNewDescription(description: String) {
|
||||
newDescription = DecryptedString.newBuilder().setValue(description).build()
|
||||
@@ -118,11 +117,10 @@ class GroupStateTestData(private val masterKey: GroupMasterKey, private val grou
|
||||
pendingMembers: List<DecryptedPendingMember> = emptyList(),
|
||||
requestingMembers: List<DecryptedRequestingMember> = emptyList(),
|
||||
inviteLinkPassword: ByteArray = ByteArray(0),
|
||||
disappearingMessageTimer: DecryptedTimer = DecryptedTimer.getDefaultInstance(),
|
||||
serviceId: String = ServiceId.from(UUID.randomUUID()).toString()
|
||||
disappearingMessageTimer: DecryptedTimer = DecryptedTimer.getDefaultInstance()
|
||||
) {
|
||||
localState = decryptedGroup(revision, title, avatar, description, accessControl, members, pendingMembers, requestingMembers, inviteLinkPassword, disappearingMessageTimer)
|
||||
groupRecord = groupRecord(masterKey, localState!!, active = active, serviceId = serviceId)
|
||||
groupRecord = groupRecord(masterKey, localState!!, active = active)
|
||||
}
|
||||
|
||||
fun serverState(
|
||||
@@ -173,8 +171,7 @@ fun groupRecord(
|
||||
active: Boolean = true,
|
||||
avatarDigest: ByteArray = ByteArray(0),
|
||||
mms: Boolean = false,
|
||||
distributionId: DistributionId? = null,
|
||||
serviceId: String = ServiceId.from(UUID.randomUUID()).toString()
|
||||
distributionId: DistributionId? = null
|
||||
): Optional<GroupDatabase.GroupRecord> {
|
||||
return Optional.of(
|
||||
GroupDatabase.GroupRecord(
|
||||
@@ -193,8 +190,7 @@ fun groupRecord(
|
||||
masterKey.serialize(),
|
||||
decryptedGroup.revision,
|
||||
decryptedGroup.toByteArray(),
|
||||
distributionId,
|
||||
serviceId
|
||||
distributionId
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.database
|
||||
|
||||
import android.net.Uri
|
||||
import org.signal.core.util.Bitmask
|
||||
import org.signal.libsignal.zkgroup.profiles.ProfileKeyCredential
|
||||
import org.signal.libsignal.zkgroup.profiles.ExpiringProfileKeyCredential
|
||||
import org.thoughtcrime.securesms.badges.models.Badge
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
|
||||
import org.thoughtcrime.securesms.conversation.colors.ChatColors
|
||||
@@ -47,7 +47,7 @@ object RecipientDatabaseTestUtils {
|
||||
expireMessages: Int = 0,
|
||||
registered: RecipientDatabase.RegisteredState = RecipientDatabase.RegisteredState.REGISTERED,
|
||||
profileKey: ByteArray = Random.nextBytes(32),
|
||||
profileKeyCredential: ProfileKeyCredential? = null,
|
||||
expiringProfileKeyCredential: ExpiringProfileKeyCredential? = null,
|
||||
systemProfileName: ProfileName = ProfileName.EMPTY,
|
||||
systemDisplayName: String? = null,
|
||||
systemContactPhoto: String? = null,
|
||||
@@ -111,7 +111,7 @@ object RecipientDatabaseTestUtils {
|
||||
expireMessages,
|
||||
registered,
|
||||
profileKey,
|
||||
profileKeyCredential,
|
||||
expiringProfileKeyCredential,
|
||||
systemProfileName,
|
||||
systemDisplayName,
|
||||
systemContactPhoto,
|
||||
|
||||
@@ -24,12 +24,12 @@ import org.signal.storageservice.protos.groups.local.DecryptedGroup;
|
||||
import org.signal.storageservice.protos.groups.local.DecryptedGroupChange;
|
||||
import org.signal.storageservice.protos.groups.local.DecryptedMember;
|
||||
import org.signal.storageservice.protos.groups.local.DecryptedPendingMember;
|
||||
import org.thoughtcrime.securesms.keyvalue.ServiceIds;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.whispersystems.signalservice.api.push.ACI;
|
||||
import org.whispersystems.signalservice.api.push.PNI;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId;
|
||||
import org.whispersystems.signalservice.api.push.ServiceIds;
|
||||
import org.whispersystems.signalservice.api.util.UuidUtil;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations
|
||||
import org.whispersystems.signalservice.api.push.ACI
|
||||
import org.whispersystems.signalservice.api.push.PNI
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import org.whispersystems.signalservice.api.push.ServiceIds
|
||||
import java.util.UUID
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@@ -55,6 +56,7 @@ class GroupManagerV2Test_edit {
|
||||
|
||||
val selfAci: ACI = ACI.from(UUID.randomUUID())
|
||||
val selfPni: PNI = PNI.from(UUID.randomUUID())
|
||||
val serviceIds: ServiceIds = ServiceIds(selfAci, selfPni)
|
||||
val otherSid: ServiceId = ServiceId.from(UUID.randomUUID())
|
||||
val selfAndOthers: List<DecryptedMember> = listOf(member(selfAci), member(otherSid))
|
||||
val others: List<DecryptedMember> = listOf(member(otherSid))
|
||||
@@ -103,8 +105,7 @@ class GroupManagerV2Test_edit {
|
||||
groupsV2Operations,
|
||||
groupsV2Authorization,
|
||||
groupsV2StateProcessor,
|
||||
selfAci,
|
||||
selfPni,
|
||||
serviceIds,
|
||||
groupCandidateHelper,
|
||||
sendGroupUpdateHelper
|
||||
)
|
||||
@@ -139,8 +140,7 @@ class GroupManagerV2Test_edit {
|
||||
members = listOf(
|
||||
member(selfAci, role = Member.Role.ADMINISTRATOR),
|
||||
member(otherSid)
|
||||
),
|
||||
serviceId = selfAci.toString()
|
||||
)
|
||||
)
|
||||
groupChange(6) {
|
||||
source(selfAci)
|
||||
|
||||
@@ -43,7 +43,9 @@ import org.thoughtcrime.securesms.testutil.SystemOutLogger
|
||||
import org.whispersystems.signalservice.api.groupsv2.GroupsV2Api
|
||||
import org.whispersystems.signalservice.api.groupsv2.PartialDecryptedGroup
|
||||
import org.whispersystems.signalservice.api.push.ACI
|
||||
import org.whispersystems.signalservice.api.push.PNI
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import org.whispersystems.signalservice.api.push.ServiceIds
|
||||
import java.util.UUID
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@@ -53,6 +55,7 @@ class GroupsV2StateProcessorTest {
|
||||
companion object {
|
||||
private val masterKey = GroupMasterKey(fromStringCondensed("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"))
|
||||
private val selfAci: ACI = ACI.from(UUID.randomUUID())
|
||||
private val serviceIds: ServiceIds = ServiceIds(selfAci, PNI.from(UUID.randomUUID()))
|
||||
private val otherSid: ServiceId = ServiceId.from(UUID.randomUUID())
|
||||
private val selfAndOthers: List<DecryptedMember> = listOf(member(selfAci), member(otherSid))
|
||||
private val others: List<DecryptedMember> = listOf(member(otherSid))
|
||||
@@ -80,7 +83,7 @@ class GroupsV2StateProcessorTest {
|
||||
groupsV2Authorization = mock(GroupsV2Authorization::class.java)
|
||||
profileAndMessageHelper = mock(GroupsV2StateProcessor.ProfileAndMessageHelper::class.java)
|
||||
|
||||
processor = GroupsV2StateProcessor.StateProcessorForGroup(selfAci, ApplicationProvider.getApplicationContext(), groupDatabase, groupsV2API, groupsV2Authorization, masterKey, profileAndMessageHelper)
|
||||
processor = GroupsV2StateProcessor.StateProcessorForGroup(serviceIds, ApplicationProvider.getApplicationContext(), groupDatabase, groupsV2API, groupsV2Authorization, masterKey, profileAndMessageHelper)
|
||||
}
|
||||
|
||||
@After
|
||||
|
||||
Reference in New Issue
Block a user