paypal-android icon indicating copy to clipboard operation
paypal-android copied to clipboard

The oom memory has been going up

Open yytangsheng opened this issue 1 year ago • 1 comments

PayPal Android SDK Version

1.5.0

Environment

Sandbox

Android Version & Device

OPPO R17 android 10

PayPal dependencies

implementation "com.paypal.android:paypal-web-payments:1.5.0"

Describe the bug

oom

To reproduce

Pay, jump to the system browser, silent state app memory keeps rising

Expected behavior

Demo:

open class PayPalWebViewModel : BaseViewModel() {

private val TAG = "PayPalWebViewModel"

private var paypalClient: PayPalWebCheckoutClient? = null
var paypalSDKPayStateLiveData = MutableLiveData<PayPalCallback?>()

fun startWebCheckout(activity: AppCompatActivity, orderId: String) {
    viewModelScope.launch {
        startWebCheckoutWithOrderId(activity, orderId)
    }
}

private suspend fun startWebCheckoutWithOrderId(activity: AppCompatActivity, orderId: String) {
    val coreConfig = CoreConfig(orderId, environment = Environment.SANDBOX)

    if (paypalClient == null) {
        paypalClient =
            PayPalWebCheckoutClient(activity, coreConfig, activity.packageName)
    }

    paypalClient?.listener = object : PayPalWebCheckoutListener {
        override fun onPayPalWebCanceled() {
            WPTLogger.e("tag", "onPayPalWebCanceled")
            paypalSDKPayStateLiveData.value = PayPalWebCanceled()
        }

        override fun onPayPalWebFailure(error: PayPalSDKError) {
            WPTLogger.e("tag", "onPayPalWebFailure = ${error.toString()}")
            paypalSDKPayStateLiveData.value = PayPalWebFailure()
        }

        override fun onPayPalWebSuccess(result: PayPalWebCheckoutResult) {
            WPTLogger.e("tag", "onPayPalWebSuccess  result = ${result.toString()}")
            paypalSDKPayStateLiveData.value = PayPalWebSuccess()
        }

    }

    paypalClient?.start(PayPalWebCheckoutRequest(orderId, fundingSource = PayPalWebCheckoutFundingSource.PAYPAL))
}


override fun onCleared() {
    super.onCleared()
    paypalClient?.removeObservers()
}


sealed class PayPalCallback()

class PayPalWebCanceled() : PayPalCallback()
class PayPalWebFailure : PayPalCallback()
class PayPalWebSuccess : PayPalCallback()

}

viewModel.startWebCheckout(mContext,""orderId)

Screenshots

No response

yytangsheng avatar Aug 23 '24 13:08 yytangsheng

Hi @yytangsheng thanks for this. We'll look into it and provide a fix once we determine the root cause.

sshropshire avatar Sep 13 '24 15:09 sshropshire