mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-03 23:15:44 +01:00
Add support for SN verification
// FREEBIE
This commit is contained in:
@@ -6,9 +6,12 @@ import android.support.annotation.NonNull;
|
||||
import org.thoughtcrime.securesms.crypto.storage.TextSecureSessionStore;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.whispersystems.libsignal.SignalProtocolAddress;
|
||||
import org.whispersystems.libsignal.state.SessionRecord;
|
||||
import org.whispersystems.libsignal.state.SessionStore;
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SessionUtil {
|
||||
|
||||
public static boolean hasSession(Context context, MasterSecret masterSecret, Recipient recipient) {
|
||||
@@ -21,4 +24,23 @@ public class SessionUtil {
|
||||
|
||||
return sessionStore.containsSession(axolotlAddress);
|
||||
}
|
||||
|
||||
public static void archiveSiblingSessions(Context context, SignalProtocolAddress address) {
|
||||
SessionStore sessionStore = new TextSecureSessionStore(context);
|
||||
List<Integer> devices = sessionStore.getSubDeviceSessions(address.getName());
|
||||
devices.add(1);
|
||||
|
||||
for (int device : devices) {
|
||||
if (device != address.getDeviceId()) {
|
||||
SignalProtocolAddress sibling = new SignalProtocolAddress(address.getName(), device);
|
||||
|
||||
if (sessionStore.containsSession(sibling)) {
|
||||
SessionRecord sessionRecord = sessionStore.loadSession(sibling);
|
||||
sessionRecord.archiveCurrentState();
|
||||
sessionStore.storeSession(sibling, sessionRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user