Fix navigation for creating a new pin if forgotten or skipped during registration

Co-authored-by: henry <henry.ph2@gmail.com>

Closes #12183
This commit is contained in:
clauz9
2022-04-23 02:10:01 +03:00
committed by Alex Hart
parent 12d1254d4e
commit d3d9b95924
6 changed files with 22 additions and 2 deletions

View File

@@ -34,5 +34,6 @@ public final class PinRestoreActivity extends AppCompatActivity {
final Intent chained = PassphraseRequiredActivity.chainIntent(createPin, main);
startActivity(chained);
finish();
}
}

View File

@@ -227,6 +227,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
}
private void onAccountLocked() {
PinState.onPinRestoreForgottenOrSkipped();
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), PinRestoreEntryFragmentDirections.actionAccountLocked());
}

View File

@@ -86,6 +86,7 @@ public final class PinState {
SignalStore.kbsValues().setKbsMasterKey(kbsData, pin);
SignalStore.kbsValues().setV2RegistrationLockEnabled(false);
SignalStore.pinValues().resetPinReminders();
SignalStore.kbsValues().setPinForgottenOrSkipped(false);
SignalStore.storageService().setNeedsAccountRestore(false);
resetPinRetryCount(context, pin);
ClearFallbackKbsEnclaveJob.clearAll();
@@ -99,6 +100,7 @@ public final class PinState {
public static synchronized void onPinRestoreForgottenOrSkipped() {
SignalStore.kbsValues().clearRegistrationLockAndPin();
SignalStore.storageService().setNeedsAccountRestore(false);
SignalStore.kbsValues().setPinForgottenOrSkipped(true);
updateState(buildInferredStateFromOtherFields());
}
@@ -122,6 +124,7 @@ public final class PinState {
KbsPinData kbsData = pinChangeSession.setPin(hashedPin, masterKey);
kbsValues.setKbsMasterKey(kbsData, pin);
kbsValues.setPinForgottenOrSkipped(false);
TextSecurePreferences.clearRegistrationLockV1(context);
SignalStore.pinValues().setKeyboardType(keyboard);
SignalStore.pinValues().resetPinReminders();