Package icyllis.modernui.widget

# Class Editor.UndoInputFilter

java.lang.Object
icyllis.modernui.widget.Editor.UndoInputFilter

All Implemented Interfaces:
  `InputFilter`

Enclosing class:
  `Editor`

public static class Editor.UndoInputFilter extends Object implements InputFilter
An InputFilter that monitors text input to maintain undo history. It does not modify the text being typed (and hence always returns null from the filter() method).

TODO: Make this span aware.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface icyllis.modernui.text.InputFilter

  `InputFilter.LengthFilter`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UndoInputFilter(Editor editor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `beginBatchEdit()`
  Signals that a user-triggered edit is starting.
  `void`
  `endBatchEdit()`
  `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`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### UndoInputFilter

    public UndoInputFilter(Editor editor)

- ## Method Details

  - ### beginBatchEdit

    public void beginBatchEdit()
    Signals that a user-triggered edit is starting.

  - ### endBatchEdit

    public void endBatchEdit()

  - ### filter

    public CharSequence filter(@NonNull CharSequence source, int start, int end, @NonNull Spanned dest, int dstart, int dend)
    Description copied from interface: `InputFilter`
    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.

    Specified by:
      `filter` in interface `InputFilter`