package com.myfatoorahreactnative.googlepay import android.content.Context import android.widget.FrameLayout import com.google.android.gms.wallet.button.ButtonConstants import com.google.android.gms.wallet.button.ButtonOptions import com.google.android.gms.wallet.button.PayButton import com.google.gson.Gson import com.myfatoorah.sdk.entity.googlepay.GooglePayRequest //TODO Remove After SDK Upgrade class MFGooglePayButton(private val context: Context) : FrameLayout(context) { var type = ButtonConstants.ButtonType.PAY var theme = ButtonConstants.ButtonTheme.DARK var cornerRadius = 10 var button: PayButton? = null fun addButton() { if (button != null) { removeView(button) } button = initializeGooglePayButton() addView(button) viewTreeObserver.addOnGlobalLayoutListener { requestLayout() } } private fun initializeGooglePayButton(): PayButton { val googlePayButton = PayButton(context) val googlePayRequest = GooglePayRequest("", "", "", "", "") val options = ButtonOptions.newBuilder() .setAllowedPaymentMethods(Gson().toJson(googlePayRequest.allowedPaymentMethods)) .setButtonType(type) .setButtonTheme(theme) .setCornerRadius(this.cornerRadius) googlePayButton.initialize(options.build()) // googlePayButton.setOnClickListener { _ -> } return googlePayButton } override fun requestLayout() { super.requestLayout() post(mLayoutRunnable) } private val mLayoutRunnable = Runnable { measure( MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY) ) layout(left, top, right, bottom) } }