mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 09:49:30 +01:00
Add support for announcement groups.
This commit is contained in:
@@ -97,6 +97,19 @@ public final class LiveRecipientCache {
|
||||
return live;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles remapping cache entries when recipients are merged.
|
||||
*/
|
||||
public void remap(@NonNull RecipientId oldId, @NonNull RecipientId newId) {
|
||||
synchronized (recipients) {
|
||||
if (recipients.containsKey(newId)) {
|
||||
recipients.put(oldId, recipients.get(newId));
|
||||
} else {
|
||||
recipients.remove(oldId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a recipient to the cache if we don't have an entry. This will also update a cache entry
|
||||
* if the provided recipient is resolved, or if the existing cache entry is unresolved.
|
||||
|
||||
@@ -111,6 +111,7 @@ public class Recipient {
|
||||
private final Capability groupsV2Capability;
|
||||
private final Capability groupsV1MigrationCapability;
|
||||
private final Capability senderKeyCapability;
|
||||
private final Capability announcementGroupCapability;
|
||||
private final InsightsBannerTier insightsBannerTier;
|
||||
private final byte[] storageId;
|
||||
private final MentionSetting mentionSetting;
|
||||
@@ -360,6 +361,7 @@ public class Recipient {
|
||||
this.groupsV2Capability = Capability.UNKNOWN;
|
||||
this.groupsV1MigrationCapability = Capability.UNKNOWN;
|
||||
this.senderKeyCapability = Capability.UNKNOWN;
|
||||
this.announcementGroupCapability = Capability.UNKNOWN;
|
||||
this.storageId = null;
|
||||
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
||||
this.wallpaper = null;
|
||||
@@ -411,6 +413,7 @@ public class Recipient {
|
||||
this.groupsV2Capability = details.groupsV2Capability;
|
||||
this.groupsV1MigrationCapability = details.groupsV1MigrationCapability;
|
||||
this.senderKeyCapability = details.senderKeyCapability;
|
||||
this.announcementGroupCapability = details.announcementGroupCapability;
|
||||
this.storageId = details.storageId;
|
||||
this.mentionSetting = details.mentionSetting;
|
||||
this.wallpaper = details.wallpaper;
|
||||
@@ -903,6 +906,10 @@ public class Recipient {
|
||||
return senderKeyCapability;
|
||||
}
|
||||
|
||||
public @NonNull Capability getAnnouncementGroupCapability() {
|
||||
return announcementGroupCapability;
|
||||
}
|
||||
|
||||
/**
|
||||
* True if this recipient supports the message retry system, or false if we should use the legacy session reset system.
|
||||
*/
|
||||
|
||||
@@ -64,6 +64,7 @@ public class RecipientDetails {
|
||||
final Recipient.Capability groupsV2Capability;
|
||||
final Recipient.Capability groupsV1MigrationCapability;
|
||||
final Recipient.Capability senderKeyCapability;
|
||||
final Recipient.Capability announcementGroupCapability;
|
||||
final InsightsBannerTier insightsBannerTier;
|
||||
final byte[] storageId;
|
||||
final MentionSetting mentionSetting;
|
||||
@@ -119,6 +120,7 @@ public class RecipientDetails {
|
||||
this.groupsV2Capability = settings.getGroupsV2Capability();
|
||||
this.groupsV1MigrationCapability = settings.getGroupsV1MigrationCapability();
|
||||
this.senderKeyCapability = settings.getSenderKeyCapability();
|
||||
this.announcementGroupCapability = settings.getAnnouncementGroupCapability();
|
||||
this.insightsBannerTier = settings.getInsightsBannerTier();
|
||||
this.storageId = settings.getStorageId();
|
||||
this.mentionSetting = settings.getMentionSetting();
|
||||
@@ -174,6 +176,7 @@ public class RecipientDetails {
|
||||
this.groupsV2Capability = Recipient.Capability.UNKNOWN;
|
||||
this.groupsV1MigrationCapability = Recipient.Capability.UNKNOWN;
|
||||
this.senderKeyCapability = Recipient.Capability.UNKNOWN;
|
||||
this.announcementGroupCapability = Recipient.Capability.UNKNOWN;
|
||||
this.storageId = null;
|
||||
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
||||
this.wallpaper = null;
|
||||
|
||||
Reference in New Issue
Block a user