Masked-Edittext
Masked-Edittext copied to clipboard
Crash when entering the wrong character
<com.github.pinball83.maskededittext.MaskedEditText
android:id="@+id/inputNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="1234567890"
android:imeOptions="actionDone"
android:inputType="phone"
android:maxLines="1"
app:allowed_chars="0123456789"
app:mask="+998 ** *** ** **"
app:notMaskedSymbol="*" />
java.lang.StringIndexOutOfBoundsException: length=19; index=27
at java.lang.String.charAt(Native Method)
at com.github.pinball83.maskededittext.MaskedEditText$MaskedInputFilter.filter(MaskedEditText.java:404)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:516)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:36)
at android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:370)
at android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:71)
at android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:479)
at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:148)
at android.widget.TextView.doKeyDown(TextView.java:8700)
at android.widget.TextView.onKeyDown(TextView.java:8470)
at android.view.KeyEvent.dispatch(KeyEvent.java:3350)
at android.view.View.dispatchKeyEvent(View.java:13304)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at androidx.core.widget.NestedScrollView.dispatchKeyEvent(NestedScrollView.java:622)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:686)
at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1869)
at android.app.Dialog.dispatchKeyEvent(Dialog.java:968)
at androidx.appcompat.app.AppCompatDialog.superDispatchKeyEvent(AppCompatDialog.java:208)
at androidx.appcompat.app.AppCompatDialog$1.superDispatchKeyEvent(AppCompatDialog.java:48)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
at androidx.appcompat.app.AppCompatDialog.dispatchKeyEvent(AppCompatDialog.java:214)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3068)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:564)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6035)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5890)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5521)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5578)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8387)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8320)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8281)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4980)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:6990)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
Same problem for me too...