mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 10:51:27 +01:00
Add support for PNI registration ids and PNP change number.
This commit is contained in:
@@ -8,7 +8,8 @@ data class RegistrationData(
|
||||
val password: String,
|
||||
val registrationId: Int,
|
||||
val profileKey: ProfileKey,
|
||||
val fcmToken: String?
|
||||
val fcmToken: String?,
|
||||
val pniRegistrationId: Int
|
||||
) {
|
||||
val isFcm: Boolean = fcmToken != null
|
||||
val isNotFcm: Boolean = fcmToken == null
|
||||
|
||||
@@ -73,6 +73,15 @@ public final class RegistrationRepository {
|
||||
return registrationId;
|
||||
}
|
||||
|
||||
public int getPniRegistrationId() {
|
||||
int pniRegistrationId = SignalStore.account().getPniRegistrationId();
|
||||
if (pniRegistrationId == 0) {
|
||||
pniRegistrationId = KeyHelper.generateRegistrationId(false);
|
||||
SignalStore.account().setPniRegistrationId(pniRegistrationId);
|
||||
}
|
||||
return pniRegistrationId;
|
||||
}
|
||||
|
||||
public @NonNull ProfileKey getProfileKey(@NonNull String e164) {
|
||||
ProfileKey profileKey = findExistingProfileKey(e164);
|
||||
|
||||
|
||||
@@ -70,7 +70,8 @@ class VerifyAccountRepository(private val context: Application) {
|
||||
unidentifiedAccessKey,
|
||||
universalUnidentifiedAccess,
|
||||
AppCapabilities.getCapabilities(true),
|
||||
SignalStore.phoneNumberPrivacy().phoneNumberListingMode.isDiscoverable
|
||||
SignalStore.phoneNumberPrivacy().phoneNumberListingMode.isDiscoverable,
|
||||
registrationData.pniRegistrationId
|
||||
)
|
||||
}.subscribeOn(Schedulers.io())
|
||||
}
|
||||
@@ -99,7 +100,8 @@ class VerifyAccountRepository(private val context: Application) {
|
||||
unidentifiedAccessKey,
|
||||
universalUnidentifiedAccess,
|
||||
AppCapabilities.getCapabilities(true),
|
||||
SignalStore.phoneNumberPrivacy().phoneNumberListingMode.isDiscoverable
|
||||
SignalStore.phoneNumberPrivacy().phoneNumberListingMode.isDiscoverable,
|
||||
registrationData.pniRegistrationId
|
||||
)
|
||||
VerifyAccountWithRegistrationLockResponse.from(response, kbsData)
|
||||
} catch (e: KeyBackupSystemWrongPinException) {
|
||||
|
||||
@@ -130,7 +130,8 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel {
|
||||
getRegistrationSecret(),
|
||||
registrationRepository.getRegistrationId(),
|
||||
registrationRepository.getProfileKey(getNumber().getE164Number()),
|
||||
getFcmToken());
|
||||
getFcmToken(),
|
||||
registrationRepository.getPniRegistrationId());
|
||||
}
|
||||
|
||||
public static final class Factory extends AbstractSavedStateViewModelFactory {
|
||||
|
||||
Reference in New Issue
Block a user