Prevent crash

This commit is contained in:
M66B 2021-07-08 17:07:51 +02:00
parent e09e7503e5
commit a01c03cd2b
2 changed files with 53 additions and 0 deletions

View File

@ -23,6 +23,7 @@ import android.content.Context;
import android.graphics.Canvas;
import android.os.Build;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.textclassifier.TextClassifier;
@ -179,6 +180,48 @@ public class FixedEditText extends AppCompatEditText {
}
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
try {
return super.onKeyPreIme(keyCode, event);
} catch (Throwable ex) {
Log.w(ex);
/*
java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
at android.text.SpannableStringInternal.checkRange(SpannableStringInternal.java:434)
at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:155)
at android.text.SpannableString.setSpan(SpannableString.java:46)
at android.text.Selection.setSelection(Selection.java:76)
at android.widget.TextView.semSetSelection(TextView.java:11458)
at android.widget.TextView.semSetSelection(TextView.java:11472)
at android.widget.Editor$TextActionModeCallback.onDestroyActionMode(Editor.java:4268)
at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onDestroyActionMode(DecorView.java:2957)
at com.android.internal.view.FloatingActionMode.finish(FloatingActionMode.java:307)
at android.widget.Editor.stopTextActionMode(Editor.java:2356)
at android.widget.TextView.stopTextActionMode(TextView.java:11253)
at android.widget.TextView.handleBackInTextActionModeIfNeeded(TextView.java:7099)
at android.widget.TextView.onKeyPreIme(TextView.java:7052)
at android.view.View.dispatchKeyEventPreIme(View.java:10527)
at android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1679)
at android.view.ViewRootImpl$ViewPreImeInputStage.processKeyEvent(ViewRootImpl.java:4801)
at android.view.ViewRootImpl$ViewPreImeInputStage.onProcess(ViewRootImpl.java:4787)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4493)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4546)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4512)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4645)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4520)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4702)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4493)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7000)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6929)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6890)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7110)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
*/
return false;
}
}
@Override
public boolean performLongClick() {
try {

View File

@ -195,6 +195,16 @@ public class FixedTextView extends AppCompatTextView {
}
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
try {
return super.onKeyPreIme(keyCode, event);
} catch (Throwable ex) {
Log.w(ex);
return false;
}
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
try {