mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 21:18:33 +00:00
Reduce Recipient refreshes.
This commit is contained in:
parent
82b5d58d04
commit
acea24c19c
@ -71,8 +71,10 @@ public class RetrieveProfileJob extends BaseJob {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRun() throws IOException {
|
public void onRun() throws IOException {
|
||||||
if (recipient.isGroup()) handleGroupRecipient(recipient);
|
Recipient resolved = recipient.resolve();
|
||||||
else handleIndividualRecipient(recipient);
|
|
||||||
|
if (resolved.isGroup()) handleGroupRecipient(resolved);
|
||||||
|
else handleIndividualRecipient(resolved);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -166,11 +168,15 @@ public class RetrieveProfileJob extends BaseJob {
|
|||||||
byte[] profileKey = recipient.getProfileKey();
|
byte[] profileKey = recipient.getProfileKey();
|
||||||
|
|
||||||
if (unrestrictedUnidentifiedAccess && unidentifiedAccessVerifier != null) {
|
if (unrestrictedUnidentifiedAccess && unidentifiedAccessVerifier != null) {
|
||||||
|
if (recipient.getUnidentifiedAccessMode() != UnidentifiedAccessMode.UNRESTRICTED) {
|
||||||
Log.i(TAG, "Marking recipient UD status as unrestricted.");
|
Log.i(TAG, "Marking recipient UD status as unrestricted.");
|
||||||
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), UnidentifiedAccessMode.UNRESTRICTED);
|
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), UnidentifiedAccessMode.UNRESTRICTED);
|
||||||
|
}
|
||||||
} else if (profileKey == null || unidentifiedAccessVerifier == null) {
|
} else if (profileKey == null || unidentifiedAccessVerifier == null) {
|
||||||
|
if (recipient.getUnidentifiedAccessMode() != UnidentifiedAccessMode.DISABLED) {
|
||||||
Log.i(TAG, "Marking recipient UD status as disabled.");
|
Log.i(TAG, "Marking recipient UD status as disabled.");
|
||||||
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), UnidentifiedAccessMode.DISABLED);
|
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), UnidentifiedAccessMode.DISABLED);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ProfileCipher profileCipher = new ProfileCipher(profileKey);
|
ProfileCipher profileCipher = new ProfileCipher(profileKey);
|
||||||
boolean verifiedUnidentifiedAccess;
|
boolean verifiedUnidentifiedAccess;
|
||||||
@ -183,10 +189,13 @@ public class RetrieveProfileJob extends BaseJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
UnidentifiedAccessMode mode = verifiedUnidentifiedAccess ? UnidentifiedAccessMode.ENABLED : UnidentifiedAccessMode.DISABLED;
|
UnidentifiedAccessMode mode = verifiedUnidentifiedAccess ? UnidentifiedAccessMode.ENABLED : UnidentifiedAccessMode.DISABLED;
|
||||||
|
|
||||||
|
if (recipient.getUnidentifiedAccessMode() != mode) {
|
||||||
Log.i(TAG, "Marking recipient UD status as " + mode.name() + " after verification.");
|
Log.i(TAG, "Marking recipient UD status as " + mode.name() + " after verification.");
|
||||||
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), mode);
|
recipientDatabase.setUnidentifiedAccessMode(recipient.getId(), mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setProfileName(Recipient recipient, String profileName) {
|
private void setProfileName(Recipient recipient, String profileName) {
|
||||||
try {
|
try {
|
||||||
|
@ -116,7 +116,7 @@ public final class LiveRecipient {
|
|||||||
* @return A fully-resolved version of the recipient. May require reading from disk.
|
* @return A fully-resolved version of the recipient. May require reading from disk.
|
||||||
*/
|
*/
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
public synchronized @NonNull Recipient resolve() {
|
public @NonNull Recipient resolve() {
|
||||||
Recipient current = recipient.get();
|
Recipient current = recipient.get();
|
||||||
|
|
||||||
if (!current.isResolving()) {
|
if (!current.isResolving()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user