Use a min length of 6 for new PIN reminders.

master
Greyson Parrelli 2020-02-13 13:43:33 -05:00
parent dcb5f7b211
commit 81532cad95
5 changed files with 14 additions and 12 deletions

View File

@ -154,7 +154,7 @@ public final class RegistrationLockDialog {
if (s == null) return;
String pin = s.toString();
if (TextUtils.isEmpty(pin)) return;
if (pin.length() < KbsConstants.MINIMUM_POSSIBLE_PIN_LENGTH) return;
if (pin.length() < KbsConstants.LEGACY_MINIMUM_PIN_LENGTH) return;
if (PinHashing.verifyLocalPinHash(localPinHash, pin)) {
dialog.dismiss();
@ -186,9 +186,9 @@ public final class RegistrationLockDialog {
String pinValue = pin.getText().toString().replace(" ", "");
String repeatValue = repeat.getText().toString().replace(" ", "");
if (pinValue.length() < KbsConstants.MINIMUM_POSSIBLE_PIN_LENGTH) {
if (pinValue.length() < KbsConstants.LEGACY_MINIMUM_PIN_LENGTH) {
Toast.makeText(context,
context.getString(R.string.RegistrationLockDialog_the_registration_lock_pin_must_be_at_least_d_digits, KbsConstants.MINIMUM_POSSIBLE_PIN_LENGTH),
context.getString(R.string.RegistrationLockDialog_the_registration_lock_pin_must_be_at_least_d_digits, KbsConstants.LEGACY_MINIMUM_PIN_LENGTH),
Toast.LENGTH_LONG).show();
return;
}

View File

@ -115,7 +115,7 @@ public final class SignalPinReminderDialog {
pinEditText.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void onTextChanged(String text) {
if (text.length() >= KbsConstants.MINIMUM_POSSIBLE_PIN_LENGTH) {
if (text.length() >= KbsConstants.minimumPossiblePinLength()) {
submit.setEnabled(true);
} else {
submit.setEnabled(false);
@ -192,7 +192,7 @@ public final class SignalPinReminderDialog {
if (pin == null) return;
if (TextUtils.isEmpty(pin)) return;
if (pin.length() < KbsConstants.MINIMUM_POSSIBLE_PIN_LENGTH) return;
if (pin.length() < KbsConstants.minimumPossiblePinLength()) return;
if (PinHashing.verifyLocalPinHash(localPinHash, pin)) {
callback.onPinCorrect();

View File

@ -46,7 +46,7 @@ abstract class BaseKbsPinFragment<ViewModel extends BaseKbsPinViewModel> extends
viewModel = initializeViewModel();
viewModel.getUserEntry().observe(getViewLifecycleOwner(), kbsPin -> {
boolean isEntryValid = kbsPin.length() >= KbsConstants.MINIMUM_NEW_PIN_LENGTH;
boolean isEntryValid = kbsPin.length() >= KbsConstants.MINIMUM_PIN_LENGTH;
confirm.setEnabled(isEntryValid);
confirm.setAlpha(isEntryValid ? 1f : 0.5f);

View File

@ -77,6 +77,6 @@ public class CreateKbsPinFragment extends BaseKbsPinFragment<CreateKbsPinViewMod
}
private String getPinLengthRestrictionText(@PluralsRes int plurals) {
return requireContext().getResources().getQuantityString(plurals, KbsConstants.MINIMUM_NEW_PIN_LENGTH, KbsConstants.MINIMUM_NEW_PIN_LENGTH);
return requireContext().getResources().getQuantityString(plurals, KbsConstants.MINIMUM_PIN_LENGTH, KbsConstants.MINIMUM_PIN_LENGTH);
}
}

View File

@ -1,13 +1,15 @@
package org.thoughtcrime.securesms.lock.v2;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
public final class KbsConstants {
static final int MINIMUM_NEW_PIN_LENGTH = 6;
public static final int MINIMUM_PIN_LENGTH = 6;
public static final int LEGACY_MINIMUM_PIN_LENGTH = 4;
/** Migrated pins from V1 might be 4 */
public static final int MINIMUM_POSSIBLE_PIN_LENGTH = 4;
private KbsConstants() { }
private KbsConstants() {
public static int minimumPossiblePinLength() {
return SignalStore.kbsValues().hasMigratedToPinsForAll() ? MINIMUM_PIN_LENGTH : LEGACY_MINIMUM_PIN_LENGTH;
}
}