From f5300247fba9c56a9b9c57cc48a8cb8ae63cf97e Mon Sep 17 00:00:00 2001 From: "Merlin (they/them)" <124289716+merlinpaypal@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:21:56 -0400 Subject: [PATCH 1/7] feat: add modal --- .../com/paypal/messagesdemo/XmlActivity.kt | 36 ++ demo/src/main/res/layout/activity_message.xml | 8 +- demo/src/main/res/values/strings.xml | 3 +- .../messages/PayPalMessagesModalView.kt | 328 ++++++++++++++++++ .../config/modal/PayPalMessagesModalConfig.kt | 30 ++ library/src/main/res/values/attrs.xml | 39 ++- 6 files changed, 433 insertions(+), 11 deletions(-) create mode 100644 library/src/main/java/com/paypal/messages/PayPalMessagesModalView.kt create mode 100644 library/src/main/java/com/paypal/messages/config/modal/PayPalMessagesModalConfig.kt diff --git a/demo/src/main/java/com/paypal/messagesdemo/XmlActivity.kt b/demo/src/main/java/com/paypal/messagesdemo/XmlActivity.kt index 5a44eca0..fddc7263 100644 --- a/demo/src/main/java/com/paypal/messagesdemo/XmlActivity.kt +++ b/demo/src/main/java/com/paypal/messagesdemo/XmlActivity.kt @@ -5,10 +5,12 @@ import android.util.Log import android.view.View import android.view.ViewGroup.LayoutParams import android.widget.EditText +import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.compose.ui.graphics.Color import com.paypal.messages.PayPalMessageView +import com.paypal.messages.PayPalMessagesModalView import com.paypal.messages.config.PayPalEnvironment import com.paypal.messages.config.PayPalMessageOfferType import com.paypal.messages.config.PayPalMessagePageType @@ -18,6 +20,7 @@ import com.paypal.messages.config.message.PayPalMessageViewStateCallbacks import com.paypal.messages.config.message.style.PayPalMessageAlignment import com.paypal.messages.config.message.style.PayPalMessageColor import com.paypal.messages.config.message.style.PayPalMessageLogoType +import com.paypal.messages.config.modal.PayPalMessagesModalConfig import com.paypal.messages.io.Api import com.paypal.messagesdemo.databinding.ActivityMessageBinding @@ -35,6 +38,17 @@ class XmlActivity : AppCompatActivity() { binding = ActivityMessageBinding.inflate(layoutInflater) setContentView(binding.root) + val modalConfig = PayPalMessagesModalConfig( + clientID = getString(R.string.client_id), + amount = 300.0, + offerType = PayPalMessageOfferType.PAY_LATER_LONG_TERM, + ) + val modal = PayPalMessagesModalView(context = this, config = modalConfig) + val messagesModalText = binding.messagesModalText + messagesModalText.setOnClickListener { + modal.show() + } + val messageWrapper = binding.messageWrapper val progressBar = binding.progressBar val resetButton = binding.reset @@ -205,5 +219,27 @@ class XmlActivity : AppCompatActivity() { message.onLoading = {} message.onSuccess = {} message.onError = {} + + val modalConfig = PayPalMessagesModalConfig(clientID = "someClientID") + val modal = PayPalMessagesModalView(context = this, config = modalConfig) + modal.getConfig() + modal.setConfig(modalConfig) + modal.environment = PayPalEnvironment.SANDBOX + modal.clientID = "" + modal.merchantID = "" + modal.partnerAttributionID = "" + modal.onClick = {} + modal.onApply = {} + modal.onLoading = {} + modal.onSuccess = {} + modal.onError = {} + modal.onCalculate = {} + modal.onShow = {} + modal.onClose = {} + + val textView = TextView(this) + textView.setOnClickListener { + modal.show() + } } } diff --git a/demo/src/main/res/layout/activity_message.xml b/demo/src/main/res/layout/activity_message.xml index cbe48de6..45223a3a 100644 --- a/demo/src/main/res/layout/activity_message.xml +++ b/demo/src/main/res/layout/activity_message.xml @@ -136,7 +136,7 @@ android:id="@+id/offerTypeLabel" android:paddingTop="12dp" android:paddingBottom="12dp" - android:layout_marginRight="12dp" + android:layout_marginEnd="12dp" android:textStyle="bold" android:textSize="16sp"/>