Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Need Assist] Drop-in screen disappear after clicking the launch icon. #711

Closed
idutka opened this issue May 31, 2022 · 13 comments
Closed

[Need Assist] Drop-in screen disappear after clicking the launch icon. #711

idutka opened this issue May 31, 2022 · 13 comments

Comments

@idutka
Copy link

idutka commented May 31, 2022

Describe the bug
The Drop-In screen disappears after clicking the launch button.

Drop-in 4.2.0 was successfully integrated into React Native application.
I can make a payment, but there is a case that needs to be fixed.

To Reproduce
Steps to reproduce the behavior:

  1. launch app
  2. start payment DropIn.startPayment()
  3. minimise the app
  4. click the launch button
  5. the Drop-In screen is not present

Expected behavior
The Drop-In screen is still present after clicking the launch button

Screenshots
May-31-2022 10-39-19

Additional context
I've reviewed some examples of integration and still don't understand what is missing.

Here is integration module AdyenDropInModule.kt

package com.testpay.adyen.dropin

import android.content.Intent
import android.util.Log
import com.adyen.checkout.card.CardConfiguration
import com.adyen.checkout.components.ActionComponentData
import com.adyen.checkout.components.PaymentComponentState
import com.adyen.checkout.components.model.PaymentMethodsApiResponse
import com.adyen.checkout.components.model.payments.Amount
import com.adyen.checkout.components.model.payments.request.PaymentMethodDetails
import com.adyen.checkout.core.api.Environment
import com.adyen.checkout.dropin.DropIn
import com.adyen.checkout.dropin.DropInConfiguration
import com.adyen.checkout.dropin.service.DropInServiceResult
import com.adyen.checkout.redirect.RedirectComponent
import com.facebook.react.bridge.*
import com.facebook.react.modules.core.DeviceEventManagerModule
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import java.util.*


class AdyenDropInModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) {

  override fun getName(): String {
    return "AdyenDropIn"
  }

  @ReactMethod
  fun startPayment(
    env: String?,
    clientKey: String,
    countryCode: String?,
    shopperLocale: String,
    paymentMethodsJson: String,
    currencyCode: String?,
    amountMinorUnits: Int?
  ) {
    Log.d(TAG, "payment started")

    try {

      val environment: Environment = if (env == null || env.trim { it <= ' ' }.isEmpty()) {
        Environment.TEST
      } else {
        if (env.equals("test", ignoreCase = true)) {
          Environment.TEST
        } else {
          Environment.EUROPE
        }
      }

      val amount = Amount().apply {
        currency = currencyCode
        value = amountMinorUnits!!
      }

      val locale = Locale.Builder()
        .setLanguageTag(shopperLocale)
        .build()

      // Configuration for cards.
      val cardConfiguration = CardConfiguration.Builder(reactApplicationContext, clientKey)
        .setShopperLocale(locale)
        .setHolderNameRequired(true)
        .setEnvironment(environment)
        .build()

      val dropInConfiguration = DropInConfiguration.Builder(reactApplicationContext, AdyenDropInService::class.java, clientKey)
        .setAmount(amount)
        .setShopperLocale(locale)
        .setEnvironment(environment)
        .addCardConfiguration(cardConfiguration)
        .build()

      val paymentMethodsApiResponse = PaymentMethodsApiResponse.SERIALIZER.deserialize(JSONObject(paymentMethodsJson))
      val resultIntent = Intent(this.currentActivity, this.currentActivity!!.javaClass)

      this.currentActivity?.let {
        DropIn.startPayment(it, paymentMethodsApiResponse, dropInConfiguration, resultIntent)
      }
    } catch (e: Exception) {
      e.printStackTrace()
      val resultData: WritableMap = WritableNativeMap()
      resultData.putString("resultCode", "Error")
    }
  }

  @ReactMethod
  fun handleResult(resultCode: String?) {
    try {
      val callResult = DropInServiceResult.Finished(resultCode!!)
      dropInService!!.handleAsyncCallback(callResult)
    } catch (e: Exception) {
      e.printStackTrace()
      val resultData: WritableMap = WritableNativeMap()
      resultData.putString("resultCode", "Error")
      sendEvent(this.reactApplicationContext, "onPaymentResultCode", resultData)
    }
  }

  @ReactMethod
  fun handleAction(actionJson: String?) {
    try {
      val callResult = DropInServiceResult.Action(actionJson!!)
      dropInService!!.handleAsyncCallback(callResult)
    } catch (e: Exception) {
      e.printStackTrace()
      val resultData: WritableMap = WritableNativeMap()
      resultData.putString("resultCode", "Error")
      sendEvent(this.reactApplicationContext, "onPaymentResultCode", resultData)
    }
  }

  @ReactMethod
  fun handleError(message: String?) {
    if (message != null && !message.trim { it <= ' ' }.isEmpty()) {
      val callResult = DropInServiceResult.Error(message)
      dropInService!!.handleAsyncCallback(callResult)
    } else {
      val callResult = DropInServiceResult.Error("")
      dropInService!!.handleAsyncCallback(callResult)
    }
  }

  fun handlePaymentSubmit(paymentComponentState: PaymentComponentState<*>, paymentComponentJson: JSONObject) {
    Log.i(TAG, "handlePaymentSubmit")
    try {
      if (paymentComponentState.isValid) {
        val eventData: WritableMap = WritableNativeMap()
        val data: WritableMap = WritableNativeMap()
        val paymentMethodDetails = paymentComponentState.data.paymentMethod
        val jsonObject = PaymentMethodDetails.SERIALIZER.serialize(paymentMethodDetails!!)

        try {
          val paymentMethodMap = convertJsonToMap(jsonObject)
          data.putMap("paymentMethod", paymentMethodMap)
          data.putBoolean("storePaymentMethod", paymentComponentState.data.isStorePaymentMethodEnable)
          data.putString("returnUrl", RedirectComponent.getReturnUrl(this.currentActivity!!))
        } catch (e: JSONException) {
          e.printStackTrace()
        }
        eventData.putMap("data", data)
        sendEvent(this.reactApplicationContext, "onPaymentSubmit", eventData)
      } else {
        Log.w(TAG, "paymentComponentState is not valid!")
      }
    } catch (e: Exception) {
      e.printStackTrace()
      val resultData: WritableMap = WritableNativeMap()
      resultData.putString("resultCode", "Error")
      sendEvent(this.reactApplicationContext, "onPaymentResultCode", resultData)
    }
  }

  fun handlePaymentDetailsProvide(actionComponentData: ActionComponentData?, actionComponentJson: JSONObject) {
    Log.i(TAG, "handlePaymentDetailsProvide")
    try {
      val data = convertJsonToMap(actionComponentJson)
      val resultData: WritableMap = WritableNativeMap()
      resultData.putMap("data", data)
      sendEvent(this.reactApplicationContext, "onPaymentDetailsProvide", resultData)
    } catch (e: Exception) {
      e.printStackTrace()
      val resultData: WritableMap = WritableNativeMap()
      resultData.putString("resultCode", "Error")
      sendEvent(this.reactApplicationContext, "onPaymentResultCode", resultData)
    }
  }

  private fun sendEvent(reactContext: ReactContext,
                        eventName: String,
                        params: WritableMap?) {
    reactContext
      .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
      .emit(eventName, params)
  }

  init {
    INSTANCE = this
  }

  companion object {
    private const val TAG = "AdyenDropInModule"
    var INSTANCE: AdyenDropInModule? = null
    var dropInService: AdyenDropInService? = null

    @Throws(JSONException::class)
    fun convertJsonToMap(jsonObject: JSONObject): WritableMap {
      val map: WritableMap = WritableNativeMap()
      val iterator = jsonObject.keys()
      while (iterator.hasNext()) {
        val key = iterator.next()
        val value = jsonObject[key]
        if (value is JSONObject) {
          map.putMap(key, convertJsonToMap(value))
        } else if (value is JSONArray) {
          map.putArray(key, convertJsonToArray(value))
        } else if (value is Boolean) {
          map.putBoolean(key, value)
        } else if (value is Int) {
          map.putInt(key, value)
        } else if (value is Double) {
          map.putDouble(key, value)
        } else if (value is String) {
          map.putString(key, value)
        } else {
          map.putString(key, value.toString())
        }
      }
      return map
    }

    @Throws(JSONException::class)
    fun convertJsonToArray(array: JSONArray): WritableArray {
      val result = WritableNativeArray()
      for (i in 0 until array.length()) {
        val value = array[i]
        if (value is JSONObject) {
          result.pushMap(convertJsonToMap(value))
        } else if (value is JSONArray) {
          result.pushArray(convertJsonToArray(value))
        } else if (value is Boolean) {
          result.pushBoolean(value)
        } else if (value is Int) {
          result.pushInt(value)
        } else if (value is Double) {
          result.pushDouble(value)
        } else if (value is String) {
          result.pushString(value)
        } else {
          result.pushString(value.toString())
        }
      }
      return result
    }
  }
}

Logs

D/AdyenDropInModule: payment started
V/FA: Activity paused, time: 82334599
V/FA: onActivityCreated
V/FA: Activity resumed, time: 82334837
V/FA: Activity paused, time: 82340650
I/ReactNativeJNI: Memory warning (pressure level: TRIM_MEMORY_UI_HIDDEN) received by JS VM, ignoring because it's non-severe
D/FA: Application going to the background
V/FA: Recording user engagement, ms: 770325
V/FA: Using local app measurement service
V/FA: Local AppMeasurementService is starting up
V/FA: Bound to IMeasurementService interface
V/FA: Connection attempt already in progress
V/FA: Connected to service
V/FA: Processing queued up service tasks: 2
V/FA: Logging event: origin=auto,name=user_engagement(_e),params=Bundle[{ga_event_origin(_o)=auto, engagement_time_msec(_et)=770325}]
D/FA: Unable to get advertising id: com.google.android.gms.common.GooglePlayServicesNotAvailableException: com.google.android.gms.measurement.internal.zzkg.zza(com.google.android.gms:play-services-measurement@@21.0.0:24)
V/FA: Upload scheduled in approximately ms: 2829967
V/FA: Unscheduling upload
V/FA: Scheduling upload, millis: 2829967
V/FA: Background event processing time, ms: 25
V/FA: Logging event: origin=auto,name=app_background(_ab),params=Bundle[{ga_event_origin(_o)=auto}]
V/FA: Upload scheduled in approximately ms: 2829927
V/FA: Unscheduling upload
V/FA: Scheduling upload, millis: 2829927
V/FA: Background event processing time, ms: 23
V/FA: Inactivity, disconnecting from the service
V/FA: onUnbind called for intent. action: com.google.android.gms.measurement.START
V/FA: Local AppMeasurementService is shutting down
V/FA: Activity resumed, time: 82350432
@jreij
Copy link
Collaborator

jreij commented May 31, 2022

Hi, thanks for reaching out. Can you retry the same scenario but resume the app from the recent apps screen instead of the launcher icon?

@idutka
Copy link
Author

idutka commented May 31, 2022

@jreij
In this case, everything works as expected.
May-31-2022 11-36-51

@jreij
Copy link
Collaborator

jreij commented May 31, 2022

I think your activity is being recreated when the launcher icon is clicked. Can you log its lifecycle method calls? Like onCreate, onResume, onStop, onDestroy etc. It might show you what is happening.
Furthermore, check your activity's launchMode in the manifest file. For example singleTask is known to cause similar issue.

@idutka
Copy link
Author

idutka commented May 31, 2022

Yes, I have android:launchMode="singleTask" in the manifest file. But it should be singleTask as it is React Native app. If I put another value (for example singleTop) it fixes the current issue but causes other issues with a redirect.

FYI, This issue is also can be reproduced on the official React Native Example https://github.com/Adyen/adyen-react-native. We are not using adyen-react-native since it is in BETA.

@jreij
Copy link
Collaborator

jreij commented Jun 1, 2022

Hmm ok in that case can you log your activity's lifecycle method calls? Should give us a hint on what's happening.

@idutka
Copy link
Author

idutka commented Jun 1, 2022

Sure,
Here is MainActivity.java

package com.testpay;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {
  @Override
  protected String getMainComponentName() {
    return "MyApp";
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.i("MainActivity", "onCreate()");
  }

  @Override
  protected void onPause() {
    super.onPause();
    Log.i("MainActivity", "onPause()");
  }

  @Override
  protected void onResume() {
    super.onResume();
    Log.i("MainActivity", "onResume()");
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    Log.i("MainActivity", "onDestroy()");
  }

  @Override
  public void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Log.i("MainActivity", "onNewIntent()");
  }
}

Logs for the flow described above:

2022-06-01 11:16:46.817 14823-14823/? I/pay.developmen: Not late-enabling -Xcheck:jni (already on)
2022-06-01 11:16:46.877 14823-14823/? I/pay.developmen: Unquickening 12 vdex files!
2022-06-01 11:16:46.882 14823-14823/? W/pay.developmen: Unexpected CPU variant for X86 using defaults: x86
2022-06-01 11:16:46.982 14823-14823/com.testpay.development I/pay.developmen: The ClassLoaderContext is a special shared library.
2022-06-01 11:16:48.206 14823-14823/com.testpay.development D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2022-06-01 11:16:48.207 14823-14823/com.testpay.development D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2022-06-01 11:16:48.262 14823-14823/com.testpay.development I/FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT]
2022-06-01 11:16:48.286 14823-14823/com.testpay.development I/FirebaseCrashlytics: Initializing Firebase Crashlytics 18.2.10 for com.testpay.development
2022-06-01 11:16:48.344 14823-14848/com.testpay.development I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:73 and remote module com.google.android.gms.measurement.dynamite:13
2022-06-01 11:16:48.344 14823-14848/com.testpay.development I/DynamiteModule: Selected local version of com.google.android.gms.measurement.dynamite
2022-06-01 11:16:48.429 14823-14849/com.testpay.development D/libcrashlytics: Initializing libcrashlytics version 3.2.0
2022-06-01 11:16:48.442 14823-14823/com.testpay.development I/FirebaseInitProvider: FirebaseApp initialization successful
2022-06-01 11:16:48.447 14823-14823/com.testpay.development D/ReactNativeFirebaseApp: received application context.
2022-06-01 11:16:48.458 14823-14849/com.testpay.development D/libcrashlytics: Initializing native crash handling successful.
2022-06-01 11:16:48.468 14823-14823/com.testpay.development D/RNFBCrashlyticsInit: isCrashlyticsCollectionEnabled via RNFBMeta: true
2022-06-01 11:16:48.469 14823-14823/com.testpay.development D/RNFBCrashlyticsInit: isCrashlyticsCollectionEnabled after checking crashlytics_debug_enabled: false
2022-06-01 11:16:48.469 14823-14823/com.testpay.development D/RNFBCrashlyticsInit: isCrashlyticsCollectionEnabled final value: false
2022-06-01 11:16:48.472 14823-14823/com.testpay.development I/RNFBCrashlyticsInit: initialization successful
2022-06-01 11:16:48.524 14823-14823/com.testpay.development W/com.facebook.UserSettingsManager: Please set a value for AutoLogAppEventsEnabled. Set the flag to TRUE if you want to collect app install, app launch and in-app purchase events automatically. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-android#disable-auto-events.
2022-06-01 11:16:48.524 14823-14823/com.testpay.development W/com.facebook.UserSettingsManager: You haven't set a value for AdvertiserIDCollectionEnabled. Set the flag to TRUE if you want to collect Advertiser ID for better advertising and analytics results. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-android#disable-auto-events.
2022-06-01 11:16:48.527 14823-14851/com.testpay.development V/FA: App measurement collection enabled
2022-06-01 11:16:48.527 14823-14851/com.testpay.development V/FA: App measurement enabled for app package, google app id: com.testpay.development, 1:725009007294:android:32acaf80e39b06202014ef
2022-06-01 11:16:48.528 14823-14851/com.testpay.development I/FA: App measurement initialized, version: 64000
2022-06-01 11:16:48.528 14823-14851/com.testpay.development I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
2022-06-01 11:16:48.528 14823-14851/com.testpay.development I/FA: To enable faster debug mode event logging run:
      adb shell setprop debug.firebase.analytics.app com.testpay.development
2022-06-01 11:16:48.528 14823-14851/com.testpay.development D/FA: Debug-level message logging enabled
2022-06-01 11:16:48.620 14823-14823/com.testpay.development V/fb-UnpackingSoSource: locked dso store /data/user/0/com.testpay.development/lib-main
2022-06-01 11:16:48.621 14823-14851/com.testpay.development V/FA: Checking service availability
2022-06-01 11:16:48.622 14823-14823/com.testpay.development I/fb-UnpackingSoSource: dso store is up-to-date: /data/user/0/com.testpay.development/lib-main
2022-06-01 11:16:48.623 14823-14823/com.testpay.development V/fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.testpay.development/lib-main
2022-06-01 11:16:48.629 14823-14851/com.testpay.development W/GooglePlayServicesUtil: com.testpay.development requires the Google Play Store, but it is missing.
2022-06-01 11:16:48.629 14823-14851/com.testpay.development W/FA: Service invalid
2022-06-01 11:16:48.634 14823-14851/com.testpay.development V/FA: Using local app measurement service
2022-06-01 11:16:48.658 14823-14851/com.testpay.development V/FA: Connection attempt already in progress
2022-06-01 11:16:48.676 14823-14851/com.testpay.development V/FA: Connection attempt already in progress
2022-06-01 11:16:48.680 14823-14876/com.testpay.development W/GooglePlayServicesUtil: com.testpay.development requires the Google Play Store, but it is missing.
2022-06-01 11:16:48.756 14823-14823/com.testpay.development D/SoLoader: libjscexecutor.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:48.756 14823-14823/com.testpay.development D/SoLoader: libjscexecutor.so not found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:48.757 14823-14823/com.testpay.development D/SoLoader: libjscexecutor.so not found on /vendor/lib
2022-06-01 11:16:48.757 14823-14823/com.testpay.development D/SoLoader: libjscexecutor.so not found on /system/lib
2022-06-01 11:16:48.759 14823-14823/com.testpay.development E/SoLoader: couldn't find DSO to load: libjscexecutor.so
    	SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/data/com.testpay.development/lib-main flags = 1]
    	SoSource 1: com.facebook.soloader.DirectorySoSource[root = /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86 flags = 0]
    	SoSource 2: com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
    	SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
    	Native lib dir: /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
     result: 0
2022-06-01 11:16:48.761 14823-14823/com.testpay.development D/SoLoader: libhermes.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:48.761 14823-14823/com.testpay.development D/SoLoader: libhermes.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:48.761 14823-14823/com.testpay.development D/SoLoader: Not resolving dependencies for libhermes.so
2022-06-01 11:16:48.872 14823-14823/com.testpay.development D/SoLoader: libhermes-executor-debug.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:48.873 14823-14823/com.testpay.development D/SoLoader: libhermes-executor-debug.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:48.873 14823-14823/com.testpay.development D/SoLoader: Not resolving dependencies for libhermes-executor-debug.so
2022-06-01 11:16:49.211 14823-14867/com.testpay.development W/GooglePlayServicesUtil: com.testpay.development requires the Google Play Store, but it is missing.
2022-06-01 11:16:49.289 14823-14884/com.testpay.development D/SoLoader: libfbjni.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:49.289 14823-14884/com.testpay.development D/SoLoader: libfbjni.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:49.289 14823-14884/com.testpay.development D/SoLoader: Not resolving dependencies for libfbjni.so
2022-06-01 11:16:49.290 14823-14884/com.testpay.development D/SoLoader: libflipper.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:49.290 14823-14884/com.testpay.development D/SoLoader: libflipper.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:49.290 14823-14884/com.testpay.development D/SoLoader: Not resolving dependencies for libflipper.so
2022-06-01 11:16:49.366 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden field Landroid/view/View;->mKeyedTags:Landroid/util/SparseArray; (greylist, reflection, allowed)
2022-06-01 11:16:49.366 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden field Landroid/view/View;->mListenerInfo:Landroid/view/View$ListenerInfo; (greylist, reflection, allowed)
2022-06-01 11:16:49.366 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden field Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener; (greylist, reflection, allowed)
2022-06-01 11:16:49.382 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin Inspector
2022-06-01 11:16:49.383 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin React
2022-06-01 11:16:49.387 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin Databases
2022-06-01 11:16:49.395 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin Preferences
2022-06-01 11:16:49.396 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin CrashReporter
2022-06-01 11:16:49.402 14823-14823/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin Network
2022-06-01 11:16:49.422 14823-14904/com.testpay.development D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so
2022-06-01 11:16:49.426 14823-14904/com.testpay.development D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so
2022-06-01 11:16:49.427 14823-14884/com.testpay.development W/System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
2022-06-01 11:16:49.427 14823-14884/com.testpay.development W/System.err: SLF4J: Defaulting to no-operation (NOP) logger implementation
2022-06-01 11:16:49.427 14823-14884/com.testpay.development W/System.err: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2022-06-01 11:16:49.432 14823-14904/com.testpay.development D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so
2022-06-01 11:16:49.498 14823-14848/com.testpay.development V/FA: onActivityCreated
2022-06-01 11:16:49.552 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2022-06-01 11:16:49.553 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2022-06-01 11:16:49.556 14823-14823/com.testpay.development I/MainActivity: onCreate()
2022-06-01 11:16:49.562 14823-14851/com.testpay.development V/FA: Activity resumed, time: 116848383
2022-06-01 11:16:49.568 14823-14823/com.testpay.development I/MainActivity: onResume()
2022-06-01 11:16:49.595 14823-14823/com.testpay.development V/FA: Local AppMeasurementService is starting up
2022-06-01 11:16:49.641 14823-14823/com.testpay.development W/unknown:ReactNative: Packager connection already open, nooping.
2022-06-01 11:16:49.717 14823-14902/com.testpay.development D/HostConnection: HostConnection::get() New Host Connection established 0xe9722130, tid 14902
2022-06-01 11:16:49.764 14823-14851/com.testpay.development I/TetheringManager: registerTetheringEventCallback:com.testpay.development
2022-06-01 11:16:49.770 14823-14851/com.testpay.development V/FA: Upload scheduled in approximately ms: 3358012
2022-06-01 11:16:49.771 14823-14851/com.testpay.development V/FA: Unscheduling upload
2022-06-01 11:16:49.773 14823-14851/com.testpay.development V/FA: Scheduling upload, millis: 3358012
2022-06-01 11:16:49.834 14823-14902/com.testpay.development D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer ANDROID_EMU_sync_buffer_data GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_3_0
2022-06-01 11:16:49.840 14823-14902/com.testpay.development W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
2022-06-01 11:16:49.843 14823-14902/com.testpay.development D/EGL_emulation: eglCreateContext: 0xe9721f00: maj 3 min 0 rcv 3
2022-06-01 11:16:49.845 14823-14902/com.testpay.development D/EGL_emulation: eglMakeCurrent: 0xe9721f00: ver 3 0 (tinfo 0xe9a7a630) (first time)
2022-06-01 11:16:49.869 14823-14902/com.testpay.development I/Gralloc4: mapper 4.x is not supported
2022-06-01 11:16:49.873 14823-14902/com.testpay.development D/HostConnection: createUnique: call
2022-06-01 11:16:49.874 14823-14902/com.testpay.development D/HostConnection: HostConnection::get() New Host Connection established 0xe9724660, tid 14902
2022-06-01 11:16:49.875 14823-14902/com.testpay.development D/goldfish-address-space: allocate: Ask for block of size 0x100
2022-06-01 11:16:49.875 14823-14902/com.testpay.development D/goldfish-address-space: allocate: ioctl allocate returned offset 0x3ff6ca000 size 0x2000
2022-06-01 11:16:49.941 14823-14902/com.testpay.development D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer ANDROID_EMU_sync_buffer_data GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_3_0
2022-06-01 11:16:49.987 14823-14823/com.testpay.development V/FA: Bound to IMeasurementService interface
2022-06-01 11:16:49.987 14823-14851/com.testpay.development V/FA: Connected to service
2022-06-01 11:16:49.988 14823-14851/com.testpay.development V/FA: Processing queued up service tasks: 3
2022-06-01 11:16:49.989 14823-14851/com.testpay.development V/FA: Storage concurrent access okay
2022-06-01 11:16:50.077 14823-14867/com.testpay.development W/GooglePlayServicesUtil: com.testpay.development requires the Google Play Store, but it is missing.
2022-06-01 11:16:50.077 14823-14851/com.testpay.development V/FA: Parsed config. version, gmp_app_id: 1650315334334765, 1:725009007294:android:32acaf80e39b06202014ef
2022-06-01 11:16:50.103 14823-14851/com.testpay.development D/FA: Unable to get advertising id: com.google.android.gms.common.GooglePlayServicesNotAvailableException: com.google.android.gms.measurement.internal.zzkg.zza(com.google.android.gms:play-services-measurement@@21.0.0:24)
2022-06-01 11:16:50.242 14823-14868/com.testpay.development E/GraphResponse: {HttpStatus: 400, errorCode: 100, subErrorCode: 33, errorType: GraphMethodException, errorMessage: Unsupported get request. Object with ID '185405823427982' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api}
2022-06-01 11:16:50.249 14823-14851/com.testpay.development V/FA: Saving default event parameters, appId, data size: com.testpay.development, 49
2022-06-01 11:16:50.374 14823-14888/com.testpay.development D/SoLoader: libreactnativejni.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:50.374 14823-14888/com.testpay.development D/SoLoader: libreactnativejni.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:50.374 14823-14888/com.testpay.development D/SoLoader: Not resolving dependencies for libreactnativejni.so
2022-06-01 11:16:50.571 14823-14837/com.testpay.development I/pay.developmen: Background concurrent copying GC freed 25766(2727KB) AllocSpace objects, 19(508KB) LOS objects, 49% free, 8620KB/16MB, paused 722us total 334.342ms
2022-06-01 11:16:50.649 14823-14911/com.testpay.development D/InstallReferrerState: FEATURE_NOT_SUPPORTED
2022-06-01 11:16:50.817 14823-14911/com.testpay.development I/EngineFactory: Provider GmsCore_OpenSSL not available
2022-06-01 11:16:51.869 14823-14911/com.testpay.development W/unknown:ReactContext: initializeMessageQueueThreads() is called.
2022-06-01 11:16:51.881 14823-14823/com.testpay.development W/unknown:ReactNative: Packager connection already open, nooping.
2022-06-01 11:16:51.942 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.drawer.ReactDrawerLayoutManager
2022-06-01 11:16:51.950 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.uimanager.LayoutShadowNode
2022-06-01 11:16:51.955 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.scroll.ReactHorizontalScrollViewManager
2022-06-01 11:16:51.957 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager
2022-06-01 11:16:51.958 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.progressbar.ReactProgressBarViewManager
2022-06-01 11:16:51.960 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.progressbar.ProgressBarShadowNode
2022-06-01 11:16:51.961 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.scroll.ReactScrollViewManager
2022-06-01 11:16:51.963 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.slider.ReactSliderManager
2022-06-01 11:16:51.966 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.slider.ReactSliderManager$ReactSliderShadowNode
2022-06-01 11:16:51.966 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager
2022-06-01 11:16:51.968 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode
2022-06-01 11:16:51.968 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager
2022-06-01 11:16:51.969 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager
2022-06-01 11:16:51.970 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode
2022-06-01 11:16:51.973 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.image.ReactImageManager
2022-06-01 11:16:51.977 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.modal.ReactModalHostManager
2022-06-01 11:16:51.981 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.modal.ModalHostShadowNode
2022-06-01 11:16:51.983 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactRawTextManager
2022-06-01 11:16:51.986 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactRawTextShadowNode
2022-06-01 11:16:51.987 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputManager
2022-06-01 11:16:51.993 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputShadowNode
2022-06-01 11:16:51.997 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactTextViewManager
2022-06-01 11:16:52.006 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactTextShadowNode
2022-06-01 11:16:52.007 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.view.ReactViewManager
2022-06-01 11:16:52.010 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextViewManager
2022-06-01 11:16:52.011 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextShadowNode
2022-06-01 11:16:52.015 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager
2022-06-01 11:16:52.016 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.reactnativecommunity.picker.ReactDialogPickerManager
2022-06-01 11:16:52.018 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.reactnativecommunity.picker.ReactPickerShadowNode
2022-06-01 11:16:52.021 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.reactnativecommunity.picker.ReactDropdownPickerManager
2022-06-01 11:16:52.022 14823-14920/com.testpay.development W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.airbnb.android.react.lottie.LottieAnimationViewManager
2022-06-01 11:16:52.043 14823-14920/com.testpay.development W/unknown:ReactContext: initializeMessageQueueThreads() is called.
2022-06-01 11:16:52.053 14823-14920/com.testpay.development D/SoLoader: libyoga.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:52.053 14823-14920/com.testpay.development D/SoLoader: libyoga.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:52.054 14823-14920/com.testpay.development D/SoLoader: Not resolving dependencies for libyoga.so
2022-06-01 11:16:52.169 14823-14920/com.testpay.development W/GooglePlayServicesUtil: com.testpay.development requires the Google Play Store, but it is missing.
2022-06-01 11:16:52.190 14823-14920/com.testpay.development I/flipper: flipper: FlipperClient::addPlugin Fresco
2022-06-01 11:16:52.402 14823-14919/com.testpay.development D/SoLoader: libreactnativeblob.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:52.403 14823-14919/com.testpay.development D/SoLoader: libreactnativeblob.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:52.403 14823-14919/com.testpay.development D/SoLoader: Not resolving dependencies for libreactnativeblob.so
2022-06-01 11:16:52.439 14823-14920/com.testpay.development I/WebViewFactory: Loading com.google.android.webview version 83.0.4103.106 (code 410410681)
2022-06-01 11:16:52.562 14823-14919/com.testpay.development W/ReactNativeJS: `new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.
2022-06-01 11:16:52.563 14823-14919/com.testpay.development W/ReactNativeJS: `new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.
2022-06-01 11:16:52.707 14823-14920/com.testpay.development I/cr_LibraryLoader: Loaded native library version number "83.0.4103.106"
2022-06-01 11:16:52.709 14823-14920/com.testpay.development I/cr_CachingUmaRecorder: Flushed 3 samples from 3 histograms.
2022-06-01 11:16:53.073 14823-14919/com.testpay.development I/ReactNativeJS: Running "MyApp" with {"rootTag":1}
2022-06-01 11:16:53.310 14823-14823/com.testpay.development W/pay.developmen: Accessing hidden field Landroid/widget/ScrollView;->mScroller:Landroid/widget/OverScroller; (greylist, reflection, allowed)
2022-06-01 11:16:53.600 14823-14938/com.testpay.development D/SoLoader: libimagepipeline.so not found on /data/data/com.testpay.development/lib-main
2022-06-01 11:16:53.601 14823-14938/com.testpay.development D/SoLoader: libimagepipeline.so found on /data/app/~~96dUo9u07LcG8B_La3YhVA==/com.testpay.development-KGql5TNOJXRXSq68Lbj9eQ==/lib/x86
2022-06-01 11:16:53.601 14823-14938/com.testpay.development D/SoLoader: Not resolving dependencies for libimagepipeline.so
2022-06-01 11:16:55.241 14823-14851/com.testpay.development V/FA: Inactivity, disconnecting from the service
2022-06-01 11:16:55.253 14823-14823/com.testpay.development V/FA: onUnbind called for intent. action: com.google.android.gms.measurement.START
2022-06-01 11:16:55.255 14823-14823/com.testpay.development V/FA: Local AppMeasurementService is shutting down
2022-06-01 11:17:14.853 14823-14919/com.testpay.development I/ReactNativeJS: -----
2022-06-01 11:17:14.872 14823-14920/com.testpay.development D/AdyenDropInModule: payment started
2022-06-01 11:17:14.925 14823-14851/com.testpay.development V/FA: Activity paused, time: 116873746
2022-06-01 11:17:14.931 14823-14823/com.testpay.development I/MainActivity: onPause()
2022-06-01 11:17:14.975 14823-14848/com.testpay.development V/FA: onActivityCreated
2022-06-01 11:17:15.144 14823-14851/com.testpay.development V/FA: Activity resumed, time: 116873965
2022-06-01 11:17:15.468 14823-14837/com.testpay.development I/pay.developmen: NativeAlloc concurrent copying GC freed 74672(9605KB) AllocSpace objects, 20(1168KB) LOS objects, 49% free, 5846KB/11MB, paused 3.489ms total 184.964ms
2022-06-01 11:17:17.615 14823-14851/com.testpay.development V/FA: Activity paused, time: 116876436
2022-06-01 11:17:18.429 14823-14919/com.testpay.development I/ReactNativeJNI: Memory warning (pressure level: TRIM_MEMORY_UI_HIDDEN) received by JS VM, ignoring because it's non-severe
2022-06-01 11:17:19.637 14823-14851/com.testpay.development D/FA: Application going to the background
2022-06-01 11:17:19.639 14823-14851/com.testpay.development V/FA: Recording user engagement, ms: 29225
2022-06-01 11:17:19.640 14823-14851/com.testpay.development I/FA: Tag Manager is not found and thus will not be used
2022-06-01 11:17:19.671 14823-14851/com.testpay.development V/FA: Using local app measurement service
2022-06-01 11:17:19.675 14823-14823/com.testpay.development V/FA: Local AppMeasurementService is starting up
2022-06-01 11:17:19.677 14823-14823/com.testpay.development V/FA: Bound to IMeasurementService interface
2022-06-01 11:17:19.703 14823-14851/com.testpay.development V/FA: Connection attempt already in progress
2022-06-01 11:17:19.704 14823-14851/com.testpay.development V/FA: Connected to service
2022-06-01 11:17:19.705 14823-14851/com.testpay.development V/FA: Processing queued up service tasks: 2
2022-06-01 11:17:19.728 14823-14851/com.testpay.development V/FA: Logging event: origin=auto,name=user_engagement(_e),params=Bundle[{ga_event_origin(_o)=auto, engagement_time_msec(_et)=29225, uudid=bbec9b53-e26e-46fe-ba45-ef19d73ba859}]
2022-06-01 11:17:19.732 14823-14851/com.testpay.development D/FA: Unable to get advertising id: com.google.android.gms.common.GooglePlayServicesNotAvailableException: com.google.android.gms.measurement.internal.zzkg.zza(com.google.android.gms:play-services-measurement@@21.0.0:24)
2022-06-01 11:17:19.762 14823-14851/com.testpay.development V/FA: Upload scheduled in approximately ms: 3328019
2022-06-01 11:17:19.764 14823-14851/com.testpay.development V/FA: Unscheduling upload
2022-06-01 11:17:19.771 14823-14851/com.testpay.development V/FA: Scheduling upload, millis: 3328019
2022-06-01 11:17:19.777 14823-14851/com.testpay.development V/FA: Background event processing time, ms: 50
2022-06-01 11:17:19.803 14823-14851/com.testpay.development V/FA: Logging event: origin=auto,name=app_background(_ab),params=Bundle[{ga_event_origin(_o)=auto, uudid=bbec9b53-e26e-46fe-ba45-ef19d73ba859}]
2022-06-01 11:17:19.826 14823-14823/com.testpay.development I/MainActivity: onNewIntent()
2022-06-01 11:17:19.834 14823-14851/com.testpay.development V/FA: Upload scheduled in approximately ms: 3327947
2022-06-01 11:17:19.837 14823-14823/com.testpay.development I/MainActivity: onResume()
2022-06-01 11:17:19.840 14823-14851/com.testpay.development V/FA: Unscheduling upload
2022-06-01 11:17:19.849 14823-14851/com.testpay.development V/FA: Scheduling upload, millis: 3327947
2022-06-01 11:17:19.858 14823-14851/com.testpay.development V/FA: Background event processing time, ms: 55
2022-06-01 11:17:19.905 14823-14851/com.testpay.development V/FA: Activity resumed, time: 116878650
2022-06-01 11:17:24.909 14823-14851/com.testpay.development V/FA: Inactivity, disconnecting from the service
2022-06-01 11:17:24.916 14823-14823/com.testpay.development V/FA: onUnbind called for intent. action: com.google.android.gms.measurement.START
2022-06-01 11:17:24.918 14823-14823/com.testpay.development V/FA: Local AppMeasurementService is shutting down

@OscarSpruit
Copy link
Contributor

Chiming in for a bit. This is the default behaviour of launchMode:singleTask and we can't do much about it. The behaviour is described in this post.

Translating that to your case:

After starting drop-in your stack looks like this:
MainActivity -> DropInActivity (which houses the bottom sheet)

Putting the app in the background and opening it with the launch icon will re-launch MainActivity and destroy the rest of the stack (only DropInActivity in this case). So you are left with only:
MainActivity

Now, I know this doesn't fix your problem, but I hope it helps you understand it better

@idutka
Copy link
Author

idutka commented Jun 1, 2022

Thanks for the clarification.

So, there is no way to fix this behaviour on ReactNative app, as RN requires launchMode:singleTask, right?

As I understand, this behaviour can be avoided by using the Adyen Component instead of Drop-in.

@OscarSpruit
Copy link
Contributor

I'm not familiar with RN and a quick google didn't result in anything, so I don't know if this can be fixed. IMO RN should be able to work with other launch modes, but if you say it doesn't I believe you.

Yes, you should be able to work around this by using Components. Note that it might be significantly more difficult based on which and how many components you need.

@ianwhite2
Copy link

@idutka - I am also having the same issue , were you able to fix the issue ?

@jreij
Copy link
Collaborator

jreij commented Jan 4, 2023

Closing this issue for inactivity, please reopen it if you feel like your questions are not yet answered.

@Cattari
Copy link

Cattari commented Apr 19, 2023

@jreij Guys, is that possible to run drop-in UI in NOT in the separate activity? We want to use Drop-In but in the same MainActivity. Or we should rewrite it by ourselves to achieve that?

@jreij
Copy link
Collaborator

jreij commented Apr 19, 2023

hi @Cattari, unfortunately Drop-in is only supported as a standalone activity that we launch on top of your app, if you'd like to have more control over it you'll need to use standalone Components and display the list of payment methods however you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants