yydcdut / RxMarkdown

:fax:Markdown for Android, supports TextView && EditText (Live Preview), supports code high light.
749 stars 93 forks source link

IndexOutOfBounce Exception when select and cut #60

Open stefan-niedermann opened 5 years ago

stefan-niedermann commented 5 years ago

On EditText write

# Test

Then select Test (with the space character) Then choose cut from the popping up tooltip

09-16 13:51:08.566 27494-27494/it.niedermann.owncloud.notes E/AndroidRuntime: FATAL EXCEPTION: main
    Process: it.niedermann.owncloud.notes, PID: 27494
    java.lang.IndexOutOfBoundsException: charAt: 2 >= length 2
        at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:123)
        at android.text.CharSequenceCharacterIterator.next(CharSequenceCharacterIterator.java:67)
        at android.icu.text.RuleBasedBreakIterator.handleNext(RuleBasedBreakIterator.java:1311)
        at android.icu.text.RuleBasedBreakIterator.next(RuleBasedBreakIterator.java:416)
        at android.icu.text.RuleBasedBreakIterator.rulesFollowing(RuleBasedBreakIterator.java:742)
        at android.icu.text.RuleBasedBreakIterator.following(RuleBasedBreakIterator.java:696)
        at android.icu.text.RuleBasedBreakIterator.isBoundary(RuleBasedBreakIterator.java:932)
        at android.text.method.WordIterator.isBoundary(WordIterator.java:95)
        at android.widget.Editor$SelectionHandleView.positionAtCursorOffset(Editor.java:5005)
        at android.widget.Editor$HandleView.invalidate(Editor.java:4298)
        at android.widget.Editor$SelectionModifierCursorController.invalidateHandles(Editor.java:5660)
        at android.widget.Editor.invalidateHandlesAndActionMode(Editor.java:1863)
        at android.widget.TextView.spanChange(TextView.java:9526)
        at android.widget.TextView$ChangeWatcher.onSpanRemoved(TextView.java:11965)
        at android.text.SpannableStringBuilder.sendSpanRemoved(SpannableStringBuilder.java:1281)
        at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:499)
        at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:788)
        at com.yydcdut.markdown.utils.SyntaxUtils.removeSpans(SyntaxUtils.java:294)
        at com.yydcdut.markdown.live.HeaderLive.format(HeaderLive.java:90)
        at com.yydcdut.markdown.live.HeaderLive.onTextChanged(HeaderLive.java:63)
        at com.yydcdut.markdown.live.LivePrepare.onTextChanged(LivePrepare.java:81)
        at com.yydcdut.markdown.MarkdownEditText.onTextChanged4Controller(MarkdownEditText.java:252)
        at com.yydcdut.markdown.MarkdownEditText.access$700(MarkdownEditText.java:44)
        at com.yydcdut.markdown.MarkdownEditText$EditTextWatcher.onTextChanged(MarkdownEditText.java:176)
        at android.widget.TextView.sendOnTextChanged(TextView.java:9364)
        at android.widget.TextView.handleTextChanged(TextView.java:9451)
        at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11926)
        at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1252)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
        at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
        at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:227)
        at android.widget.TextView.deleteText_internal(TextView.java:11434)
        at android.widget.TextView.onTextContextMenuItem(TextView.java:10846)
        at android.widget.Editor$TextActionModeCallback.onActionItemClicked(Editor.java:3976)
        at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onActionItemClicked(DecorView.java:2459)
        at com.android.internal.view.FloatingActionMode$3.onMenuItemSelected(FloatingActionMode.java:96)
        at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:761)
        at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:167)
        at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:908)
        at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:898)
        at com.android.internal.view.FloatingActionMode.lambda$-com_android_internal_view_FloatingActionMode_4856(FloatingActionMode.java:121)
        at com.android.internal.view.-$Lambda$IoKM3AcgDw3Ok5aFi0zlym2p3IA.$m$0(Unknown Source:4)
        at com.android.internal.view.-$Lambda$IoKM3AcgDw3Ok5aFi0zlym2p3IA.onMenuItemClick(Unknown Source:0)
        at com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup$2.onClick(FloatingToolbar.java:425)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)