Skip to content

Commit

Permalink
Ignore period in phone number entry.
Browse files Browse the repository at this point in the history
Fixes #9168
  • Loading branch information
alan-signal committed Nov 8, 2019
1 parent a33eeed commit 5d87ad0
Showing 1 changed file with 17 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -339,13 +339,13 @@ private class NumberChangedListener implements TextWatcher {

@Override
public void afterTextChanged(Editable s) {
String number = reformatText(s);
Long number = reformatText(s);

if (number == null) return;

RegistrationViewModel model = getModel();

model.setNationalNumber(Long.parseLong(number));
model.setNationalNumber(number);

setCountryDisplay(model.getNumber().getCountryDisplayName());
}
Expand All @@ -360,7 +360,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}

private String reformatText(Editable s) {
private Long reformatText(Editable s) {
if (countryFormatter == null) {
return null;
}
Expand All @@ -371,17 +371,26 @@ private String reformatText(Editable s) {

countryFormatter.clear();

String number = s.toString().replaceAll("[^\\d.]", "");
String formattedNumber = null;
String formattedNumber = null;
StringBuilder justDigits = new StringBuilder();

for (int i = 0; i < number.length(); i++) {
formattedNumber = countryFormatter.inputDigit(number.charAt(i));
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isDigit(c)) {
formattedNumber = countryFormatter.inputDigit(c);
justDigits.append(c);
}
}

if (formattedNumber != null && !s.toString().equals(formattedNumber)) {
s.replace(0, s.length(), formattedNumber);
}
return number;

if (justDigits.length() == 0) {
return null;
}

return Long.parseLong(justDigits.toString());
}

private void setCountryFormatter(@Nullable String regionCode) {
Expand Down

0 comments on commit 5d87ad0

Please sign in to comment.