mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-08 22:38:37 +00:00
Fetch own profile after GV2 feature flag is enabled, improve GV2 capability check.
This commit is contained in:
parent
2b11bca7dc
commit
f4a152b0fe
@ -42,25 +42,46 @@ final class GroupsV2CapabilityChecker {
|
||||
Recipient member = Recipient.resolved(recipientId);
|
||||
Recipient.Capability gv2Capability = member.getGroupsV2Capability();
|
||||
|
||||
if (gv2Capability == Recipient.Capability.UNKNOWN) {
|
||||
if (gv2Capability != Recipient.Capability.SUPPORTED) {
|
||||
if (!ApplicationDependencies.getJobManager().runSynchronously(RetrieveProfileJob.forRecipient(member), TimeUnit.SECONDS.toMillis(1000)).isPresent()) {
|
||||
throw new IOException("Recipient capability was not retrieved in time");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean noSelfGV2Support = false;
|
||||
int noGv2Count = 0;
|
||||
int noUuidCount = 0;
|
||||
|
||||
for (RecipientId recipientId : recipientIdsSet) {
|
||||
Recipient member = Recipient.resolved(recipientId);
|
||||
Recipient.Capability gv2Capability = member.getGroupsV2Capability();
|
||||
|
||||
if (gv2Capability != Recipient.Capability.SUPPORTED) {
|
||||
Log.i(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability);
|
||||
return false;
|
||||
Log.w(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability);
|
||||
|
||||
noGv2Count++;
|
||||
if (member.isLocalNumber()) {
|
||||
noSelfGV2Support = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!member.hasUuid()) {
|
||||
noUuidCount++;
|
||||
}
|
||||
}
|
||||
|
||||
for (RecipientId recipientId : recipientIdsSet) {
|
||||
Recipient member = Recipient.resolved(recipientId);
|
||||
|
||||
if (!member.hasUuid()) {
|
||||
Log.i(TAG, "At least one recipient did not have a UUID known to us");
|
||||
return false;
|
||||
if (noGv2Count + noUuidCount > 0) {
|
||||
if (noUuidCount > 0) {
|
||||
Log.w(TAG, noUuidCount + " recipient(s) did not have a UUID known to us");
|
||||
}
|
||||
if (noGv2Count > 0) {
|
||||
Log.w(TAG, noGv2Count + " recipient(s) do not support GV2");
|
||||
if (noSelfGV2Support) {
|
||||
Log.w(TAG, "Self does not support GV2");
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -13,6 +13,7 @@ import org.json.JSONObject;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
|
||||
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
|
||||
import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob;
|
||||
import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
@ -138,7 +139,9 @@ public final class FeatureFlags {
|
||||
private static final Map<String, OnFlagChange> FLAG_CHANGE_LISTENERS = new HashMap<String, OnFlagChange>() {{
|
||||
put(MESSAGE_REQUESTS, (change) -> SignalStore.setMessageRequestEnableTime(change == Change.ENABLED ? System.currentTimeMillis() : 0));
|
||||
put(VERSIONED_PROFILES, (change) -> ApplicationDependencies.getJobManager().add(new ProfileUploadJob()));
|
||||
put(GROUPS_V2, (change) -> ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()));
|
||||
put(GROUPS_V2, (change) -> ApplicationDependencies.getJobManager().startChain(new RefreshAttributesJob())
|
||||
.then(new RefreshOwnProfileJob())
|
||||
.enqueue());
|
||||
}};
|
||||
|
||||
private static final Map<String, Object> REMOTE_VALUES = new TreeMap<>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user