void ITextWatcher.BeforeTextChanged(ICharSequence s, int start, int count, int after) { if (Mask != null) { if (!_editingBefore) { _editingBefore = true; if (start > _lastValidMaskPosition) { _ignore = true; } int rangeStart = start; if (after == 0) { rangeStart = ErasingStart(start); } Range range = calculateRange(rangeStart, start + count); if (range.Start != -1) { _rawText.SubtractFromString(range); } if (count > 0) { _selection = PreviousValidPosition(start); } } } }
public void BeforeTextChanged(Java.Lang.ICharSequence s, int start, int count, int after) { if (string.IsNullOrEmpty(mask)) { return; } if (!editingBefore) { editingBefore = true; ignore |= start > lastValidMaskPosition; int rangeStart = start; if (after == 0) { rangeStart = erasingStart(start); } var range = calculateRange(rangeStart, start + count); if (range.Start != -1) { rawText.SubtractFromString(range); } if (count > 0) { selection = previousValidPosition(start); } } }