Fix
This commit is contained in:
parent
3a9355aff4
commit
424a96c3fc
@ -1,21 +1,16 @@
|
|||||||
package ru.yoomoney.sdk.kassa.payments.flutter
|
package ru.yoomoney.sdk.kassa.payments.flutter
|
||||||
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.annotation.NonNull
|
import androidx.annotation.NonNull
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
|
||||||
import io.flutter.embedding.engine.FlutterEngine
|
|
||||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||||
import io.flutter.plugin.common.MethodCall
|
import io.flutter.plugin.common.MethodCall
|
||||||
import io.flutter.plugin.common.MethodChannel
|
import io.flutter.plugin.common.MethodChannel
|
||||||
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
||||||
import io.flutter.plugin.common.MethodChannel.Result
|
import io.flutter.plugin.common.MethodChannel.Result
|
||||||
import io.flutter.plugin.common.PluginRegistry
|
|
||||||
import io.flutter.plugin.common.PluginRegistry.Registrar
|
|
||||||
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
||||||
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
||||||
import java.io.StringReader
|
import java.io.StringReader
|
||||||
@ -24,7 +19,7 @@ import java.util.Currency
|
|||||||
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.Amount
|
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.Amount
|
||||||
import ru.yoomoney.sdk.kassa.payments.Checkout
|
import ru.yoomoney.sdk.kassa.payments.Checkout
|
||||||
import ru.yoomoney.sdk.kassa.payments.ui.color.ColorScheme
|
import ru.yoomoney.sdk.kassa.payments.ui.color.ColorScheme
|
||||||
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.HostParameters;
|
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.HostParameters
|
||||||
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.GooglePayParameters
|
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.GooglePayParameters
|
||||||
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.GooglePayCardNetwork
|
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.GooglePayCardNetwork
|
||||||
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.MockConfiguration
|
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.MockConfiguration
|
||||||
@ -39,7 +34,7 @@ import ru.yoomoney.sdk.kassa.payments.checkoutParameters.UiParameters
|
|||||||
private const val CANCELED_RESULT = "{\"status\":\"canceled\"}"
|
private const val CANCELED_RESULT = "{\"status\":\"canceled\"}"
|
||||||
private const val ERROR_RESULT = "{\"status\":\"error\"}"
|
private const val ERROR_RESULT = "{\"status\":\"error\"}"
|
||||||
|
|
||||||
class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, PluginRegistry.ActivityResultListener {
|
class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityAware {
|
||||||
|
|
||||||
private lateinit var flutterResult: Result
|
private lateinit var flutterResult: Result
|
||||||
private lateinit var channel : MethodChannel
|
private lateinit var channel : MethodChannel
|
||||||
@ -129,7 +124,19 @@ class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityA
|
|||||||
activity.startActivityForResult(intent, REQUEST_CODE_TOKENIZE)
|
activity.startActivityForResult(intent, REQUEST_CODE_TOKENIZE)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
|
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
|
||||||
|
channel.setMethodCallHandler(null)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
|
||||||
|
activity = binding.activity
|
||||||
|
binding.addActivityResultListener { requestCode, resultCode, data ->
|
||||||
|
handleActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
|
this.binding = binding
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun handleActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
|
||||||
if (requestCode == REQUEST_CODE_TOKENIZE) {
|
if (requestCode == REQUEST_CODE_TOKENIZE) {
|
||||||
if (resultCode == Activity.RESULT_CANCELED) {
|
if (resultCode == Activity.RESULT_CANCELED) {
|
||||||
flutterResult.success(CANCELED_RESULT)
|
flutterResult.success(CANCELED_RESULT)
|
||||||
@ -142,33 +149,27 @@ class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityA
|
|||||||
} else if (requestCode == REQUEST_CODE_CONFIRMATION) {
|
} else if (requestCode == REQUEST_CODE_CONFIRMATION) {
|
||||||
flutterResult.success(resultCode)
|
flutterResult.success(resultCode)
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
|
|
||||||
channel.setMethodCallHandler(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
|
|
||||||
activity = binding.activity
|
|
||||||
binding.addActivityResultListener(this)
|
|
||||||
this.binding = binding
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDetachedFromActivity() {
|
override fun onDetachedFromActivity() {
|
||||||
binding?.removeActivityResultListener(this)
|
binding?.removeActivityResultListener { requestCode, resultCode, data ->
|
||||||
|
handleActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
binding = null
|
binding = null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
|
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
|
||||||
this.binding?.removeActivityResultListener(this)
|
|
||||||
this.binding = binding
|
this.binding = binding
|
||||||
binding.addActivityResultListener(this)
|
binding.addActivityResultListener { requestCode, resultCode, data ->
|
||||||
|
handleActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDetachedFromActivityForConfigChanges() {
|
override fun onDetachedFromActivityForConfigChanges() {
|
||||||
binding?.removeActivityResultListener(this)
|
binding?.removeActivityResultListener { requestCode, resultCode, data ->
|
||||||
|
handleActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
binding = null
|
binding = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user