kopia lustrzana https://github.com/ryukoposting/Signal-Android
Upload PIN to KBS on successful register.
rodzic
e4cc7f5181
commit
aa9a530e59
|
@ -97,7 +97,12 @@ public final class RegistrationRepository {
|
||||||
{
|
{
|
||||||
return Single.<ServiceResponse<VerifyResponse>>fromCallable(() -> {
|
return Single.<ServiceResponse<VerifyResponse>>fromCallable(() -> {
|
||||||
try {
|
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 jobManager = ApplicationDependencies.getJobManager();
|
||||||
jobManager.add(new DirectoryRefreshJob(false));
|
jobManager.add(new DirectoryRefreshJob(false));
|
||||||
|
|
|
@ -75,10 +75,6 @@ class VerifyAccountRepository(private val context: Application) {
|
||||||
}.subscribeOn(Schedulers.io())
|
}.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>> {
|
fun verifyAccountWithPin(registrationData: RegistrationData, pin: String, kbsPinDataProducer: KbsPinDataProducer): Single<ServiceResponse<VerifyResponse>> {
|
||||||
val universalUnidentifiedAccess: Boolean = TextSecurePreferences.isUniversalUnidentifiedAccess(context)
|
val universalUnidentifiedAccess: Boolean = TextSecurePreferences.isUniversalUnidentifiedAccess(context)
|
||||||
val unidentifiedAccessKey: ByteArray = UnidentifiedAccess.deriveAccessKeyFrom(registrationData.profileKey)
|
val unidentifiedAccessKey: ByteArray = UnidentifiedAccess.deriveAccessKeyFrom(registrationData.profileKey)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.SavedStateHandle;
|
import androidx.lifecycle.SavedStateHandle;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||||
import org.thoughtcrime.securesms.pin.KbsRepository;
|
import org.thoughtcrime.securesms.pin.KbsRepository;
|
||||||
import org.thoughtcrime.securesms.pin.TokenData;
|
import org.thoughtcrime.securesms.pin.TokenData;
|
||||||
import org.thoughtcrime.securesms.registration.RequestVerificationCodeResponseProcessor;
|
import org.thoughtcrime.securesms.registration.RequestVerificationCodeResponseProcessor;
|
||||||
|
|
|
@ -111,11 +111,12 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel {
|
||||||
return verifyAccountRepository.verifyAccount(getRegistrationData())
|
return verifyAccountRepository.verifyAccount(getRegistrationData())
|
||||||
.flatMap(verifyAccountWithoutKbsResponse -> {
|
.flatMap(verifyAccountWithoutKbsResponse -> {
|
||||||
VerifyResponseProcessor processor = new VerifyResponseWithoutKbs(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());
|
KbsPinData pinData = new KbsPinData(SignalStore.kbsValues().getOrCreateMasterKey(), SignalStore.kbsValues().getRegistrationLockTokenResponse());
|
||||||
|
|
||||||
return verifyAccountRepository.verifyAccountWithReregistrationData(getRegistrationData(), () -> pinData)
|
return verifyAccountRepository.verifyAccountWithPin(getRegistrationData(), pin, () -> pinData)
|
||||||
.map(verifyAccountWithPinResponse -> {
|
.map(verifyAccountWithPinResponse -> {
|
||||||
if (verifyAccountWithPinResponse.getResult().isPresent() && verifyAccountWithPinResponse.getResult().get().getKbsData() != null) {
|
if (verifyAccountWithPinResponse.getResult().isPresent() && verifyAccountWithPinResponse.getResult().get().getKbsData() != null) {
|
||||||
return verifyAccountWithPinResponse;
|
return verifyAccountWithPinResponse;
|
||||||
|
|
Ładowanie…
Reference in New Issue