Don't delete GCM id during registration if it never existed

Fixes #7229
This commit is contained in:
Moxie Marlinspike 2017-11-28 14:33:22 -08:00
parent f916dcd5de
commit 73c75a9b34

View File

@ -355,7 +355,10 @@ public class RegistrationActivity extends BaseActionBarActivity implements Verif
SignedPreKeyRecord signedPreKey = PreKeyUtil.generateSignedPreKey(RegistrationActivity.this, identityKey, true); SignedPreKeyRecord signedPreKey = PreKeyUtil.generateSignedPreKey(RegistrationActivity.this, identityKey, true);
accountManager.setPreKeys(identityKey.getPublicKey(), signedPreKey, records); accountManager.setPreKeys(identityKey.getPublicKey(), signedPreKey, records);
accountManager.setGcmId(registrationState.gcmToken);
if (registrationState.gcmToken.isPresent()) {
accountManager.setGcmId(registrationState.gcmToken);
}
TextSecurePreferences.setGcmRegistrationId(RegistrationActivity.this, registrationState.gcmToken.orNull()); TextSecurePreferences.setGcmRegistrationId(RegistrationActivity.this, registrationState.gcmToken.orNull());
TextSecurePreferences.setGcmDisabled(RegistrationActivity.this, !registrationState.gcmToken.isPresent()); TextSecurePreferences.setGcmDisabled(RegistrationActivity.this, !registrationState.gcmToken.isPresent());