PaystackHQ / paystack-android

Paystack SDK for Android. Accept payments on Android
Apache License 2.0
126 stars 101 forks source link

Crash with a wrong OTP code input #145

Open OHoussein opened 1 year ago

OHoussein commented 1 year ago

Problem/Motivation

Crash when the user put a wrong OTP input code. Stacktrace

E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NullPointerException
        at android.content.res.XmlBlock.nativeGetStyleAttribute(Native Method)
        at android.content.res.XmlBlock.access$1500(XmlBlock.java:41)
        at android.content.res.XmlBlock$Parser.getStyleAttribute(XmlBlock.java:459)
        at android.content.res.Resources$Theme.getExplicitStyle(Resources.java:1937)
        at android.view.View.retrieveExplicitStyle(View.java:7009)
        at android.view.View.<init>(View.java:5893)
        at android.view.ViewGroup.<init>(ViewGroup.java:715)
        at android.widget.LinearLayout.<init>(LinearLayout.java:254)
        at android.widget.LinearLayout.<init>(LinearLayout.java:250)
        at android.widget.LinearLayout.<init>(LinearLayout.java:246)
        at co.paystack.android.design.widget.Indicator.<init>(Indicator.java:59)
        at co.paystack.android.design.widget.PinPadView.createIndicators(PinPadView.java:481)
        at co.paystack.android.design.widget.PinPadView.setPinLength(PinPadView.java:432)
        at co.paystack.android.ui.OtpActivity$1.onPinChanged(OtpActivity.java:40)
        at co.paystack.android.design.widget.PinPadView.updatePin(PinPadView.java:470)
        at co.paystack.android.design.widget.PinPadView.access$200(PinPadView.java:51)
        at co.paystack.android.design.widget.PinPadView$1.onButtonClick(PinPadView.java:533)
        at co.paystack.android.design.widget.PinPadButton.dispatchTouchEvent(PinPadButton.java:234)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3920)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3594)

Repeatable

Always

Steps to repeat:

  1. Go to the payment screen
  2. Use this test card number 507850785078507804 (PIN + Phone + OTP validation)
  3. Fill the expiry and CVV inputs
  4. put the pin code (0000)
  5. put any wrong OTP code

Expected Results:

at least an error message

Actual Results:

The app crashes

Recrod

https://user-images.githubusercontent.com/10960959/203558345-7819c52d-c5ab-421b-9327-35061df5180b.mp4