verifyPhoneMask method

  1. @override
void verifyPhoneMask(
  1. String value
)
override

Implementation

@override
void verifyPhoneMask(String value) {
  String valueWithoutPrefix = value;
  valueWithoutPrefix = valueWithoutPrefix.replaceFirst(widget.prefix, '');
  if (valueWithoutPrefix.length > 14) {
    if (currentMask != maskWithPrefix('(##) #####-####')) {
      setState(() {
        currentMask = maskWithPrefix('(##) #####-####');
      });
      for (TextInputFormatter element in inputFormatters) {
        if (element is MaskTextInputFormatter) {
          element.updateMask(
            mask: maskWithPrefix('(##) #####-####'),
            filter: <String, RegExp>{'#': RegExp(r'[0-9]')},
            newValue: TextEditingValue.empty,
          );
          value = element
              .formatEditUpdate(
              TextEditingValue.empty, TextEditingValue(text: value))
              .text;
        }
      }
      setValue(value);
    }
  } else {
    if (currentMask != maskWithPrefix('(##) ####-#####')) {
      setState(() {
        currentMask = maskWithPrefix('(##) ####-#####');
      });
      for (TextInputFormatter element in inputFormatters) {
        if (element is MaskTextInputFormatter) {
          element.updateMask(
            mask: maskWithPrefix('(##) ####-#####'),
            filter: <String, RegExp>{'#': RegExp(r'[0-9]')},
            newValue: TextEditingValue.empty,
          );
          value = element
              .formatEditUpdate(
              TextEditingValue.empty, TextEditingValue(text: value))
              .text;
        }
        setValue(value);
      }
    }
  }
}