mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 09:49:30 +01:00
Add batch identity checks to stories and share/forward flows.
This commit is contained in:
@@ -16,6 +16,8 @@ public final class IdentityRecordList {
|
||||
|
||||
public static final IdentityRecordList EMPTY = new IdentityRecordList(Collections.emptyList());
|
||||
|
||||
private static final long DEFAULT_UNTRUSTED_WINDOW = TimeUnit.SECONDS.toMillis(5);
|
||||
|
||||
private final List<IdentityRecord> identityRecords;
|
||||
private final boolean isVerified;
|
||||
private final boolean isUnverified;
|
||||
@@ -78,7 +80,7 @@ public final class IdentityRecordList {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isUntrusted(identityRecord)) {
|
||||
if (isUntrusted(identityRecord, DEFAULT_UNTRUSTED_WINDOW)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -87,10 +89,14 @@ public final class IdentityRecordList {
|
||||
}
|
||||
|
||||
public @NonNull List<IdentityRecord> getUntrustedRecords() {
|
||||
return getUntrustedRecords(DEFAULT_UNTRUSTED_WINDOW);
|
||||
}
|
||||
|
||||
public @NonNull List<IdentityRecord> getUntrustedRecords(long untrustedWindowMillis) {
|
||||
List<IdentityRecord> results = new ArrayList<>(identityRecords.size());
|
||||
|
||||
for (IdentityRecord identityRecord : identityRecords) {
|
||||
if (isUntrusted(identityRecord)) {
|
||||
if (isUntrusted(identityRecord, untrustedWindowMillis)) {
|
||||
results.add(identityRecord);
|
||||
}
|
||||
}
|
||||
@@ -102,7 +108,7 @@ public final class IdentityRecordList {
|
||||
List<Recipient> untrusted = new ArrayList<>(identityRecords.size());
|
||||
|
||||
for (IdentityRecord identityRecord : identityRecords) {
|
||||
if (isUntrusted(identityRecord)) {
|
||||
if (isUntrusted(identityRecord, DEFAULT_UNTRUSTED_WINDOW)) {
|
||||
untrusted.add(Recipient.resolved(identityRecord.getRecipientId()));
|
||||
}
|
||||
}
|
||||
@@ -134,9 +140,9 @@ public final class IdentityRecordList {
|
||||
return unverified;
|
||||
}
|
||||
|
||||
private static boolean isUntrusted(@NonNull IdentityRecord identityRecord) {
|
||||
private static boolean isUntrusted(@NonNull IdentityRecord identityRecord, long untrustedWindowMillis) {
|
||||
return !identityRecord.isApprovedNonBlocking() &&
|
||||
System.currentTimeMillis() - identityRecord.getTimestamp() < TimeUnit.SECONDS.toMillis(5);
|
||||
System.currentTimeMillis() - identityRecord.getTimestamp() < untrustedWindowMillis;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user