Perform directory refresh after a PNI invite accept.

This commit is contained in:
Cody Henthorne 2024-02-15 16:48:31 -05:00
parent ebd8d85a3d
commit e7c018283a
2 changed files with 15 additions and 4 deletions

View file

@ -61,10 +61,6 @@ public final class ProfileKeySet {
for (DecryptedMember member : change.promotePendingPniAciMembers) {
addMemberKey(member, editor);
}
for (DecryptedMember member : change.promotePendingPniAciMembers) {
addMemberKey(member, editor);
}
}
/**

View file

@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.groups.GroupsV2Authorization;
import org.thoughtcrime.securesms.groups.v2.ProfileKeySet;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob;
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
import org.thoughtcrime.securesms.jobs.LeaveGroupV2Job;
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob;
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
@ -352,6 +353,10 @@ public class GroupsV2StateProcessor {
}
profileAndMessageHelper.persistLearnedProfileKeys(inputGroupState);
if (!signedGroupChange.promotePendingPniAciMembers.isEmpty()) {
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
}
GlobalGroupState remainingWork = advanceGroupStateResult.getNewGlobalGroupState();
if (remainingWork.getServerHistory().size() > 0) {
info(String.format(Locale.US, "There are more revisions on the server for this group, scheduling for later, V[%d..%d]", newLocalState.revision + 1, remainingWork.getLatestRevisionNumber()));
@ -443,6 +448,7 @@ public class GroupsV2StateProcessor {
ProfileKeySet profileKeys = new ProfileKeySet();
DecryptedGroup finalState = localState;
GlobalGroupState finalGlobalGroupState = inputGroupState;
boolean performCdsLookup = false;
boolean hasMore = true;
@ -474,8 +480,13 @@ public class GroupsV2StateProcessor {
if (entry.getGroup() != null) {
profileKeys.addKeysFromGroupState(entry.getGroup());
}
if (entry.getChange() != null) {
profileKeys.addKeysFromGroupChange(entry.getChange());
if (!entry.getChange().promotePendingPniAciMembers.isEmpty()) {
performCdsLookup = true;
}
}
}
@ -496,6 +507,10 @@ public class GroupsV2StateProcessor {
profileAndMessageHelper.persistLearnedProfileKeys(profileKeys);
if (performCdsLookup) {
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
}
if (finalGlobalGroupState.getServerHistory().size() > 0) {
info(String.format(Locale.US, "There are more revisions on the server for this group, scheduling for later, V[%d..%d]", finalState.revision + 1, finalGlobalGroupState.getLatestRevisionNumber()));
ApplicationDependencies.getJobManager().add(new RequestGroupV2InfoJob(groupId, finalGlobalGroupState.getLatestRevisionNumber()));