Skip to content

Commit

Permalink
[ISPIBR-163] Atualizar demo app publico com alterações de Afecto y Ex…
Browse files Browse the repository at this point in the history
…ento (#65)

* [ISPIBR-163] - faz o bump do sdk para 4.1.0 e adiciona sample de tax
* [ISPIBR-163] - reverte alteração desncessária
* [ISPIBR-163] - upgrade na versão do sdk 4.1.1
  • Loading branch information
ath-rocigno authored Feb 13, 2025
1 parent ead29cc commit 794c7e8
Show file tree
Hide file tree
Showing 12 changed files with 95 additions and 10 deletions.
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# v4.1.1
## Fixed
- Remove cash payment from payment method. This payment method will be available at a later date

# v4.1.0
## Added
- Improve payment flow with taxes in payment.

# v4.0.2
## Added
- Implement new metadata for on-demand app installation.
- Implement new metadata for on-demand app installation.

# v4.0.1
## Fixed
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ android {

dependencies {

implementation files("libs/nativesdk-4.0.2.aar")
implementation files("libs/nativesdk-4.1.1.aar")
// AndroidX
implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
Expand Down
Binary file removed app/libs/nativesdk-4.0.2.aar
Binary file not shown.
Binary file added app/libs/nativesdk-4.1.1.aar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import com.mercadolibre.android.point_mainapp_demo.app.databinding.PointMainappD
import com.mercadolibre.android.point_mainapp_demo.app.util.gone
import com.mercadolibre.android.point_mainapp_demo.app.util.visible
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.adapter.PaymentInstallmentAdapter
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.models.PayerConditionString
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.models.toTaxes

class PaymentFlowInstallmentsActivity : AppCompatActivity() {

Expand All @@ -27,6 +29,7 @@ class PaymentFlowInstallmentsActivity : AppCompatActivity() {
private val paymentMethod by lazy { intent.getStringExtra(PAYMENT_METHOD) }
private val description by lazy { intent.getStringExtra(DESCRIPTION) }
private val printOnTerminal by lazy { intent.getBooleanExtra(PRINT_ON_TERMINAL, false) }
private val payerCondition: PayerConditionString? by lazy { intent.getStringExtra(PAYER_CONDITION) }

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -94,7 +97,8 @@ class PaymentFlowInstallmentsActivity : AppCompatActivity() {
amount = amount.toDouble(),
description = description,
paymentMethod = paymentMethodValue?.run { PaymentMethod.valueOf(this) },
printOnTerminal = printOnTerminal
printOnTerminal = printOnTerminal,
taxes = payerCondition?.toTaxes()
)

private fun launchPaymentInstallment(paymentFlowRequestData: PaymentFlowRequestData) {
Expand Down Expand Up @@ -124,5 +128,6 @@ class PaymentFlowInstallmentsActivity : AppCompatActivity() {
internal const val PAYMENT_METHOD = "payment_method"
internal const val TOTAL_AMOUNT = "Total Amount"
internal const val PRINT_ON_TERMINAL = "print_on_terminal"
internal const val PAYER_CONDITION = "payer_condition"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.mercadolibre.android.point_integration_sdk.nativesdk.MPManager
import com.mercadolibre.android.point_integration_sdk.nativesdk.message.utils.doIfError
import com.mercadolibre.android.point_integration_sdk.nativesdk.message.utils.doIfSuccess
import com.mercadolibre.android.point_integration_sdk.nativesdk.payment.data.PayerCondition
import com.mercadolibre.android.point_integration_sdk.nativesdk.payment.data.PaymentFlowRequestData
import com.mercadolibre.android.point_integration_sdk.nativesdk.payment.data.PaymentMethod
import com.mercadolibre.android.point_mainapp_demo.app.R
Expand All @@ -20,9 +22,12 @@ import com.mercadolibre.android.point_mainapp_demo.app.util.visible
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.adapter.PaymentMethodAdapter
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.launcher.PaymentFlowInstallmentsActivity.Companion.AMOUNT
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.launcher.PaymentFlowInstallmentsActivity.Companion.DESCRIPTION
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.launcher.PaymentFlowInstallmentsActivity.Companion.PAYER_CONDITION
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.launcher.PaymentFlowInstallmentsActivity.Companion.PAYMENT_METHOD
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.launcher.PaymentFlowInstallmentsActivity.Companion.PRINT_ON_TERMINAL
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.models.PayerConditionString
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.models.PaymentMethodModel
import com.mercadolibre.android.point_mainapp_demo.app.view.payment.models.toTaxes

/** Main activity class */
class PaymentLauncherActivity : AppCompatActivity() {
Expand Down Expand Up @@ -52,9 +57,16 @@ class PaymentLauncherActivity : AppCompatActivity() {
}

configPaymentButton()
configPayerConditionDropDown()
isAutomaticPrintOnTerminal()
}

private fun configPayerConditionDropDown() {
binding.payerCondition.setText(NO_TAX)
val finalList = listOf(NO_TAX) + PayerCondition.values().map { it.name }
binding.payerCondition.setSimpleItems(finalList.toTypedArray())
}

private fun isAutomaticPrintOnTerminal() =
binding.checkboxIsAutomaticPrinting.setOnCheckedChangeListener { _, isChecked ->
isPrintOnTerminal = isChecked
Expand Down Expand Up @@ -93,7 +105,8 @@ class PaymentLauncherActivity : AppCompatActivity() {
PAYMENT_METHOD to lastPaymentMethodSelected?.name,
AMOUNT to amount,
DESCRIPTION to description,
PRINT_ON_TERMINAL to isPrintOnTerminal
PRINT_ON_TERMINAL to isPrintOnTerminal,
PAYER_CONDITION to binding.payerCondition.getSelectedValue()
)
)

Expand Down Expand Up @@ -121,10 +134,11 @@ class PaymentLauncherActivity : AppCompatActivity() {
binding.paymentProgressBar.visible()
paymentFlow.launchPaymentFlow(
PaymentFlowRequestData(
amount.toDouble(),
description,
amount = amount.toDouble(),
description = description,
paymentMethod = lastPaymentMethodSelected,
printOnTerminal = isPrintOnTerminal
printOnTerminal = isPrintOnTerminal,
taxes = binding.payerCondition.getSelectedValue()?.toTaxes()
)
) { response ->
binding.paymentProgressBar.gone()
Expand Down Expand Up @@ -169,9 +183,13 @@ class PaymentLauncherActivity : AppCompatActivity() {
getColor(R.color.doneColor)
}

private fun MaterialAutoCompleteTextView.getSelectedValue(): PayerConditionString? =
text.toString().takeIf { it != NO_TAX }

companion object {
private const val ERROR_INVALID_AMOUNT = "Amount is null or empty"
private const val MESSAGE_PAYMENT_CANCELED = "Your payment was %s"
private const val MESSAGE_PAYMENT_SUCCESS = "Your payment reference is: %s"
private const val NO_TAX = "NO TAX"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.mercadolibre.android.point_mainapp_demo.app.view.payment.models

import com.mercadolibre.android.point_integration_sdk.nativesdk.payment.data.PayerCondition
import com.mercadolibre.android.point_integration_sdk.nativesdk.payment.data.Tax

internal typealias PayerConditionString = String

internal fun PayerConditionString.toTaxes() = PayerCondition.fromString(this)
?.let { payerCondition ->
listOf(Tax(payerCondition))
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,31 @@

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/payerConditionLayout"
style="@style/point_mainapp_demo_appTheme.TextInputLayoutTheme.DropDown"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/ui_2m"
android:layout_marginStart="16dp"
android:layout_marginTop="@dimen/ui_1m"
android:layout_marginEnd="16dp"
android:hint="@string/point_mainapp_demo_app_lab_tax"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/descriptionInputLayout"
app:startIconDrawable="@drawable/point_mainapp_demo_app_ic_receipt">

<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/payerCondition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none"
android:textColor="@color/primaryTextColor"
app:simpleItemLayout="@layout/point_mainapp_demo_app_item_spinner" />

</com.google.android.material.textfield.TextInputLayout>

<CheckBox
android:id="@+id/checkbox_is_automatic_printing"
android:layout_width="wrap_content"
Expand All @@ -71,7 +96,7 @@
android:checked="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/descriptionInputLayout" />
app:layout_constraintTop_toBottomOf="@+id/payerConditionLayout" />

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_payment_method"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.AppCompatTextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="?attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight"
android:textColor="@color/secondaryTextColor"
tools:text="text" />
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<string name="point_mainapp_demo_app_title">Demo Launcher Integration App</string>
<string name="point_mainapp_demo_app_lab_payment_amount">Amount</string>
<string name="point_mainapp_demo_app_lab_payment_description">Description</string>
<string name="point_mainapp_demo_app_lab_tax">Tax</string>
<string name="point_mainapp_demo_app_go_to_payment">Go to payment</string>
<string name="point_mainapp_demo_app_payment_success">The payment has been successful</string>
<string name="point_mainapp_demo_app_lab_reference">Reference</string>
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@
<item name="boxStrokeColor">@color/point_mainapp_demo_app_text_input_box_stroke</item>
</style>

<style name="point_mainapp_demo_appTheme.TextInputLayoutTheme.DropDown" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu">
<item name="colorControlNormal">@color/primaryColor</item>
<item name="colorControlActivated">@color/primaryColor</item>
<item name="colorControlHighlight">@color/primaryColor</item>
<item name="android:textColorHint">@color/primaryTextColor</item>
<item name="startIconTint">@color/primaryTextColor</item>
<item name="boxStrokeColor">@color/point_mainapp_demo_app_text_input_box_stroke</item>
</style>

<style name="point_mainapp_demo_appTheme.TextInputLayoutTheme.errorAppearance" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/design_default_color_error</item>
</style>
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ miniAppAplicationId=com.mercadolibre.android.point_miniapp_demo

# IMPORTANT: We're using http://semver.org/ for all Android projects, please remember to follow this convention.
# IMPORTANT: The version will be THE SAME for all modules.
versionCode=400002
versionName=4.0.2
versionCode=400101
versionName=4.1.1
minSdkVersion = 23
targetSdkVersion=33
compileSdkVersion=33
Expand Down

0 comments on commit 794c7e8

Please sign in to comment.