mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-22 18:55:12 +00:00
Upload PIN to KBS on successful register.
This commit is contained in:
@@ -97,7 +97,12 @@ public final class RegistrationRepository {
|
||||
{
|
||||
return Single.<ServiceResponse<VerifyResponse>>fromCallable(() -> {
|
||||
try {
|
||||
registerAccountInternal(registrationData, response.getVerifyAccountResponse(), response.getPin(), response.getKbsData());
|
||||
String pin = response.getPin();
|
||||
registerAccountInternal(registrationData, response.getVerifyAccountResponse(), pin, response.getKbsData());
|
||||
|
||||
if (pin != null && !pin.isEmpty()) {
|
||||
PinState.onPinChangedOrCreated(context, pin, SignalStore.pinValues().getKeyboardType());
|
||||
}
|
||||
|
||||
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||
jobManager.add(new DirectoryRefreshJob(false));
|
||||
|
||||
@@ -75,10 +75,6 @@ class VerifyAccountRepository(private val context: Application) {
|
||||
}.subscribeOn(Schedulers.io())
|
||||
}
|
||||
|
||||
fun verifyAccountWithReregistrationData(registrationData: RegistrationData, kbsPinDataProducer: KbsPinDataProducer): Single<ServiceResponse<VerifyResponse>> {
|
||||
return verifyAccountWithPin(registrationData, "", kbsPinDataProducer)
|
||||
}
|
||||
|
||||
fun verifyAccountWithPin(registrationData: RegistrationData, pin: String, kbsPinDataProducer: KbsPinDataProducer): Single<ServiceResponse<VerifyResponse>> {
|
||||
val universalUnidentifiedAccess: Boolean = TextSecurePreferences.isUniversalUnidentifiedAccess(context)
|
||||
val unidentifiedAccessKey: ByteArray = UnidentifiedAccess.deriveAccessKeyFrom(registrationData.profileKey)
|
||||
|
||||
@@ -6,6 +6,7 @@ import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.SavedStateHandle;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.pin.KbsRepository;
|
||||
import org.thoughtcrime.securesms.pin.TokenData;
|
||||
import org.thoughtcrime.securesms.registration.RequestVerificationCodeResponseProcessor;
|
||||
|
||||
@@ -111,11 +111,12 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel {
|
||||
return verifyAccountRepository.verifyAccount(getRegistrationData())
|
||||
.flatMap(verifyAccountWithoutKbsResponse -> {
|
||||
VerifyResponseProcessor processor = new VerifyResponseWithoutKbs(verifyAccountWithoutKbsResponse);
|
||||
String pin = SignalStore.kbsValues().getPin();
|
||||
|
||||
if (processor.registrationLock() && SignalStore.kbsValues().getRegistrationLockToken() != null) {
|
||||
if (processor.registrationLock() && SignalStore.kbsValues().getRegistrationLockToken() != null && pin != null) {
|
||||
KbsPinData pinData = new KbsPinData(SignalStore.kbsValues().getOrCreateMasterKey(), SignalStore.kbsValues().getRegistrationLockTokenResponse());
|
||||
|
||||
return verifyAccountRepository.verifyAccountWithReregistrationData(getRegistrationData(), () -> pinData)
|
||||
return verifyAccountRepository.verifyAccountWithPin(getRegistrationData(), pin, () -> pinData)
|
||||
.map(verifyAccountWithPinResponse -> {
|
||||
if (verifyAccountWithPinResponse.getResult().isPresent() && verifyAccountWithPinResponse.getResult().get().getKbsData() != null) {
|
||||
return verifyAccountWithPinResponse;
|
||||
|
||||
Reference in New Issue
Block a user