Skip to content
Last updated

Create Instance

TapToPaySdk.createInstance(tyroEnv, appContext, options)

In your Application class create an instance of the TapToPaySdk by invoking static method TapToPaySdk.createInstance(tyroEnv, appContext, options) in onCreate().

Parameters

tyroEnvTyroEnvrequired

The TyroEnv requires the PosInfo and ConnectionProvider in the constructor. There are 3 TyroEnv subclasses to use based on the desired environment: TyroEnvStub, TyroEnvDev, and TyroEnvProd.

applicationContextContextrequired

The applicationContext from the Application. This function must be called inside onCreate() otherwise the context is null.

optionsTyroOptions

Options to configure the SDK such as screen orientation.

TyroEnv

See TyroEnv for more info.

TyroOptions

Optional parameters to provide to the SDK.

screenOrientationTyroScreenOrientation

Sets the screen orientation for Tyro UI. For smaller devices like mobile phone, only PORTRAIT is supported.

Enum"PORTRAIT""REVERSE_PORTRAIT""SENSOR""LANDSCAPE""REVERSE_LANDSCAPE"
themeModeTyroThemeMode

Sets the theme mode for Tyro UI. Defaults to SYSTEM.

Enum"LIGHT""DARK""SYSTEM"
hapticFeedbackEnabledBoolean

Enables the haptic feedback for Tyro Embedded Payment SDK. Defaults to true.

Example Implementation

Create an instance of the TapToPaySdk in your Application class.

// Kotlin Sample Code
import android.app.Application
import com.tyro.taptopay.sdk.api.TapToPaySdk
import com.tyro.taptopay.sdk.api.TapToPaySdk.Companion.createInstance
import com.tyro.taptopay.sdk.api.TyroEnv
import com.tyro.taptopay.sdk.api.TyroEnvDev
import com.tyro.taptopay.sdk.api.TyroEnvProd
import com.tyro.taptopay.sdk.api.TyroEnvStub
import com.tyro.taptopay.sdk.api.TyroOptions
import com.tyro.taptopay.sdk.api.TyroScreenOrientation
import com.tyro.taptopay.sdk.api.data.PosInfo

class SdkDemoApplication : Application() {
    lateinit var tapToPaySDK: TapToPaySdk

    override fun onCreate() {
        super.onCreate()
        tapToPaySDK = createTapToPaySdk()
    }

    @Suppress("KotlinConstantConditions")
    private fun createTapToPaySdk(): TapToPaySdk {
        val tyroEnv: TyroEnv =
            when (BuildConfig.FLAVOR) {
                "stub" -> TyroEnvStub()
                "dev" ->
                    TyroEnvDev(
                        connectionProvider = SdkDemoConnectionProvider(),
                    )
                else ->
                    TyroEnvProd(
                        connectionProvider = SdkDemoConnectionProvider(),
                    )
            }
        return createInstance(tyroEnv, applicationContext, TyroOptions(TyroScreenOrientation.PORTRAIT, TyroThemeMode.SYSTEM, hapticFeedbackEnabled = true)).apply {
            setPosInfo(
                PosInfo(
                    posName = "Demo",
                    posVendor = "Tyro Payments",
                    posVersion = "1.0",
                    siteReference = "Sydney",
                ),
            )
        }
    }
}