Package icyllis.modernui.widget
Class Editor.UndoInputFilter
java.lang.Object
icyllis.modernui.widget.Editor.UndoInputFilter
- All Implemented Interfaces:
InputFilter
- Enclosing class:
Editor
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Signals that a user-triggered edit is starting.void
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 rangedstart … dend
ofdest
with the new text from the rangestart … end
ofsource
.
-
Constructor Details
-
UndoInputFilter
-
-
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 rangedstart … dend
ofdest
with the new text from the rangestart … end
ofsource
. Return the CharSequence that you would like to have placed there instead, including an empty string if appropriate, ornull
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 todest
from this method; you may only examine it for context.Note: If source is an instance of
Spanned
orSpannable
, 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 interfaceInputFilter
-