mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 07:28:34 +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,27 +42,48 @@ final class GroupsV2CapabilityChecker {
|
|||||||
Recipient member = Recipient.resolved(recipientId);
|
Recipient member = Recipient.resolved(recipientId);
|
||||||
Recipient.Capability gv2Capability = member.getGroupsV2Capability();
|
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()) {
|
if (!ApplicationDependencies.getJobManager().runSynchronously(RetrieveProfileJob.forRecipient(member), TimeUnit.SECONDS.toMillis(1000)).isPresent()) {
|
||||||
throw new IOException("Recipient capability was not retrieved in time");
|
throw new IOException("Recipient capability was not retrieved in time");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (gv2Capability != Recipient.Capability.SUPPORTED) {
|
boolean noSelfGV2Support = false;
|
||||||
Log.i(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability);
|
int noGv2Count = 0;
|
||||||
return false;
|
int noUuidCount = 0;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (RecipientId recipientId : recipientIdsSet) {
|
for (RecipientId recipientId : recipientIdsSet) {
|
||||||
Recipient member = Recipient.resolved(recipientId);
|
Recipient member = Recipient.resolved(recipientId);
|
||||||
|
Recipient.Capability gv2Capability = member.getGroupsV2Capability();
|
||||||
|
|
||||||
|
if (gv2Capability != Recipient.Capability.SUPPORTED) {
|
||||||
|
Log.w(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability);
|
||||||
|
|
||||||
|
noGv2Count++;
|
||||||
|
if (member.isLocalNumber()) {
|
||||||
|
noSelfGV2Support = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!member.hasUuid()) {
|
if (!member.hasUuid()) {
|
||||||
Log.i(TAG, "At least one recipient did not have a UUID known to us");
|
noUuidCount++;
|
||||||
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ import org.json.JSONObject;
|
|||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
|
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
|
||||||
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
|
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
|
||||||
|
import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob;
|
||||||
import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob;
|
import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob;
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
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>() {{
|
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(MESSAGE_REQUESTS, (change) -> SignalStore.setMessageRequestEnableTime(change == Change.ENABLED ? System.currentTimeMillis() : 0));
|
||||||
put(VERSIONED_PROFILES, (change) -> ApplicationDependencies.getJobManager().add(new ProfileUploadJob()));
|
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<>();
|
private static final Map<String, Object> REMOTE_VALUES = new TreeMap<>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user