Archive sessions and generate new registration id on re-register

Fixes #6703
// FREEBIE
This commit is contained in:
Moxie Marlinspike
2017-07-05 13:12:59 -07:00
parent 39b95ca4ed
commit 2c4c0f1349
9 changed files with 39 additions and 52 deletions

View File

@@ -39,10 +39,9 @@ public class RefreshAttributesJob extends ContextJob implements InjectableType {
public void onRun() throws IOException {
String signalingKey = TextSecurePreferences.getSignalingKey(context);
int registrationId = TextSecurePreferences.getLocalRegistrationId(context);
boolean video = TextSecurePreferences.isWebrtcCallingEnabled(context);
boolean fetchesMessages = TextSecurePreferences.isGcmDisabled(context);
signalAccountManager.setAccountAttributes(signalingKey, registrationId, true, video || fetchesMessages, fetchesMessages);
signalAccountManager.setAccountAttributes(signalingKey, registrationId, fetchesMessages);
}
@Override

View File

@@ -58,13 +58,12 @@ public class RefreshPreKeysJob extends MasterSecretJob implements InjectableType
}
List<PreKeyRecord> preKeyRecords = PreKeyUtil.generatePreKeys(context);
PreKeyRecord lastResortKeyRecord = PreKeyUtil.generateLastResortKey(context);
IdentityKeyPair identityKey = IdentityKeyUtil.getIdentityKeyPair(context);
SignedPreKeyRecord signedPreKeyRecord = PreKeyUtil.generateSignedPreKey(context, identityKey, false);
Log.w(TAG, "Registering new prekeys...");
accountManager.setPreKeys(identityKey.getPublicKey(), lastResortKeyRecord, signedPreKeyRecord, preKeyRecords);
accountManager.setPreKeys(identityKey.getPublicKey(), signedPreKeyRecord, preKeyRecords);
PreKeyUtil.setActiveSignedPreKeyId(context, signedPreKeyRecord.getId());
TextSecurePreferences.setSignedPreKeyRegistered(context, true);