Closed botanju closed 7 years ago
Mesmo problema aqui, versão 1.1.0. Posso tentar reunir mais informações, se necessário.
Se tiver mais informações para reproduzir agradeço @davidtcdeveloper :)
Me parece ser modificações em lote (e acho que houve um problema de publicação do fix quando migramos o repositório para o github da Concrete). Vou lançar uma versão com uma mini feature e algumas modificações, mas ainda não consegui reproduzir aqui local.
Eu também não consigo reproduzir o erro, tenho somente os reports que recebo do Crashlytics. Esta é a stack trace:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=14; index=14
at br.com.concretesolutions.canarinho.watcher.BaseCanarinhoTextWatcher.trataRemocaoDeCaracter(BaseCanarinhoTextWatcher.java:139)
at br.com.concretesolutions.canarinho.watcher.BaseCanarinhoTextWatcher.trataAdicaoRemocaoDeCaracter(BaseCanarinhoTextWatcher.java:109)
at br.com.concretesolutions.canarinho.watcher.CPFCNPJTextWatcher.afterTextChanged(CPFCNPJTextWatcher.java:51)
at android.widget.TextView.sendAfterTextChanged(TextView.java:9303)
at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:12051)
at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1047)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:564)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:225)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:34)
...
Pelo stacktrace, acredito que seja alguma inconsistência neste trecho:
// Caso haja mais de um caracter de formatação (da máscara) faz um loop
// até chegar em um caracter que não seja de formatação
while (builder.length() > 0 && mascara[builder.length() - 1] != '#') {
builder.deleteCharAt(builder.length() - 1);
}
Não recebi grande quantidade de relatórios, mas até o momento todos foram reportados à partir de dispositivos da Samsung com Android 6.0.1.
@davidtcdeveloper Esse é realmente o bug de apagar em lote. Repare que nós lançamos uma versão 1.1.1 (pelo histórico de commits) que se perdeu aí no meio. Ela não está no bintray.
Para reproduzir, basta digitar em uma máscara e apagar em lote (seguro o apagar).
Beleza, entendi. Tem como pegar essa versão 1.1.1? Se disponibilizarem outra versão nova por favor avisem :)
Vou publicar já já uma 1.2.0 para evitar qualquer problema!
Eu aviso aqui.
On Mon, Nov 28, 2016 at 3:42 PM, David Tiago Conceição < notifications@github.com> wrote:
Beleza, entendi. Tem como pegar essa versão 1.1.1? Se disponibilizarem outra versão nova por favor avisem :)
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/concretesolutions/canarinho/issues/13#issuecomment-263339757, or mute the thread https://github.com/notifications/unsubscribe-auth/AGuSAHKnTnhRX6x4bbZx3sWTU5DEWcM3ks5rCxJtgaJpZM4K7ndy .
-- Victor Oliveira Nascimento Concrete Solutions Senior Analyst/Developer victor.nascimento@concretesolutions.com.br http://www.concretesolutions.com.br Mobile: +55 11 9 8923-8061
Rio de Janeiro São Paulo Rua São José 90, sala 2121 Rua Sansão Alves dos Santos, 433 / 4º Andar Cep: 20010-020 Cep: 04571-923 Centro - Rio de Janeiro - Brasil Brooklin - São Paulo – Brasil Phone : +55 21 2240-2030 Phone: +55 11 4119 0449
Ótimo @cs-victor-nascimento Vamos atualizar aqui e avisamos em caso de outros problemas. Obrigado :+1:
java.lang.ArrayIndexOutOfBoundsException: length=51; index=52 at br.com.concretesolutions.canarinho.watcher.BaseCanarinhoTextWatcher.trataRemocaoDeCaracter(BaseCanarinhoTextWatcher.java:139) at br.com.concretesolutions.canarinho.watcher.BaseCanarinhoTextWatcher.trataAdicaoRemocaoDeCaracter(BaseCanarinhoTextWatcher.java:109) at br.com.concretesolutions.canarinho.watcher.BoletoBancarioTextWatcher.afterTextChanged(BoletoBancarioTextWatcher.java:67) at android.widget.TextView.sendAfterTextChanged(TextView.java:8017) at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10178) at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043) at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560) at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:225) at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:224) at android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:106) at android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:51) at android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:215) at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:138) at android.widget.TextView.doKeyDown(TextView.java:6106) at android.widget.TextView.onKeyDown(TextView.java:5919) at android.view.KeyEvent.dispatch(KeyEvent.java:2654) at android.view.View.dispatchKeyEvent(View.java:9237) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:379) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2395) at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1727) at android.app.Activity.dispatchKeyEvent(Activity.java:2729) at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:543) at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:53) at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:315) at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:53) at com.android.internal.policy.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2310) at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4139) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4101) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3707) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3673) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3799) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3681) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3856) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3707) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3673) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3681) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5969) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5908) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5869) at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3446) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)