mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-14 23:18:43 +00:00
Support member labels in backups.
This commit is contained in:
committed by
Michelle Tang
parent
28d8d62cbd
commit
59bb505a3e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -17,11 +17,13 @@ import kotlin.random.Random
|
||||
* Helper methods for creating groups for message processing tests et al.
|
||||
*/
|
||||
object GroupTestingUtils {
|
||||
fun member(aci: ACI, revision: Int = 0, role: Member.Role = Member.Role.ADMINISTRATOR): DecryptedMember {
|
||||
fun member(aci: ACI, revision: Int = 0, role: Member.Role = Member.Role.ADMINISTRATOR, labelEmoji: String = "", labelString: String = ""): DecryptedMember {
|
||||
return DecryptedMember.Builder()
|
||||
.aciBytes(aci.toByteString())
|
||||
.joinedAtRevision(revision)
|
||||
.role(role)
|
||||
.labelEmoji(labelEmoji)
|
||||
.labelString(labelString)
|
||||
.build()
|
||||
}
|
||||
|
||||
|
||||
@@ -123,7 +123,13 @@ private fun Member.Role.toRemote(): Group.Member.Role {
|
||||
}
|
||||
|
||||
private fun DecryptedMember.toRemote(): Group.Member {
|
||||
return Group.Member(userId = aciBytes, role = role.toRemote(), joinedAtVersion = joinedAtRevision)
|
||||
return Group.Member(
|
||||
userId = aciBytes,
|
||||
role = role.toRemote(),
|
||||
joinedAtVersion = joinedAtRevision,
|
||||
labelEmoji = labelEmoji,
|
||||
labelString = labelString
|
||||
)
|
||||
}
|
||||
|
||||
private fun DecryptedPendingMember.toRemote(): Group.MemberPendingProfileKey {
|
||||
|
||||
@@ -116,7 +116,13 @@ private fun Group.Member.Role.toLocal(): Member.Role {
|
||||
}
|
||||
|
||||
private fun Group.Member.toLocal(): DecryptedMember {
|
||||
return DecryptedMember(aciBytes = userId, role = role.toLocal(), joinedAtRevision = joinedAtVersion)
|
||||
return DecryptedMember(
|
||||
aciBytes = userId,
|
||||
role = role.toLocal(),
|
||||
joinedAtRevision = joinedAtVersion,
|
||||
labelEmoji = labelEmoji,
|
||||
labelString = labelString
|
||||
)
|
||||
}
|
||||
|
||||
private fun Group.MemberPendingAdminApproval.toLocal(): DecryptedRequestingMember {
|
||||
|
||||
@@ -331,6 +331,8 @@ message Group {
|
||||
reserved /*profileKey*/ 3; // This field is ignored in Backups, in favor of Contact frames for members
|
||||
reserved /*presentation*/ 4; // This field is deprecated in the context of static group state
|
||||
uint32 joinedAtVersion = 5;
|
||||
string labelEmoji = 6;
|
||||
string labelString = 7;
|
||||
}
|
||||
|
||||
message MemberPendingProfileKey {
|
||||
|
||||
@@ -42,15 +42,17 @@ fun DecryptedGroupChange.Builder.addMember(aci: ACI) {
|
||||
newMembers += member(aci)
|
||||
}
|
||||
|
||||
fun member(serviceId: UUID, role: Member.Role = Member.Role.DEFAULT, joinedAt: Int = 0): DecryptedMember {
|
||||
return member(ACI.from(serviceId), role, joinedAt)
|
||||
fun member(serviceId: UUID, role: Member.Role = Member.Role.DEFAULT, joinedAt: Int = 0, labelEmoji: String = "", labelString: String = ""): DecryptedMember {
|
||||
return member(ACI.from(serviceId), role, joinedAt, labelEmoji, labelString)
|
||||
}
|
||||
|
||||
fun member(aci: ACI, role: Member.Role = Member.Role.DEFAULT, joinedAt: Int = 0): DecryptedMember {
|
||||
fun member(aci: ACI, role: Member.Role = Member.Role.DEFAULT, joinedAt: Int = 0, labelEmoji: String = "", labelString: String = ""): DecryptedMember {
|
||||
return DecryptedMember.Builder()
|
||||
.role(role)
|
||||
.aciBytes(aci.toByteString())
|
||||
.joinedAtRevision(joinedAt)
|
||||
.labelEmoji(labelEmoji)
|
||||
.labelString(labelString)
|
||||
.build()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user