kopia lustrzana https://github.com/ryukoposting/Signal-Android
Remove possible transaction from identity cache read.
rodzic
f7adf2ee5a
commit
bdba048bc4
|
@ -29,6 +29,7 @@ import org.signal.libsignal.protocol.IdentityKey;
|
||||||
import org.signal.libsignal.protocol.InvalidKeyException;
|
import org.signal.libsignal.protocol.InvalidKeyException;
|
||||||
import org.thoughtcrime.securesms.database.model.IdentityRecord;
|
import org.thoughtcrime.securesms.database.model.IdentityRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.IdentityStoreRecord;
|
import org.thoughtcrime.securesms.database.model.IdentityStoreRecord;
|
||||||
|
import org.thoughtcrime.securesms.database.model.RecipientRecord;
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
|
@ -37,10 +38,12 @@ import org.thoughtcrime.securesms.util.Base64;
|
||||||
import org.signal.core.util.CursorUtil;
|
import org.signal.core.util.CursorUtil;
|
||||||
import org.thoughtcrime.securesms.util.IdentityUtil;
|
import org.thoughtcrime.securesms.util.IdentityUtil;
|
||||||
import org.signal.core.util.SqlUtil;
|
import org.signal.core.util.SqlUtil;
|
||||||
|
import org.whispersystems.signalservice.api.push.ServiceId;
|
||||||
import org.whispersystems.signalservice.api.util.UuidUtil;
|
import org.whispersystems.signalservice.api.util.UuidUtil;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class IdentityDatabase extends Database {
|
public class IdentityDatabase extends Database {
|
||||||
|
|
||||||
|
@ -110,8 +113,10 @@ public class IdentityDatabase extends Database {
|
||||||
timestamp,
|
timestamp,
|
||||||
nonblockingApproval);
|
nonblockingApproval);
|
||||||
} else if (UuidUtil.isUuid(addressName)) {
|
} else if (UuidUtil.isUuid(addressName)) {
|
||||||
if (SignalDatabase.recipients().containsPhoneOrUuid(addressName)) {
|
Optional<RecipientId> byServiceId = SignalDatabase.recipients().getByServiceId(ServiceId.parseOrThrow(addressName));
|
||||||
Recipient recipient = Recipient.external(context, addressName);
|
|
||||||
|
if (byServiceId.isPresent()) {
|
||||||
|
Recipient recipient = Recipient.resolved(byServiceId.get());
|
||||||
|
|
||||||
if (recipient.hasE164() && !UuidUtil.isUuid(recipient.requireE164())) {
|
if (recipient.hasE164() && !UuidUtil.isUuid(recipient.requireE164())) {
|
||||||
Log.i(TAG, "Could not find identity for UUID. Attempting E164.");
|
Log.i(TAG, "Could not find identity for UUID. Attempting E164.");
|
||||||
|
|
|
@ -396,20 +396,10 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
fun containsPhoneOrUuid(id: String): Boolean {
|
|
||||||
val query = "$SERVICE_ID = ? OR $PHONE = ?"
|
|
||||||
val args = arrayOf(id, id)
|
|
||||||
readableDatabase.query(TABLE_NAME, arrayOf(ID), query, args, null, null, null).use { cursor -> return cursor != null && cursor.moveToFirst() }
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getByE164(e164: String): Optional<RecipientId> {
|
fun getByE164(e164: String): Optional<RecipientId> {
|
||||||
return getByColumn(PHONE, e164)
|
return getByColumn(PHONE, e164)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getByEmail(email: String): Optional<RecipientId> {
|
|
||||||
return getByColumn(EMAIL, email)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getByGroupId(groupId: GroupId): Optional<RecipientId> {
|
fun getByGroupId(groupId: GroupId): Optional<RecipientId> {
|
||||||
return getByColumn(GROUP_ID, groupId.toString())
|
return getByColumn(GROUP_ID, groupId.toString())
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue