From 18b226a89d015b7f94d45b1bd9ba7962210a5cf0 Mon Sep 17 00:00:00 2001 From: Charles Cruzan Date: Wed, 16 Mar 2022 16:02:05 -0400 Subject: [PATCH] create getCurrentActivityOrResolveWithError method --- .../reactnativestripesdk/StripeSdkModule.kt | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt b/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt index 82f40c3da..1d358a7e7 100644 --- a/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +++ b/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt @@ -50,9 +50,6 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ private var initGooglePayPromise: Promise? = null private var presentGooglePayPromise: Promise? = null - private val currentActivity: AppCompatActivity? - get() = (super.getCurrentActivity() as? AppCompatActivity) - private val mActivityEventListener = object : BaseActivityEventListener() { override fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) { if (::stripe.isInitialized) { @@ -239,7 +236,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ @ReactMethod @SuppressWarnings("unused") fun initPaymentSheet(params: ReadableMap, promise: Promise) { - currentActivity?.let { activity -> + getCurrentActivityOrResolveWithError(promise)?.let { activity -> this.initPaymentSheetPromise = promise paymentSheetFragment = PaymentSheetFragment().also { @@ -249,8 +246,6 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ activity.supportFragmentManager.beginTransaction() .add(paymentSheetFragment!!, "payment_sheet_launch_fragment") .commit() - } ?: run { - promise.resolve(createMissingActivityError()) } } @@ -269,14 +264,12 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ } private fun payWithFpx() { - currentActivity?.let { + getCurrentActivityOrResolveWithError(confirmPromise)?.let { AddPaymentMethodActivityStarter(it) .startForResult(AddPaymentMethodActivityStarter.Args.Builder() .setPaymentMethodType(PaymentMethod.Type.Fpx) .build() ) - } ?: run { - confirmPromise?.resolve(createMissingActivityError()) } } @@ -562,7 +555,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ @ReactMethod @SuppressWarnings("unused") fun isGooglePaySupported(params: ReadableMap?, promise: Promise) { - currentActivity?.let { + getCurrentActivityOrResolveWithError(promise)?.let { val fragment = GooglePayPaymentMethodLauncherFragment( it, getBooleanOrFalse(params, "testEnv"), @@ -573,8 +566,6 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ it.supportFragmentManager.beginTransaction() .add(fragment, "google_pay_support_fragment") .commit() - } ?: run { - promise.resolve(createMissingActivityError()) } } @@ -586,14 +577,12 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ it.arguments = bundle } - currentActivity?.let { + getCurrentActivityOrResolveWithError(promise)?.let { initGooglePayPromise = promise it.supportFragmentManager.beginTransaction() .add(googlePayFragment!!, "google_pay_launch_fragment") .commit() - } ?: run { - promise.resolve(createMissingActivityError()) } }