Note app crash when cutting last line
- /e/ version: 0.9
- Device model: OnePlus6T:
Summary
When cutting last line of markdown formatted text, note app crashes
-
The device is unusable -
The bug is the source of a data loss or a big waste of time -
The bug concerns a third-party application -
The bug concerns security -
The bug concerns privacy
Relevant screenshots
Possible fixes
In the following logs, the =
in charAt: 409 >= length 409
seems wrong? (since 409 is equal to 409
Logs
Version: 1.0.1
java.lang.IndexOutOfBoundsException: charAt: 409 >= length 409
at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:123)
at android.text.CharSequenceCharacterIterator.current(CharSequenceCharacterIterator.java:58)
at android.text.CharSequenceCharacterIterator.setIndex(CharSequenceCharacterIterator.java:83)
at android.icu.text.RuleBasedBreakIterator.CISetIndex32(RuleBasedBreakIterator.java:1126)
at android.icu.text.RuleBasedBreakIterator.isBoundary(RuleBasedBreakIterator.java:503)
at android.text.method.WordIterator.isBoundary(WordIterator.java:95)
at android.widget.Editor$SelectionHandleView.positionAtCursorOffset(Editor.java:5467)
at android.widget.Editor$HandleView.invalidate(Editor.java:4577)
at android.widget.Editor$SelectionModifierCursorController.invalidateHandles(Editor.java:6145)
at android.widget.Editor.invalidateHandlesAndActionMode(Editor.java:1985)
at android.widget.TextView.spanChange(TextView.java:9943)
at android.widget.TextView$ChangeWatcher.onSpanRemoved(TextView.java:12601)
at android.text.SpannableStringBuilder.sendSpanRemoved(SpannableStringBuilder.java:1292)
at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:500)
at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:799)
at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:787)
at com.yydcdut.markdown.utils.SyntaxUtils.removeSpans(SyntaxUtils.java:294)
at com.yydcdut.markdown.live.StrikeThroughLive.format(StrikeThroughLive.java:85)
at com.yydcdut.markdown.live.StrikeThroughLive.onTextChanged(StrikeThroughLive.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:9771)
at android.widget.TextView.handleTextChanged(TextView.java:9868)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12562)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:36)
at android.widget.TextView.deleteText_internal(TextView.java:12071)
at android.widget.TextView.onTextContextMenuItem(TextView.java:11319)
at android.widget.Editor$TextActionModeCallback.onActionItemClicked(Editor.java:4181)
at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onActionItemClicked(DecorView.java:2392)
at com.android.internal.view.FloatingActionMode$3.onMenuItemSelected(FloatingActionMode.java:98)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913)
at com.android.internal.view.FloatingActionMode.lambda$setFloatingToolbar$0(FloatingActionMode.java:123)
at com.android.internal.view.-$$Lambda$FloatingActionMode$LU5MpPuKYDtwlFAuYhXYfzgLNLE.onMenuItemClick(Unknown Source:2)
at com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup$2.onClick(FloatingToolbar.java:443)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25906)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Edited by Thomas Raffray