PaymentKit-Droid
PaymentKit-Droid copied to clipboard
java.lang.NumberFormatException
Hello, I sometimes get an java.lang.NumberFormatException. Here is the complete stacktrace:
10-22 01:49:40.867 16136-16136/com.heetch.debug E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NumberFormatException: Invalid long: ""
at java.lang.Long.invalidLong(Long.java:125)
at java.lang.Long.parseLong(Long.java:346)
at java.lang.Long.parseLong(Long.java:319)
at com.paymentkit.views.FieldHolder.validateCard(FieldHolder.java:156)
at com.paymentkit.views.FieldHolder.access$100(FieldHolder.java:26)
at com.paymentkit.views.FieldHolder$2.onCardNumberInputComplete(FieldHolder.java:237)
at com.paymentkit.views.CardNumEditText$ZanyInputConnection.handleNextPress(CardNumEditText.java:219)
at com.paymentkit.views.CardNumEditText$ZanyInputConnection.performEditorAction(CardNumEditText.java:212)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:297)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
It happen when I hit the "next" button of my soft keyboard when the FieldHolder is empty. Here is a possible patch for the method throwing that exception:
private void validateCard() {
String cardNumberText = mCardHolder.getCardField().getText().toString();
if (cardNumberText.equals(""))
return;
long cardNumber = Long.parseLong(cardNumberText.replaceAll("\\s", ""));
if (ValidateCreditCard.isValid(cardNumber)) {
CardType cardType = ValidateCreditCard.matchCardType(cardNumber);
mCardIcon.setCardType(cardType);
transitionToExtraFields();
} else {
mCardHolder.indicateInvalidCardNum();
}
}
at line 155 of FieldHolder.java. Could you patch this? Thank you.