mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-08 05:58:34 +00:00
Read the new GV1 Migration capability.
This commit is contained in:
parent
3357475fc4
commit
d21782696a
@ -7,14 +7,15 @@ public final class AppCapabilities {
|
|||||||
private AppCapabilities() {
|
private AppCapabilities() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final boolean UUID_CAPABLE = false;
|
private static final boolean UUID_CAPABLE = false;
|
||||||
private static final boolean GV2_CAPABLE = true;
|
private static final boolean GV2_CAPABLE = true;
|
||||||
|
private static final boolean GV1_MIGRATION_CAPABLE = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param storageCapable Whether or not the user can use storage service. This is another way of
|
* @param storageCapable Whether or not the user can use storage service. This is another way of
|
||||||
* asking if the user has set a Signal PIN or not.
|
* asking if the user has set a Signal PIN or not.
|
||||||
*/
|
*/
|
||||||
public static AccountAttributes.Capabilities getCapabilities(boolean storageCapable) {
|
public static AccountAttributes.Capabilities getCapabilities(boolean storageCapable) {
|
||||||
return new AccountAttributes.Capabilities(UUID_CAPABLE, GV2_CAPABLE, storageCapable);
|
return new AccountAttributes.Capabilities(UUID_CAPABLE, GV2_CAPABLE, storageCapable, GV1_MIGRATION_CAPABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,7 +132,9 @@ public class RecipientDatabase extends Database {
|
|||||||
|
|
||||||
private static final class Capabilities {
|
private static final class Capabilities {
|
||||||
static final int BIT_LENGTH = 2;
|
static final int BIT_LENGTH = 2;
|
||||||
static final int GROUPS_V2 = 0;
|
|
||||||
|
static final int GROUPS_V2 = 0;
|
||||||
|
static final int GROUPS_V1_MIGRATION = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String[] RECIPIENT_PROJECTION = new String[] {
|
private static final String[] RECIPIENT_PROJECTION = new String[] {
|
||||||
@ -1410,7 +1412,8 @@ public class RecipientDatabase extends Database {
|
|||||||
public void setCapabilities(@NonNull RecipientId id, @NonNull SignalServiceProfile.Capabilities capabilities) {
|
public void setCapabilities(@NonNull RecipientId id, @NonNull SignalServiceProfile.Capabilities capabilities) {
|
||||||
long value = 0;
|
long value = 0;
|
||||||
|
|
||||||
value = Bitmask.update(value, Capabilities.GROUPS_V2, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isGv2()).serialize());
|
value = Bitmask.update(value, Capabilities.GROUPS_V2, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isGv2()).serialize());
|
||||||
|
value = Bitmask.update(value, Capabilities.GROUPS_V1_MIGRATION, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isGv1Migration()).serialize());
|
||||||
|
|
||||||
ContentValues values = new ContentValues(1);
|
ContentValues values = new ContentValues(1);
|
||||||
values.put(CAPABILITIES, value);
|
values.put(CAPABILITIES, value);
|
||||||
@ -2599,6 +2602,7 @@ public class RecipientDatabase extends Database {
|
|||||||
private final boolean forceSmsSelection;
|
private final boolean forceSmsSelection;
|
||||||
private final long capabilities;
|
private final long capabilities;
|
||||||
private final Recipient.Capability groupsV2Capability;
|
private final Recipient.Capability groupsV2Capability;
|
||||||
|
private final Recipient.Capability groupsV1MigrationCapability;
|
||||||
private final InsightsBannerTier insightsBannerTier;
|
private final InsightsBannerTier insightsBannerTier;
|
||||||
private final byte[] storageId;
|
private final byte[] storageId;
|
||||||
private final MentionSetting mentionSetting;
|
private final MentionSetting mentionSetting;
|
||||||
@ -2641,43 +2645,44 @@ public class RecipientDatabase extends Database {
|
|||||||
@NonNull MentionSetting mentionSetting,
|
@NonNull MentionSetting mentionSetting,
|
||||||
@NonNull SyncExtras syncExtras)
|
@NonNull SyncExtras syncExtras)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.e164 = e164;
|
this.e164 = e164;
|
||||||
this.email = email;
|
this.email = email;
|
||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
this.groupType = groupType;
|
this.groupType = groupType;
|
||||||
this.blocked = blocked;
|
this.blocked = blocked;
|
||||||
this.muteUntil = muteUntil;
|
this.muteUntil = muteUntil;
|
||||||
this.messageVibrateState = messageVibrateState;
|
this.messageVibrateState = messageVibrateState;
|
||||||
this.callVibrateState = callVibrateState;
|
this.callVibrateState = callVibrateState;
|
||||||
this.messageRingtone = messageRingtone;
|
this.messageRingtone = messageRingtone;
|
||||||
this.callRingtone = callRingtone;
|
this.callRingtone = callRingtone;
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.defaultSubscriptionId = defaultSubscriptionId;
|
this.defaultSubscriptionId = defaultSubscriptionId;
|
||||||
this.expireMessages = expireMessages;
|
this.expireMessages = expireMessages;
|
||||||
this.registered = registered;
|
this.registered = registered;
|
||||||
this.profileKey = profileKey;
|
this.profileKey = profileKey;
|
||||||
this.profileKeyCredential = profileKeyCredential;
|
this.profileKeyCredential = profileKeyCredential;
|
||||||
this.systemDisplayName = systemDisplayName;
|
this.systemDisplayName = systemDisplayName;
|
||||||
this.systemContactPhoto = systemContactPhoto;
|
this.systemContactPhoto = systemContactPhoto;
|
||||||
this.systemPhoneLabel = systemPhoneLabel;
|
this.systemPhoneLabel = systemPhoneLabel;
|
||||||
this.systemContactUri = systemContactUri;
|
this.systemContactUri = systemContactUri;
|
||||||
this.signalProfileName = signalProfileName;
|
this.signalProfileName = signalProfileName;
|
||||||
this.signalProfileAvatar = signalProfileAvatar;
|
this.signalProfileAvatar = signalProfileAvatar;
|
||||||
this.hasProfileImage = hasProfileImage;
|
this.hasProfileImage = hasProfileImage;
|
||||||
this.profileSharing = profileSharing;
|
this.profileSharing = profileSharing;
|
||||||
this.lastProfileFetch = lastProfileFetch;
|
this.lastProfileFetch = lastProfileFetch;
|
||||||
this.notificationChannel = notificationChannel;
|
this.notificationChannel = notificationChannel;
|
||||||
this.unidentifiedAccessMode = unidentifiedAccessMode;
|
this.unidentifiedAccessMode = unidentifiedAccessMode;
|
||||||
this.forceSmsSelection = forceSmsSelection;
|
this.forceSmsSelection = forceSmsSelection;
|
||||||
this.capabilities = capabilities;
|
this.capabilities = capabilities;
|
||||||
this.groupsV2Capability = Recipient.Capability.deserialize((int) Bitmask.read(capabilities, Capabilities.GROUPS_V2, Capabilities.BIT_LENGTH));
|
this.groupsV2Capability = Recipient.Capability.deserialize((int) Bitmask.read(capabilities, Capabilities.GROUPS_V2, Capabilities.BIT_LENGTH));
|
||||||
this.insightsBannerTier = insightsBannerTier;
|
this.groupsV1MigrationCapability = Recipient.Capability.deserialize((int) Bitmask.read(capabilities, Capabilities.GROUPS_V1_MIGRATION, Capabilities.BIT_LENGTH));
|
||||||
this.storageId = storageId;
|
this.insightsBannerTier = insightsBannerTier;
|
||||||
this.mentionSetting = mentionSetting;
|
this.storageId = storageId;
|
||||||
this.syncExtras = syncExtras;
|
this.mentionSetting = mentionSetting;
|
||||||
|
this.syncExtras = syncExtras;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RecipientId getId() {
|
public RecipientId getId() {
|
||||||
@ -2808,10 +2813,14 @@ public class RecipientDatabase extends Database {
|
|||||||
return forceSmsSelection;
|
return forceSmsSelection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Recipient.Capability getGroupsV2Capability() {
|
public @NonNull Recipient.Capability getGroupsV2Capability() {
|
||||||
return groupsV2Capability;
|
return groupsV2Capability;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public @NonNull Recipient.Capability getGroupsV1MigrationCapability() {
|
||||||
|
return groupsV1MigrationCapability;
|
||||||
|
}
|
||||||
|
|
||||||
public @Nullable byte[] getStorageId() {
|
public @Nullable byte[] getStorageId() {
|
||||||
return storageId;
|
return storageId;
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,7 @@ public class RefreshAttributesJob extends BaseJob {
|
|||||||
"\n Capabilities:" +
|
"\n Capabilities:" +
|
||||||
"\n Storage? " + capabilities.isStorage() +
|
"\n Storage? " + capabilities.isStorage() +
|
||||||
"\n GV2? " + capabilities.isGv2() +
|
"\n GV2? " + capabilities.isGv2() +
|
||||||
|
"\n GV1 Migration? " + capabilities.isGv1Migration() +
|
||||||
"\n UUID? " + capabilities.isUuid());
|
"\n UUID? " + capabilities.isUuid());
|
||||||
|
|
||||||
SignalServiceAccountManager signalAccountManager = ApplicationDependencies.getSignalServiceAccountManager();
|
SignalServiceAccountManager signalAccountManager = ApplicationDependencies.getSignalServiceAccountManager();
|
||||||
|
@ -30,7 +30,12 @@ public final class LogSectionCapabilities implements LogSection {
|
|||||||
|
|
||||||
AccountAttributes.Capabilities capabilities = AppCapabilities.getCapabilities(false);
|
AccountAttributes.Capabilities capabilities = AppCapabilities.getCapabilities(false);
|
||||||
|
|
||||||
return new StringBuilder().append("Local device GV2: ").append(capabilities.isGv2()).append("\n")
|
return new StringBuilder().append("-- Local").append("\n")
|
||||||
.append("Global GV2 : ").append(self.getGroupsV2Capability()).append("\n");
|
.append("GV2 : ").append(capabilities.isGv2()).append("\n")
|
||||||
|
.append("GV1 Migration: ").append(capabilities.isGv1Migration()).append("\n")
|
||||||
|
.append("\n")
|
||||||
|
.append("-- Global").append("\n")
|
||||||
|
.append("GV2 : ").append(self.getGroupsV2Capability()).append("\n")
|
||||||
|
.append("GV1 Migration: ").append(self.getGroupsV1MigrationCapability()).append("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,6 +98,7 @@ public class Recipient {
|
|||||||
private final UnidentifiedAccessMode unidentifiedAccessMode;
|
private final UnidentifiedAccessMode unidentifiedAccessMode;
|
||||||
private final boolean forceSmsSelection;
|
private final boolean forceSmsSelection;
|
||||||
private final Capability groupsV2Capability;
|
private final Capability groupsV2Capability;
|
||||||
|
private final Capability groupsV1MigrationCapability;
|
||||||
private final InsightsBannerTier insightsBannerTier;
|
private final InsightsBannerTier insightsBannerTier;
|
||||||
private final byte[] storageId;
|
private final byte[] storageId;
|
||||||
private final MentionSetting mentionSetting;
|
private final MentionSetting mentionSetting;
|
||||||
@ -275,85 +276,87 @@ public class Recipient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Recipient(@NonNull RecipientId id) {
|
Recipient(@NonNull RecipientId id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.resolving = true;
|
this.resolving = true;
|
||||||
this.uuid = null;
|
this.uuid = null;
|
||||||
this.username = null;
|
this.username = null;
|
||||||
this.e164 = null;
|
this.e164 = null;
|
||||||
this.email = null;
|
this.email = null;
|
||||||
this.groupId = null;
|
this.groupId = null;
|
||||||
this.participants = Collections.emptyList();
|
this.participants = Collections.emptyList();
|
||||||
this.groupAvatarId = Optional.absent();
|
this.groupAvatarId = Optional.absent();
|
||||||
this.isSelf = false;
|
this.isSelf = false;
|
||||||
this.blocked = false;
|
this.blocked = false;
|
||||||
this.muteUntil = 0;
|
this.muteUntil = 0;
|
||||||
this.messageVibrate = VibrateState.DEFAULT;
|
this.messageVibrate = VibrateState.DEFAULT;
|
||||||
this.callVibrate = VibrateState.DEFAULT;
|
this.callVibrate = VibrateState.DEFAULT;
|
||||||
this.messageRingtone = null;
|
this.messageRingtone = null;
|
||||||
this.callRingtone = null;
|
this.callRingtone = null;
|
||||||
this.color = null;
|
this.color = null;
|
||||||
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
|
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
|
||||||
this.defaultSubscriptionId = Optional.absent();
|
this.defaultSubscriptionId = Optional.absent();
|
||||||
this.expireMessages = 0;
|
this.expireMessages = 0;
|
||||||
this.registered = RegisteredState.UNKNOWN;
|
this.registered = RegisteredState.UNKNOWN;
|
||||||
this.profileKey = null;
|
this.profileKey = null;
|
||||||
this.profileKeyCredential = null;
|
this.profileKeyCredential = null;
|
||||||
this.name = null;
|
this.name = null;
|
||||||
this.systemContactPhoto = null;
|
this.systemContactPhoto = null;
|
||||||
this.customLabel = null;
|
this.customLabel = null;
|
||||||
this.contactUri = null;
|
this.contactUri = null;
|
||||||
this.profileName = ProfileName.EMPTY;
|
this.profileName = ProfileName.EMPTY;
|
||||||
this.profileAvatar = null;
|
this.profileAvatar = null;
|
||||||
this.hasProfileImage = false;
|
this.hasProfileImage = false;
|
||||||
this.profileSharing = false;
|
this.profileSharing = false;
|
||||||
this.lastProfileFetch = 0;
|
this.lastProfileFetch = 0;
|
||||||
this.notificationChannel = null;
|
this.notificationChannel = null;
|
||||||
this.unidentifiedAccessMode = UnidentifiedAccessMode.DISABLED;
|
this.unidentifiedAccessMode = UnidentifiedAccessMode.DISABLED;
|
||||||
this.forceSmsSelection = false;
|
this.forceSmsSelection = false;
|
||||||
this.groupsV2Capability = Capability.UNKNOWN;
|
this.groupsV2Capability = Capability.UNKNOWN;
|
||||||
this.storageId = null;
|
this.groupsV1MigrationCapability = Capability.UNKNOWN;
|
||||||
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
this.storageId = null;
|
||||||
|
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Recipient(@NonNull RecipientId id, @NonNull RecipientDetails details, boolean resolved) {
|
public Recipient(@NonNull RecipientId id, @NonNull RecipientDetails details, boolean resolved) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.resolving = !resolved;
|
this.resolving = !resolved;
|
||||||
this.uuid = details.uuid;
|
this.uuid = details.uuid;
|
||||||
this.username = details.username;
|
this.username = details.username;
|
||||||
this.e164 = details.e164;
|
this.e164 = details.e164;
|
||||||
this.email = details.email;
|
this.email = details.email;
|
||||||
this.groupId = details.groupId;
|
this.groupId = details.groupId;
|
||||||
this.participants = details.participants;
|
this.participants = details.participants;
|
||||||
this.groupAvatarId = details.groupAvatarId;
|
this.groupAvatarId = details.groupAvatarId;
|
||||||
this.isSelf = details.isSelf;
|
this.isSelf = details.isSelf;
|
||||||
this.blocked = details.blocked;
|
this.blocked = details.blocked;
|
||||||
this.muteUntil = details.mutedUntil;
|
this.muteUntil = details.mutedUntil;
|
||||||
this.messageVibrate = details.messageVibrateState;
|
this.messageVibrate = details.messageVibrateState;
|
||||||
this.callVibrate = details.callVibrateState;
|
this.callVibrate = details.callVibrateState;
|
||||||
this.messageRingtone = details.messageRingtone;
|
this.messageRingtone = details.messageRingtone;
|
||||||
this.callRingtone = details.callRingtone;
|
this.callRingtone = details.callRingtone;
|
||||||
this.color = details.color;
|
this.color = details.color;
|
||||||
this.insightsBannerTier = details.insightsBannerTier;
|
this.insightsBannerTier = details.insightsBannerTier;
|
||||||
this.defaultSubscriptionId = details.defaultSubscriptionId;
|
this.defaultSubscriptionId = details.defaultSubscriptionId;
|
||||||
this.expireMessages = details.expireMessages;
|
this.expireMessages = details.expireMessages;
|
||||||
this.registered = details.registered;
|
this.registered = details.registered;
|
||||||
this.profileKey = details.profileKey;
|
this.profileKey = details.profileKey;
|
||||||
this.profileKeyCredential = details.profileKeyCredential;
|
this.profileKeyCredential = details.profileKeyCredential;
|
||||||
this.name = details.name;
|
this.name = details.name;
|
||||||
this.systemContactPhoto = details.systemContactPhoto;
|
this.systemContactPhoto = details.systemContactPhoto;
|
||||||
this.customLabel = details.customLabel;
|
this.customLabel = details.customLabel;
|
||||||
this.contactUri = details.contactUri;
|
this.contactUri = details.contactUri;
|
||||||
this.profileName = details.profileName;
|
this.profileName = details.profileName;
|
||||||
this.profileAvatar = details.profileAvatar;
|
this.profileAvatar = details.profileAvatar;
|
||||||
this.hasProfileImage = details.hasProfileImage;
|
this.hasProfileImage = details.hasProfileImage;
|
||||||
this.profileSharing = details.profileSharing;
|
this.profileSharing = details.profileSharing;
|
||||||
this.lastProfileFetch = details.lastProfileFetch;
|
this.lastProfileFetch = details.lastProfileFetch;
|
||||||
this.notificationChannel = details.notificationChannel;
|
this.notificationChannel = details.notificationChannel;
|
||||||
this.unidentifiedAccessMode = details.unidentifiedAccessMode;
|
this.unidentifiedAccessMode = details.unidentifiedAccessMode;
|
||||||
this.forceSmsSelection = details.forceSmsSelection;
|
this.forceSmsSelection = details.forceSmsSelection;
|
||||||
this.groupsV2Capability = details.groupsV2Capability;
|
this.groupsV2Capability = details.groupsV2Capability;
|
||||||
this.storageId = details.storageId;
|
this.groupsV1MigrationCapability = details.groupsV1MigrationCapability;
|
||||||
this.mentionSetting = details.mentionSetting;
|
this.storageId = details.storageId;
|
||||||
|
this.mentionSetting = details.mentionSetting;
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NonNull RecipientId getId() {
|
public @NonNull RecipientId getId() {
|
||||||
@ -737,10 +740,14 @@ public class Recipient {
|
|||||||
return forceSmsSelection;
|
return forceSmsSelection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Capability getGroupsV2Capability() {
|
public @NonNull Capability getGroupsV2Capability() {
|
||||||
return groupsV2Capability;
|
return groupsV2Capability;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public @NonNull Capability getGroupsV1MigrationCapability() {
|
||||||
|
return groupsV1MigrationCapability;
|
||||||
|
}
|
||||||
|
|
||||||
public @Nullable byte[] getProfileKey() {
|
public @Nullable byte[] getProfileKey() {
|
||||||
return profileKey;
|
return profileKey;
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,7 @@ public class RecipientDetails {
|
|||||||
final UnidentifiedAccessMode unidentifiedAccessMode;
|
final UnidentifiedAccessMode unidentifiedAccessMode;
|
||||||
final boolean forceSmsSelection;
|
final boolean forceSmsSelection;
|
||||||
final Recipient.Capability groupsV2Capability;
|
final Recipient.Capability groupsV2Capability;
|
||||||
|
final Recipient.Capability groupsV1MigrationCapability;
|
||||||
final InsightsBannerTier insightsBannerTier;
|
final InsightsBannerTier insightsBannerTier;
|
||||||
final byte[] storageId;
|
final byte[] storageId;
|
||||||
final MentionSetting mentionSetting;
|
final MentionSetting mentionSetting;
|
||||||
@ -71,42 +72,43 @@ public class RecipientDetails {
|
|||||||
@NonNull RecipientSettings settings,
|
@NonNull RecipientSettings settings,
|
||||||
@Nullable List<Recipient> participants)
|
@Nullable List<Recipient> participants)
|
||||||
{
|
{
|
||||||
this.groupAvatarId = groupAvatarId;
|
this.groupAvatarId = groupAvatarId;
|
||||||
this.systemContactPhoto = Util.uri(settings.getSystemContactPhotoUri());
|
this.systemContactPhoto = Util.uri(settings.getSystemContactPhotoUri());
|
||||||
this.customLabel = settings.getSystemPhoneLabel();
|
this.customLabel = settings.getSystemPhoneLabel();
|
||||||
this.contactUri = Util.uri(settings.getSystemContactUri());
|
this.contactUri = Util.uri(settings.getSystemContactUri());
|
||||||
this.uuid = settings.getUuid();
|
this.uuid = settings.getUuid();
|
||||||
this.username = settings.getUsername();
|
this.username = settings.getUsername();
|
||||||
this.e164 = settings.getE164();
|
this.e164 = settings.getE164();
|
||||||
this.email = settings.getEmail();
|
this.email = settings.getEmail();
|
||||||
this.groupId = settings.getGroupId();
|
this.groupId = settings.getGroupId();
|
||||||
this.color = settings.getColor();
|
this.color = settings.getColor();
|
||||||
this.messageRingtone = settings.getMessageRingtone();
|
this.messageRingtone = settings.getMessageRingtone();
|
||||||
this.callRingtone = settings.getCallRingtone();
|
this.callRingtone = settings.getCallRingtone();
|
||||||
this.mutedUntil = settings.getMuteUntil();
|
this.mutedUntil = settings.getMuteUntil();
|
||||||
this.messageVibrateState = settings.getMessageVibrateState();
|
this.messageVibrateState = settings.getMessageVibrateState();
|
||||||
this.callVibrateState = settings.getCallVibrateState();
|
this.callVibrateState = settings.getCallVibrateState();
|
||||||
this.blocked = settings.isBlocked();
|
this.blocked = settings.isBlocked();
|
||||||
this.expireMessages = settings.getExpireMessages();
|
this.expireMessages = settings.getExpireMessages();
|
||||||
this.participants = participants == null ? new LinkedList<>() : participants;
|
this.participants = participants == null ? new LinkedList<>() : participants;
|
||||||
this.profileName = settings.getProfileName();
|
this.profileName = settings.getProfileName();
|
||||||
this.defaultSubscriptionId = settings.getDefaultSubscriptionId();
|
this.defaultSubscriptionId = settings.getDefaultSubscriptionId();
|
||||||
this.registered = settings.getRegistered();
|
this.registered = settings.getRegistered();
|
||||||
this.profileKey = settings.getProfileKey();
|
this.profileKey = settings.getProfileKey();
|
||||||
this.profileKeyCredential = settings.getProfileKeyCredential();
|
this.profileKeyCredential = settings.getProfileKeyCredential();
|
||||||
this.profileAvatar = settings.getProfileAvatar();
|
this.profileAvatar = settings.getProfileAvatar();
|
||||||
this.hasProfileImage = settings.hasProfileImage();
|
this.hasProfileImage = settings.hasProfileImage();
|
||||||
this.profileSharing = settings.isProfileSharing();
|
this.profileSharing = settings.isProfileSharing();
|
||||||
this.lastProfileFetch = settings.getLastProfileFetch();
|
this.lastProfileFetch = settings.getLastProfileFetch();
|
||||||
this.systemContact = systemContact;
|
this.systemContact = systemContact;
|
||||||
this.isSelf = isSelf;
|
this.isSelf = isSelf;
|
||||||
this.notificationChannel = settings.getNotificationChannel();
|
this.notificationChannel = settings.getNotificationChannel();
|
||||||
this.unidentifiedAccessMode = settings.getUnidentifiedAccessMode();
|
this.unidentifiedAccessMode = settings.getUnidentifiedAccessMode();
|
||||||
this.forceSmsSelection = settings.isForceSmsSelection();
|
this.forceSmsSelection = settings.isForceSmsSelection();
|
||||||
this.groupsV2Capability = settings.getGroupsV2Capability();
|
this.groupsV2Capability = settings.getGroupsV2Capability();
|
||||||
this.insightsBannerTier = settings.getInsightsBannerTier();
|
this.groupsV1MigrationCapability = settings.getGroupsV1MigrationCapability();
|
||||||
this.storageId = settings.getStorageId();
|
this.insightsBannerTier = settings.getInsightsBannerTier();
|
||||||
this.mentionSetting = settings.getMentionSetting();
|
this.storageId = settings.getStorageId();
|
||||||
|
this.mentionSetting = settings.getMentionSetting();
|
||||||
|
|
||||||
if (name == null) this.name = settings.getSystemDisplayName();
|
if (name == null) this.name = settings.getSystemDisplayName();
|
||||||
else this.name = name;
|
else this.name = name;
|
||||||
@ -116,43 +118,44 @@ public class RecipientDetails {
|
|||||||
* Only used for {@link Recipient#UNKNOWN}.
|
* Only used for {@link Recipient#UNKNOWN}.
|
||||||
*/
|
*/
|
||||||
RecipientDetails() {
|
RecipientDetails() {
|
||||||
this.groupAvatarId = null;
|
this.groupAvatarId = null;
|
||||||
this.systemContactPhoto = null;
|
this.systemContactPhoto = null;
|
||||||
this.customLabel = null;
|
this.customLabel = null;
|
||||||
this.contactUri = null;
|
this.contactUri = null;
|
||||||
this.uuid = null;
|
this.uuid = null;
|
||||||
this.username = null;
|
this.username = null;
|
||||||
this.e164 = null;
|
this.e164 = null;
|
||||||
this.email = null;
|
this.email = null;
|
||||||
this.groupId = null;
|
this.groupId = null;
|
||||||
this.color = null;
|
this.color = null;
|
||||||
this.messageRingtone = null;
|
this.messageRingtone = null;
|
||||||
this.callRingtone = null;
|
this.callRingtone = null;
|
||||||
this.mutedUntil = 0;
|
this.mutedUntil = 0;
|
||||||
this.messageVibrateState = VibrateState.DEFAULT;
|
this.messageVibrateState = VibrateState.DEFAULT;
|
||||||
this.callVibrateState = VibrateState.DEFAULT;
|
this.callVibrateState = VibrateState.DEFAULT;
|
||||||
this.blocked = false;
|
this.blocked = false;
|
||||||
this.expireMessages = 0;
|
this.expireMessages = 0;
|
||||||
this.participants = new LinkedList<>();
|
this.participants = new LinkedList<>();
|
||||||
this.profileName = ProfileName.EMPTY;
|
this.profileName = ProfileName.EMPTY;
|
||||||
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
|
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
|
||||||
this.defaultSubscriptionId = Optional.absent();
|
this.defaultSubscriptionId = Optional.absent();
|
||||||
this.registered = RegisteredState.UNKNOWN;
|
this.registered = RegisteredState.UNKNOWN;
|
||||||
this.profileKey = null;
|
this.profileKey = null;
|
||||||
this.profileKeyCredential = null;
|
this.profileKeyCredential = null;
|
||||||
this.profileAvatar = null;
|
this.profileAvatar = null;
|
||||||
this.hasProfileImage = false;
|
this.hasProfileImage = false;
|
||||||
this.profileSharing = false;
|
this.profileSharing = false;
|
||||||
this.lastProfileFetch = 0;
|
this.lastProfileFetch = 0;
|
||||||
this.systemContact = true;
|
this.systemContact = true;
|
||||||
this.isSelf = false;
|
this.isSelf = false;
|
||||||
this.notificationChannel = null;
|
this.notificationChannel = null;
|
||||||
this.unidentifiedAccessMode = UnidentifiedAccessMode.UNKNOWN;
|
this.unidentifiedAccessMode = UnidentifiedAccessMode.UNKNOWN;
|
||||||
this.forceSmsSelection = false;
|
this.forceSmsSelection = false;
|
||||||
this.name = null;
|
this.name = null;
|
||||||
this.groupsV2Capability = Recipient.Capability.UNKNOWN;
|
this.groupsV2Capability = Recipient.Capability.UNKNOWN;
|
||||||
this.storageId = null;
|
this.groupsV1MigrationCapability = Recipient.Capability.UNKNOWN;
|
||||||
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
this.storageId = null;
|
||||||
|
this.mentionSetting = MentionSetting.ALWAYS_NOTIFY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NonNull RecipientDetails forIndividual(@NonNull Context context, @NonNull RecipientSettings settings) {
|
public static @NonNull RecipientDetails forIndividual(@NonNull Context context, @NonNull RecipientSettings settings) {
|
||||||
|
@ -125,13 +125,17 @@ public class AccountAttributes {
|
|||||||
@JsonProperty
|
@JsonProperty
|
||||||
private boolean storage;
|
private boolean storage;
|
||||||
|
|
||||||
|
@JsonProperty("gv1-migration")
|
||||||
|
private boolean gv1Migration;
|
||||||
|
|
||||||
@JsonCreator
|
@JsonCreator
|
||||||
public Capabilities() {}
|
public Capabilities() {}
|
||||||
|
|
||||||
public Capabilities(boolean uuid, boolean gv2, boolean storage) {
|
public Capabilities(boolean uuid, boolean gv2, boolean storage, boolean gv1Migration) {
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.gv2 = gv2;
|
this.gv2 = gv2;
|
||||||
this.storage = storage;
|
this.storage = storage;
|
||||||
|
this.gv1Migration = gv1Migration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUuid() {
|
public boolean isUuid() {
|
||||||
@ -145,5 +149,9 @@ public class AccountAttributes {
|
|||||||
public boolean isStorage() {
|
public boolean isStorage() {
|
||||||
return storage;
|
return storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isGv1Migration() {
|
||||||
|
return gv1Migration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,9 @@ public class SignalServiceProfile {
|
|||||||
@JsonProperty
|
@JsonProperty
|
||||||
private boolean storage;
|
private boolean storage;
|
||||||
|
|
||||||
|
@JsonProperty("gv1-migration")
|
||||||
|
private boolean gv1Migration;
|
||||||
|
|
||||||
@JsonCreator
|
@JsonCreator
|
||||||
public Capabilities() {}
|
public Capabilities() {}
|
||||||
|
|
||||||
@ -107,6 +110,10 @@ public class SignalServiceProfile {
|
|||||||
public boolean isStorage() {
|
public boolean isStorage() {
|
||||||
return storage;
|
return storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isGv1Migration() {
|
||||||
|
return gv1Migration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProfileKeyCredentialResponse getProfileKeyCredentialResponse() {
|
public ProfileKeyCredentialResponse getProfileKeyCredentialResponse() {
|
||||||
|
@ -16,7 +16,7 @@ public final class AccountAttributesTest {
|
|||||||
"reglock1234",
|
"reglock1234",
|
||||||
new byte[10],
|
new byte[10],
|
||||||
false,
|
false,
|
||||||
new AccountAttributes.Capabilities(true, true, true),
|
new AccountAttributes.Capabilities(true, true, true, true),
|
||||||
false));
|
false));
|
||||||
assertEquals("{\"signalingKey\":\"skey\"," +
|
assertEquals("{\"signalingKey\":\"skey\"," +
|
||||||
"\"registrationId\":123," +
|
"\"registrationId\":123," +
|
||||||
@ -28,19 +28,19 @@ public final class AccountAttributesTest {
|
|||||||
"\"unidentifiedAccessKey\":\"AAAAAAAAAAAAAA==\"," +
|
"\"unidentifiedAccessKey\":\"AAAAAAAAAAAAAA==\"," +
|
||||||
"\"unrestrictedUnidentifiedAccess\":false," +
|
"\"unrestrictedUnidentifiedAccess\":false," +
|
||||||
"\"discoverableByPhoneNumber\":false," +
|
"\"discoverableByPhoneNumber\":false," +
|
||||||
"\"capabilities\":{\"uuid\":true,\"storage\":true,\"gv2-3\":true}}", json);
|
"\"capabilities\":{\"uuid\":true,\"storage\":true,\"gv2-3\":true,\"gv1-migration\":true}}", json);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void gv2_true() {
|
public void gv2_true() {
|
||||||
String json = JsonUtil.toJson(new AccountAttributes.Capabilities(false, true, false));
|
String json = JsonUtil.toJson(new AccountAttributes.Capabilities(false, true, false, false));
|
||||||
assertEquals("{\"uuid\":false,\"storage\":false,\"gv2-3\":true}", json);
|
assertEquals("{\"uuid\":false,\"storage\":false,\"gv2-3\":true,\"gv1-migration\":false}", json);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void gv2_false() {
|
public void gv2_false() {
|
||||||
String json = JsonUtil.toJson(new AccountAttributes.Capabilities(false, false, false));
|
String json = JsonUtil.toJson(new AccountAttributes.Capabilities(false, false, false, false));
|
||||||
assertEquals("{\"uuid\":false,\"storage\":false,\"gv2-3\":false}", json);
|
assertEquals("{\"uuid\":false,\"storage\":false,\"gv2-3\":false,\"gv1-migration\":false}", json);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user