diff --git a/.idea/.gitignore b/.idea/.gitignore index 31cd16dfb..a803d87ba 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -4,4 +4,5 @@ /deploymentTargetDropDown.xml /runConfigurations.xml /deviceManager.xml +/swift-toolchain.xml /other.xml diff --git a/build.gradle b/build.gradle index 49a4706a6..e1b21495b 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension buildscript { ext { - androidGradlePluginVersion = '8.13.1' + androidGradlePluginVersion = '8.13.2' kotlinVersion = '2.1.20' kspVersion = '2.1.20-1.0.32' dokkaVersion = '1.9.20' diff --git a/example/proguard-rules.pro b/example/proguard-rules.pro index e163f008c..f1b424510 100644 --- a/example/proguard-rules.pro +++ b/example/proguard-rules.pro @@ -19,5 +19,3 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile - --keep class com.processout.sdk.api.model.request.POAllGatewayConfigurationsRequest$Filter diff --git a/sdk/build.gradle b/sdk/build.gradle index b74915dcf..0b199d015 100644 --- a/sdk/build.gradle +++ b/sdk/build.gradle @@ -117,7 +117,7 @@ dependencies { implementation "com.squareup.retrofit2:retrofit:$retrofitVersion" implementation "com.squareup.retrofit2:converter-moshi:$retrofitVersion" api "com.squareup.moshi:moshi:$moshiVersion" - implementation "com.squareup.moshi:moshi-adapters:$moshiVersion" + api "com.squareup.moshi:moshi-adapters:$moshiVersion" implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" implementation "com.squareup.okhttp3:logging-interceptor:$okhttpVersion" implementation "com.squareup.okio:okio:$okioVersion" diff --git a/sdk/consumer-rules.pro b/sdk/consumer-rules.pro index e69de29bb..d1ed40610 100644 --- a/sdk/consumer-rules.pro +++ b/sdk/consumer-rules.pro @@ -0,0 +1 @@ +-keepnames class com.processout.sdk.** diff --git a/sdk/src/main/kotlin/com/processout/sdk/core/POFailure.kt b/sdk/src/main/kotlin/com/processout/sdk/core/POFailure.kt index a0d7279ea..3230f9386 100644 --- a/sdk/src/main/kotlin/com/processout/sdk/core/POFailure.kt +++ b/sdk/src/main/kotlin/com/processout/sdk/core/POFailure.kt @@ -207,6 +207,7 @@ class POFailure private constructor() { @Suppress("EnumEntryName") enum class GenericCode(val rawValue: String) : Parcelable { mobile("processout-mobile.generic.error"), + mobileAppProcessKilled("processout-mobile.generic.app-process-killed"), cardExceededLimits("card.exceeded-limits"), cardFailedCvc("card.failed-cvc"), cardInvalidCvc("card.invalid-cvc"), diff --git a/sdk/src/main/kotlin/com/processout/sdk/ui/apm/POAlternativePaymentMethodCustomTabLauncher.kt b/sdk/src/main/kotlin/com/processout/sdk/ui/apm/POAlternativePaymentMethodCustomTabLauncher.kt index 736b5a357..7d5607aca 100644 --- a/sdk/src/main/kotlin/com/processout/sdk/ui/apm/POAlternativePaymentMethodCustomTabLauncher.kt +++ b/sdk/src/main/kotlin/com/processout/sdk/ui/apm/POAlternativePaymentMethodCustomTabLauncher.kt @@ -214,7 +214,7 @@ class POAlternativePaymentMethodCustomTabLauncher private constructor( @Deprecated("Used in other deprecated functions.") private val activityResultCallback = ActivityResultCallback> { result -> if (!delegateCache.isCached()) { - POLogger.error("Cannot provide result. Delegate is not cached. Possibly process was killed.") + POLogger.warn("App process was killed during deprecated APM authorization.") return@ActivityResultCallback } result diff --git a/sdk/src/main/kotlin/com/processout/sdk/ui/nativeapm/PONativeAlternativePaymentMethodActivityContract.kt b/sdk/src/main/kotlin/com/processout/sdk/ui/nativeapm/PONativeAlternativePaymentMethodActivityContract.kt index 1b42999bc..3ca5bf1b2 100644 --- a/sdk/src/main/kotlin/com/processout/sdk/ui/nativeapm/PONativeAlternativePaymentMethodActivityContract.kt +++ b/sdk/src/main/kotlin/com/processout/sdk/ui/nativeapm/PONativeAlternativePaymentMethodActivityContract.kt @@ -4,7 +4,8 @@ import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract import com.processout.sdk.BuildConfig -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.logger.POLogger class PONativeAlternativePaymentMethodActivityContract : ActivityResultContract @@ -29,8 +30,8 @@ class PONativeAlternativePaymentMethodActivityContract : ActivityResultContract intent?.setExtrasClassLoader(PONativeAlternativePaymentMethodResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: PONativeAlternativePaymentMethodResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/sdk/src/main/kotlin/com/processout/sdk/ui/web/WebAuthorizationActivityResultDispatcher.kt b/sdk/src/main/kotlin/com/processout/sdk/ui/web/WebAuthorizationActivityResultDispatcher.kt index 1cb6936cd..cc5ccd3d6 100644 --- a/sdk/src/main/kotlin/com/processout/sdk/ui/web/WebAuthorizationActivityResultDispatcher.kt +++ b/sdk/src/main/kotlin/com/processout/sdk/ui/web/WebAuthorizationActivityResultDispatcher.kt @@ -14,7 +14,7 @@ internal object WebAuthorizationActivityResultDispatcher : override fun dispatch(result: ProcessOutActivityResult) { if (!isCached()) { - POLogger.error("Cannot provide result. Delegate is not cached. Possibly process was killed.") + POLogger.warn("App process was killed during web authorization.") return } result diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/card/scanner/CardScannerActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/card/scanner/CardScannerActivityContract.kt index 33ccea4a0..3219f163b 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/card/scanner/CardScannerActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/card/scanner/CardScannerActivityContract.kt @@ -3,7 +3,8 @@ package com.processout.sdk.ui.card.scanner import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger import com.processout.sdk.ui.BuildConfig @@ -31,8 +32,8 @@ internal class CardScannerActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/card/tokenization/CardTokenizationActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/card/tokenization/CardTokenizationActivityContract.kt index e822aeba6..8269896da 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/card/tokenization/CardTokenizationActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/card/tokenization/CardTokenizationActivityContract.kt @@ -4,7 +4,8 @@ import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract import com.processout.sdk.api.model.response.POCard -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger import com.processout.sdk.ui.BuildConfig @@ -31,8 +32,8 @@ internal class CardTokenizationActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/card/update/CardUpdateActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/card/update/CardUpdateActivityContract.kt index 0e47f2e97..6a12878fe 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/card/update/CardUpdateActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/card/update/CardUpdateActivityContract.kt @@ -4,7 +4,8 @@ import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract import com.processout.sdk.api.model.response.POCard -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger import com.processout.sdk.ui.BuildConfig @@ -31,8 +32,8 @@ internal class CardUpdateActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/checkout/DynamicCheckoutActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/checkout/DynamicCheckoutActivityContract.kt index 33107429f..049110641 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/checkout/DynamicCheckoutActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/checkout/DynamicCheckoutActivityContract.kt @@ -3,7 +3,8 @@ package com.processout.sdk.ui.checkout import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.POUnit import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger @@ -31,8 +32,8 @@ internal class DynamicCheckoutActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentActivityContract.kt index 61ca5c097..3d408aee5 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentActivityContract.kt @@ -3,7 +3,8 @@ package com.processout.sdk.ui.napm import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.POUnit import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger @@ -31,8 +32,8 @@ internal class NativeAlternativePaymentActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } } diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/savedpaymentmethods/SavedPaymentMethodsActivityContract.kt b/ui/src/main/kotlin/com/processout/sdk/ui/savedpaymentmethods/SavedPaymentMethodsActivityContract.kt index baff8afbc..a446531c0 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/savedpaymentmethods/SavedPaymentMethodsActivityContract.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/savedpaymentmethods/SavedPaymentMethodsActivityContract.kt @@ -3,7 +3,8 @@ package com.processout.sdk.ui.savedpaymentmethods import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract -import com.processout.sdk.core.POFailure +import com.processout.sdk.core.POFailure.Code.Generic +import com.processout.sdk.core.POFailure.GenericCode import com.processout.sdk.core.POUnit import com.processout.sdk.core.ProcessOutActivityResult import com.processout.sdk.core.logger.POLogger @@ -32,8 +33,8 @@ internal class SavedPaymentMethodsActivityContract : ActivityResultContract intent?.setExtrasClassLoader(ProcessOutActivityResult::class.java.classLoader) return intent?.getParcelableExtra(EXTRA_RESULT) ?: ProcessOutActivityResult.Failure( - code = POFailure.Code.Internal(), - message = "Activity result was not provided." - ).also { POLogger.error("%s", it) } + code = Generic(GenericCode.mobileAppProcessKilled), + message = "App process was killed." + ).also { POLogger.warn("%s", it) } } }