diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 839f6fc171..8a37128895 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -980,6 +980,57 @@ public class Log { */ } + if (ex instanceof IndexOutOfBoundsException) { + for (StackTraceElement ste : stack) + if ("android.graphics.Paint".equals(ste.getClassName()) && + "getTextRunCursor".equals(ste.getMethodName())) + return false; + /* + Android 6.0.1 + java.lang.IndexOutOfBoundsException + at android.graphics.Paint.getTextRunCursor(Paint.java:2160) + at android.graphics.Paint.getTextRunCursor(Paint.java:2112) + at android.widget.Editor.getNextCursorOffset(Editor.java:924) + at android.widget.Editor.access$4700(Editor.java:126) + at android.widget.Editor$SelectionEndHandleView.positionAndAdjustForCrossingHandles(Editor.java:4708) + at android.widget.Editor$SelectionEndHandleView.updatePosition(Editor.java:4692) + at android.widget.Editor$HandleView.onTouchEvent(Editor.java:4012) + at android.widget.Editor$SelectionEndHandleView.onTouchEvent(Editor.java:4726) + at android.view.View.dispatchTouchEvent(View.java:9377) + at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554) + at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255) + at android.widget.PopupWindow$PopupDecorView.dispatchTouchEvent(PopupWindow.java:2015) + at android.view.View.dispatchPointerEvent(View.java:9597) + at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4234) + at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4100) + at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646) + at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3699) + at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3665) + at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3791) + at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3673) + at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3848) + at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646) + at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3699) + at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3665) + at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3673) + at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646) + at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5926) + at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5900) + at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5861) + at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6029) + at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) + at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) + at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) + at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6000) + at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6052) + at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) + at android.view.Choreographer.doCallbacks(Choreographer.java:670) + at android.view.Choreographer.doFrame(Choreographer.java:600) + at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) + at android.os.Handler.handleCallback(Handler.java:739) + */ + } + if (ex instanceof IllegalArgumentException && stack.length > 0 && "android.text.method.WordIterator".equals(stack[0].getClassName()) &&