Package icyllis.modernui.text

# Interface InputFilter

All Known Implementing Classes:
  `DigitsInputFilter`, `Editor.UndoInputFilter`, `InputFilter.LengthFilter`, `NumberInputFilter`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface InputFilter
InputFilters can be attached to `Editables` to constrain the changes that can be made to them.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static class`
  `InputFilter.LengthFilter`
  This filter will constrain edits not to make the length of the text greater than the specified length.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CharSequence`
  `filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend)`
  This method is called when the buffer is going to replace the range `dstart … dend` of `dest` with the new text from the range `start … end` of `source`.

- ## Method Details

  - ### filter

    @Nullable CharSequence filter(@Nonnull CharSequence source, int start, int end, @Nonnull Spanned dest, int dstart, int dend)
    This method is called when the buffer is going to replace the range `dstart … dend` of `dest` with the new text from the range `start … end` of `source`. Return the CharSequence that you would like to have placed there instead, including an empty string if appropriate, or `null` to accept the original replacement. Be careful to not to reject 0-length replacements, as this is what happens when you delete text. Also beware that you should not attempt to make any changes to `dest` from this method; you may only examine it for context.

    Note: If source is an instance of `Spanned` or `Spannable`, the span objects in the source should be copied into the filtered result (i.e. the non-null return value). `TextUtils.copySpansFrom(icyllis.modernui.text.Spanned, int, int, java.lang.Class<?>, icyllis.modernui.text.Spannable, int)` can be used for convenience if the span boundary indices would be remaining identical relative to the source.