Skip to content

Commit

Permalink
Fix deprecated kotlin extension (#365)
Browse files Browse the repository at this point in the history
* Remove files to be replaced by flutter bridging

* Remove unused imports

* Remove unit tests

* Migrate to kotlin 1.9.10 and view binding

* Remove staging endpoint
  • Loading branch information
AnasNaouchi authored Jan 28, 2025
1 parent f448873 commit e0b5009
Show file tree
Hide file tree
Showing 90 changed files with 142 additions and 7,217 deletions.
15 changes: 11 additions & 4 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-parcelize'
apply plugin: 'kotlin-android'

android {
Expand Down
103 changes: 36 additions & 67 deletions app/src/kotlin/java/co/omise/android/example/CheckoutActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,45 +15,25 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import co.omise.android.AuthorizingPaymentURLVerifier.Companion.EXTRA_AUTHORIZED_URLSTRING
import co.omise.android.AuthorizingPaymentURLVerifier.Companion.EXTRA_EXPECTED_RETURN_URLSTRING_PATTERNS
import co.omise.android.api.Client
import co.omise.android.api.RequestListener
import co.omise.android.config.ButtonCustomization
import co.omise.android.config.ButtonCustomizationBuilder
import co.omise.android.config.ButtonType
import co.omise.android.config.LabelCustomizationBuilder
import co.omise.android.config.TextBoxCustomizationBuilder
import co.omise.android.config.ThemeConfig
import co.omise.android.config.ToolbarCustomizationBuilder
import co.omise.android.config.UiCustomizationBuilder
import co.omise.android.ui.AuthorizingPaymentActivity.Companion.EXTRA_THREE_DS_REQUESTOR_APP_URL
import co.omise.android.ui.AuthorizingPaymentActivity.Companion.EXTRA_UI_CUSTOMIZATION
import co.omise.android.config.*
import co.omise.android.models.Amount
import co.omise.android.models.Source
import co.omise.android.models.Token
import co.omise.android.ui.AuthorizingPaymentActivity
import co.omise.android.ui.AuthorizingPaymentActivity.Companion.EXTRA_THREE_DS_REQUESTOR_APP_URL
import co.omise.android.ui.AuthorizingPaymentActivity.Companion.EXTRA_UI_CUSTOMIZATION
import co.omise.android.ui.AuthorizingPaymentResult
import co.omise.android.ui.CreditCardActivity
import co.omise.android.ui.OmiseActivity
import co.omise.android.ui.PaymentCreatorActivity
import co.omise.android.ui.*
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_checkout.amount_edit
import kotlinx.android.synthetic.main.activity_checkout.authorize_url_button
import kotlinx.android.synthetic.main.activity_checkout.choose_payment_method_button
import kotlinx.android.synthetic.main.activity_checkout.credit_card_button
import kotlinx.android.synthetic.main.activity_checkout.currency_edit

inline fun <reified T : Parcelable> Intent.parcelable(key: String?): T? = when {
// https://stackoverflow.com/questions/72571804/getserializableextra-and-getparcelableextra-are-deprecated-what-is-the-alternat/73543350#73543350
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> getParcelableExtra(key, T::class.java)
else -> @Suppress("DEPRECATION") getParcelableExtra(key) as? T
}

class CheckoutActivity : AppCompatActivity() {

companion object {

private const val TAG = "CheckoutActivity"
private const val PUBLIC_KEY = "[PUBLIC_KEY]"
private const val PUBLIC_KEY = "pkey_test_5tnt1gxjf6ecypmkfi8"
private const val GOOGLEPAY_MERCHANT_ID = "[GOOGLEPAY_MERCHANT_ID]"
private const val GOOGLEPAY_REQUEST_BILLING_ADDRESS = false
private const val GOOGLEPAY_REQUEST_PHONE_NUMBER = false
Expand All @@ -64,14 +44,12 @@ class CheckoutActivity : AppCompatActivity() {
private const val CREDIT_CARD_REQUEST_CODE = 0x3D7
}

private val amountEdit: EditText by lazy { amount_edit }
private val currencyEdit: EditText by lazy { currency_edit }
private val choosePaymentMethodButton: Button by lazy { choose_payment_method_button }
private val creditCardButton: Button by lazy { credit_card_button }
private val authorizeUrlButton: Button by lazy { authorize_url_button }
private val snackbar: Snackbar by lazy {
Snackbar.make(findViewById(R.id.content), "", Snackbar.LENGTH_SHORT)
}
private lateinit var amountEdit: EditText
private lateinit var currencyEdit: EditText
private lateinit var choosePaymentMethodButton: Button
private lateinit var creditCardButton: Button
private lateinit var authorizeUrlButton: Button
private lateinit var snackbar: Snackbar

private lateinit var authorizingPaymentLauncher: ActivityResultLauncher<Intent>
private lateinit var paymentCreatorLauncher: ActivityResultLauncher<Intent>
Expand All @@ -82,36 +60,15 @@ class CheckoutActivity : AppCompatActivity() {
setContentView(R.layout.activity_checkout)

supportActionBar?.title = getString(R.string.activity_checkout)
authorizingPaymentLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result: ActivityResult ->
handleActivityResult(
AUTHORIZING_PAYMENT_REQUEST_CODE,
result.resultCode,
result.data
)
}

paymentCreatorLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result: ActivityResult ->
handleActivityResult(
PAYMENT_CREATOR_REQUEST_CODE,
result.resultCode,
result.data
)
}

creditCardLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result: ActivityResult ->
handleActivityResult(
CREDIT_CARD_REQUEST_CODE,
result.resultCode,
result.data
)
}
amountEdit = findViewById(R.id.amount_edit)
currencyEdit = findViewById(R.id.currency_edit)
choosePaymentMethodButton = findViewById(R.id.choose_payment_method_button)
creditCardButton = findViewById(R.id.credit_card_button)
authorizeUrlButton = findViewById(R.id.authorize_url_button)
snackbar = Snackbar.make(findViewById(R.id.content), "", Snackbar.LENGTH_SHORT)

setupActivityLaunchers()

choosePaymentMethodButton.setOnClickListener { choosePaymentMethod() }
creditCardButton.setOnClickListener { payByCreditCard() }
Expand All @@ -120,7 +77,20 @@ class CheckoutActivity : AppCompatActivity() {
startAuthoringPaymentActivity(authorizeUrl, returnUrl)
}
}
}

private fun setupActivityLaunchers() {
authorizingPaymentLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
handleActivityResult(AUTHORIZING_PAYMENT_REQUEST_CODE, result.resultCode, result.data)
}

paymentCreatorLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
handleActivityResult(PAYMENT_CREATOR_REQUEST_CODE, result.resultCode, result.data)
}

creditCardLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
handleActivityResult(CREDIT_CARD_REQUEST_CODE, result.resultCode, result.data)
}
}

private fun choosePaymentMethod() {
Expand All @@ -130,7 +100,7 @@ class CheckoutActivity : AppCompatActivity() {
val currency = currencyEdit.text.toString().trim().lowercase()
val amount = Amount.fromLocalAmount(localAmount, currency)

Intent(this, PaymentCreatorActivity::class.java).run {
val intent = Intent(this, PaymentCreatorActivity::class.java).apply {
putExtra(OmiseActivity.EXTRA_PKEY, PUBLIC_KEY)
putExtra(OmiseActivity.EXTRA_AMOUNT, amount.amount)
putExtra(OmiseActivity.EXTRA_CURRENCY, amount.currency)
Expand All @@ -141,17 +111,16 @@ class CheckoutActivity : AppCompatActivity() {
if (isUsedSpecificsPaymentMethods) {
putExtra(OmiseActivity.EXTRA_CAPABILITY, PaymentSetting.createCapabilityFromPreferences(this@CheckoutActivity))
}

paymentCreatorLauncher.launch(this)
}
}
paymentCreatorLauncher.launch(intent)

}

private fun payByCreditCard() {
Intent(this, CreditCardActivity::class.java).run {
val intent = Intent(this, CreditCardActivity::class.java).apply {
putExtra(OmiseActivity.EXTRA_PKEY, PUBLIC_KEY)
creditCardLauncher.launch(this)
}
creditCardLauncher.launch(intent)
}

private fun startAuthoringPaymentActivity(authorizeUrl: String, returnUrl: String) {
Expand Down
1 change: 0 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
<activity android:name="co.omise.android.ui.AuthorizingPaymentActivity" />
<activity android:name="co.omise.android.ui.PaymentCreatorActivity" />
<activity android:name="co.omise.android.ui.FlutterUIHostActivity" />
<activity android:name="co.omise.android.ui.GooglePayActivity" />
<meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" />
</application>

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ buildscript {

omise_threeds_sdk_version = '1.0.0-alpha12'

kotlin_version = '1.7.10'
kotlin_version = '1.9.10'
android_plugin_version = '8.2.2'
appcompat_version = '1.3.0'
joda_time_version = '2.9.2'
Expand Down
7 changes: 2 additions & 5 deletions sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'maven-publish'
apply plugin: 'signing'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-parcelize'
apply plugin: 'jacoco'
apply plugin: 'org.sonarqube'
apply plugin: 'org.jlleitschuh.gradle.ktlint'

android {
buildFeatures {
buildConfig true
viewBinding true
}
defaultConfig {
namespace 'co.omise.android'
Expand Down Expand Up @@ -53,10 +54,6 @@ android {
disable 'InvalidPackage' // okio
}

androidExtensions {
experimental = true
}

testOptions {
// It's required for Sonar
reportDir "${project.buildDir}/reports/coverage/androidTest/production/debug/connected"
Expand Down
34 changes: 0 additions & 34 deletions sdk/src/androidTest/java/co/omise/android/CardNumberTest.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import android.os.Parcelable
import androidx.test.ext.junit.runners.AndroidJUnit4
import co.omise.android.SDKTest
import co.omise.android.extensions.getParcelableCompat
import kotlinx.android.parcel.Parcelize
import kotlinx.parcelize.Parcelize
import org.joda.time.DateTime
import org.joda.time.DateTimeZone
import org.junit.Test
Expand Down
Loading

0 comments on commit e0b5009

Please sign in to comment.