diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 000000000..4a53bee8c --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index f5413ac5a..116f37a84 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ buildscript { ext { - androidGradlePluginVersion = '8.8.0' + androidGradlePluginVersion = '8.9.0' kotlinVersion = '2.1.10' kspVersion = '2.1.10-1.0.29' dokkaVersion = '1.9.20' @@ -45,13 +45,15 @@ ext { androidxRecyclerViewVersion = '1.4.0' androidxSwipeRefreshLayoutVersion = '1.1.0' androidxBrowserVersion = '1.8.0' + androidxCameraVersion = '1.4.1' - androidxComposeBOMVersion = '2025.01.01' + androidxComposeBOMVersion = '2025.03.00' composeGooglePayButtonVersion = '1.0.0' materialVersion = '1.12.0' gmsWalletVersion = '19.4.0' + mlkitTextRecognitionVersion = '19.0.1' kotlinxCoroutinesPlayServicesVersion = '1.9.0' retrofitVersion = '2.11.0' diff --git a/example/src/main/AndroidManifest.xml b/example/src/main/AndroidManifest.xml index ce136aa22..46d6667e5 100644 --- a/example/src/main/AndroidManifest.xml +++ b/example/src/main/AndroidManifest.xml @@ -4,6 +4,9 @@ + + + ( private val cardsRepository = ProcessOut.instance.cards private lateinit var cardUpdateLauncher: POCardUpdateLauncher + private lateinit var cardScannerLauncher: POCardScannerLauncher private lateinit var googlePayLauncher: POGooglePayCardTokenizationLauncher override fun onCreate(savedInstanceState: Bundle?) { @@ -43,6 +47,10 @@ class FeaturesFragment : BaseFragment( from = this, callback = ::handleCardUpdateResult ) + cardScannerLauncher = POCardScannerLauncher.create( + from = this, + callback = ::handleCardScannerResult + ) googlePayLauncher = POGooglePayCardTokenizationLauncher.create( from = this, walletOptions = WalletOptions.Builder() @@ -76,6 +84,7 @@ class FeaturesFragment : BaseFragment( } } setupCardUpdate() + setupCardScanner() setupGooglePay() } @@ -134,6 +143,28 @@ class FeaturesFragment : BaseFragment( } } + private fun setupCardScanner() { + binding.cardScannerButton.setOnClickListener { + cardScannerLauncher.launch(POCardScannerConfiguration()) + } + } + + private fun handleCardScannerResult(result: ProcessOutActivityResult) { + result + .onSuccess { + showAlert( + title = getString(R.string.card_scanner), + message = it.toString() + ) + } + .onFailure { + showAlert( + title = getString(R.string.card_scanner), + message = it.toMessage() + ) + } + } + private fun setupGooglePay() { lifecycleScope.launch { if (!googlePayLauncher.isReadyToPay(GooglePayConfiguration.isReadyToPayRequest())) { diff --git a/example/src/main/res/layout/fragment_features.xml b/example/src/main/res/layout/fragment_features.xml index 893993b2e..4e59e172c 100644 --- a/example/src/main/res/layout/fragment_features.xml +++ b/example/src/main/res/layout/fragment_features.xml @@ -39,6 +39,14 @@ android:layout_marginTop="@dimen/button_space_vertical" android:text="@string/card_update" /> +