diff --git a/android/src/main/java/com/reactnativesmallcasegateway/SmallcaseGatewayModule.kt b/android/src/main/java/com/reactnativesmallcasegateway/SmallcaseGatewayModule.kt index a2fa9e9e..813d4f7b 100644 --- a/android/src/main/java/com/reactnativesmallcasegateway/SmallcaseGatewayModule.kt +++ b/android/src/main/java/com/reactnativesmallcasegateway/SmallcaseGatewayModule.kt @@ -92,7 +92,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte } - val activity = currentActivity; + val activity = reactApplicationContext.currentActivity if (activity != null) { val utm = readableMapToStrHashMap(utmParams) SmallcaseGatewaySdk.triggerTransaction(utmParams = utm, @@ -118,10 +118,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun triggerMfTransaction(transactionId: String, promise: Promise) { - if(currentActivity != null) { + val activity = reactApplicationContext.currentActivity + if(activity != null) { SmallcaseGatewaySdk.triggerMfTransaction( - activity = currentActivity!!, + activity = activity, transactionId = transactionId, listener = object : MFHoldingsResponseListener { @@ -142,7 +143,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun showOrders(promise: Promise) { - val activity = currentActivity; + val activity = reactApplicationContext.currentActivity if (activity != null) { SmallcaseGatewaySdk.showOrders(activity = activity, showOrdersResponseListener = object : DataListener { override fun onSuccess(response: Any) { @@ -160,9 +161,14 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun launchSmallplug(targetEndpoint: String, params: String, promise: Promise) { - SmallcaseGatewaySdk.launchSmallPlug(currentActivity!!, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener { - override fun onFailure(errorCode: Int, errorMessage: String) { + val activity = reactApplicationContext.currentActivity ?: run { + promise.reject(Throwable("no activity")) + return + } + SmallcaseGatewaySdk.launchSmallPlug(activity, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener { + override fun onFailure(errorCode: Int, errorMessage: String) { val err = createErrorJSON(errorCode, errorMessage, null) + promise.reject("error", err) } @@ -208,7 +214,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte } catch (e: Throwable) { } - SmallcaseGatewaySdk.launchSmallPlug(currentActivity!!, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener { + val activity = reactApplicationContext.currentActivity ?: run { + promise.reject(Throwable("no activity")) + return + } + SmallcaseGatewaySdk.launchSmallPlug(activity, SmallplugData(targetEndpoint, params), object : SmallPlugResponseListener { override fun onFailure(errorCode: Int, errorMessage: String) { val err = createErrorJSON(errorCode, errorMessage, null) promise.reject("error", err) @@ -239,7 +249,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun logoutUser(promise: Promise) { - val activity = currentActivity; + val activity = reactApplicationContext.currentActivity if (activity != null) { SmallcaseGatewaySdk.logoutUser(activity = activity, logoutListener = object : SmallcaseLogoutListener { override fun onLogoutSuccessfull() { @@ -256,7 +266,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun triggerLeadGen(userDetails: ReadableMap, utmData: ReadableMap) { - val activity = currentActivity; + val activity = reactApplicationContext.currentActivity if (activity != null) { SmallcaseGatewaySdk.triggerLeadGen(activity = activity, utmParams = readableMapToStrHashMap(utmData), params = readableMapToStrHashMap(userDetails)) } @@ -264,7 +274,7 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun triggerLeadGenWithStatus(userDetails: ReadableMap, promise: Promise) { - val activity = currentActivity + val activity = reactApplicationContext.currentActivity if (activity != null) { SmallcaseGatewaySdk.triggerLeadGen(activity, readableMapToStrHashMap(userDetails), object : LeadGenResponseListener { @@ -277,10 +287,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun triggerLeadGenWithLoginCta(userDetails: ReadableMap, utmData: ReadableMap, showLoginCta: Boolean, promise: Promise) { - if(currentActivity != null) { + val activity = reactApplicationContext.currentActivity + if(activity != null) { SmallcaseGatewaySdk.triggerLeadGen( - activity = currentActivity!!, + activity = activity, params = readableMapToStrHashMap(userDetails), utmParams = readableMapToStrHashMap(utmData), retargeting = null, @@ -295,7 +306,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun setupLoans(config: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(config) val gateway = hashMap["gatewayName"] val environment = hashMap["environment"] @@ -323,7 +337,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun apply(loanConfig: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(loanConfig) val interactionToken = hashMap["interactionToken"] if(interactionToken == null) { @@ -344,7 +361,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun pay(loanConfig: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(loanConfig) val interactionToken = hashMap["interactionToken"] if(interactionToken == null) { @@ -365,7 +385,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun withdraw(loanConfig: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(loanConfig) val interactionToken = hashMap["interactionToken"] if(interactionToken == null) { @@ -386,7 +409,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun service(loanConfig: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(loanConfig) val interactionToken = hashMap["interactionToken"] if(interactionToken == null) { @@ -407,7 +433,10 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte @ReactMethod fun triggerInteraction(loanConfig: ReadableMap, promise: Promise) { - val appCompatActivity = currentActivity as? AppCompatActivity ?: return + val appCompatActivity = reactApplicationContext.currentActivity as? AppCompatActivity ?: run { + promise.reject(Throwable("no activity")) + return + } val hashMap = readableMapToStrHashMap(loanConfig) val interactionToken = hashMap["interactionToken"] if(interactionToken == null) { diff --git a/react-native-smallcase-gateway.podspec b/react-native-smallcase-gateway.podspec index 97040b27..b53f376c 100644 --- a/react-native-smallcase-gateway.podspec +++ b/react-native-smallcase-gateway.podspec @@ -27,7 +27,8 @@ Pod::Spec.new do |s| } s.dependency "React-Codegen" - s.dependency "RCT-Folly" + # RCT-Folly is provided by ReactNativeDependencies in RN 0.81+, so we don't need to declare it + # s.dependency "RCT-Folly" s.dependency "RCTRequired" s.dependency "RCTTypeSafety" s.dependency "ReactCommon/turbomodule/core"