evotor / integration-library

26 stars 34 forks source link

Не совсем верное API #225

Open caffeine-mgn opened 5 years ago

caffeine-mgn commented 5 years ago

Добрый день. Вы уж извините, но по мне так апи у вас местами страдает. Вот например: есть у вас ru.evotor.framework.core.IntegrationActivity, которым я должен пользоваться что бы вернуть результат, например скидку. Это абстрактный класс. А как быть, если моя активити должна наследоваться от чего-то другого? Например не от вашего абстрактного класса.

Не лучше бы организовать это по иному? Например в моем активити переопредилять метод finish, в котором вызывать некую библиотечную функцию расширение (https://kotlinlang.org/docs/reference/extensions.html) которое и установит результат работы активити?

caffeine-mgn commented 5 years ago

Как-то так:

fun Activity.setResult(result: Bundle) {
    val mIntegrationResponse = intent.getBundleExtra(IntegrationManager.KEY_INTENT_DATA)
        ?.getParcelable<IntegrationResponse>(IntegrationManager.KEY_INTEGRATION_RESPONSE)

    mIntegrationResponse?.onRequestContinued()

    mIntegrationResponse?.also {
        val bundleResult = Bundle()
        bundleResult.putBundle(IntegrationManager.KEY_DATA, result)
        it.onResult(bundleResult)
    }
}