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.

  • 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