diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/upi/NaviPayOrderDetailsSummarySection.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/upi/NaviPayOrderDetailsSummarySection.kt
index 030c911193..b4f5d16f60 100644
--- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/upi/NaviPayOrderDetailsSummarySection.kt
+++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/ui/upi/NaviPayOrderDetailsSummarySection.kt
@@ -10,6 +10,7 @@ package com.navi.pay.tstore.details.ui.upi
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
+import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
@@ -39,6 +40,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
+import com.navi.base.utils.isNotNullAndNotEmpty
import com.navi.base.utils.orFalse
import com.navi.common.R as CommonR
import com.navi.common.utils.CommonUtils.getDisplayableAmount
@@ -306,6 +308,48 @@ fun PayeeDetailSection(
}
}
+ if (
+ orderEntity?.isP2PTransaction == true &&
+ transactionBankInfo?.otherUserBankInfo?.bankUiModel?.name.isNotNullAndNotEmpty()
+ ) {
+
+ Spacer(modifier = Modifier.height(4.dp))
+ Row(
+ modifier = Modifier.fillMaxWidth(),
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ Box(
+ modifier =
+ Modifier.size(24.dp)
+ .clip(CircleShape)
+ .border(
+ width = 0.6.dp,
+ color = NaviPayColor.borderDefault,
+ shape = CircleShape,
+ )
+ .background(color = NaviPayColor.textWhite),
+ contentAlignment = Alignment.Center,
+ ) {
+ AsyncImage(
+ modifier = Modifier.padding(4.dp),
+ model =
+ transactionBankInfo?.otherUserBankInfo?.bankUiModel?.iconUrl.orEmpty(),
+ contentDescription = EMPTY,
+ fallback = painterResource(id = R.drawable.ic_add_bank),
+ )
+ }
+
+ NaviText(
+ text = transactionBankInfo?.otherUserBankInfo?.bankUiModel?.name.orEmpty(),
+ fontSize = 14.sp,
+ color = NaviPayColor.textTertiary,
+ fontFamily = naviFontFamily,
+ fontWeight = getFontWeight(FontWeightEnum.NAVI_BODY_REGULAR),
+ modifier = Modifier.padding(horizontal = 8.dp),
+ )
+ }
+ }
+
Spacer(modifier = Modifier.height(16.dp))
}
}
diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/model/view/OrderEntity.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/model/view/OrderEntity.kt
index 5e1add3076..ad01cade87 100644
--- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/model/view/OrderEntity.kt
+++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/model/view/OrderEntity.kt
@@ -117,6 +117,20 @@ data class OrderEntity(
@IgnoredOnParcel @delegate:Ignore val formattedAmount by lazy { amount.getDisplayableAmount() }
+ @IgnoredOnParcel
+ @delegate:Ignore
+ val isMerchantTransaction by lazy {
+ categoryTags.contains(TransactionCategoryTags.MERCHANT_PAYMENTS.value)
+ }
+
+ @IgnoredOnParcel
+ @delegate:Ignore
+ val isP2PTransaction by lazy {
+ (paymentModeTags.contains(TransactionPaymentModeTags.UPI.value) || isUpiLiteTransaction) &&
+ !isMerchantTransaction &&
+ !isOrderOfSelfTransferType
+ }
+
@IgnoredOnParcel
@delegate:Ignore
val formattedAmountAfterCoins by lazy {
diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/ShareReceiptUtils.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/ShareReceiptUtils.kt
index 1de14f049f..fe95498da9 100644
--- a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/ShareReceiptUtils.kt
+++ b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/ShareReceiptUtils.kt
@@ -13,6 +13,7 @@ import android.view.LayoutInflater
import android.view.View.GONE
import android.view.View.VISIBLE
import androidx.core.content.ContextCompat.getColor
+import androidx.databinding.adapters.TextViewBindingAdapter.setText
import com.bumptech.glide.Glide
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.load.engine.GlideException
@@ -251,6 +252,27 @@ fun shareReceipt(
}
}
+ fun LayoutShareTransactionDetailsBinding.setPayeeBankNameAndLogo() {
+ payeeBankView.apply {
+ if (
+ (shareReceiptEntity.isDebited || shareReceiptEntity.isSendMoneyViaUPILite) &&
+ !shareReceiptEntity.isMandateTransaction &&
+ shareReceiptEntity.payeeBankNameFormatted.isNotNullAndNotEmpty()
+ ) {
+ payeeBankIcon.visibility = VISIBLE
+ payeeBankName.visibility = VISIBLE
+ Glide.with(context)
+ .load(shareReceiptEntity.payeeBankUrl)
+ .placeholder(CommonR.drawable.ic_upi_bbps_default_bank_logo)
+ .error(CommonR.drawable.ic_upi_bbps_default_bank_logo)
+ .into(payeeBankIcon)
+ payeeBankName.apply {
+ setText(shareReceiptEntity.payeeBankNameFormatted.split("-").first().trim())
+ }
+ }
+ }
+ }
+
fun LayoutShareTransactionDetailsBinding.setPayerPayeeSecondInfo() {
payerPayeeSecondInfo.apply {
key.apply {
@@ -349,6 +371,8 @@ fun shareReceipt(
setPayerPayeeFirstInfo()
+ setPayeeBankNameAndLogo()
+
setPayerPayeeSecondInfo()
transactionIdInfo.apply {
diff --git a/android/navi-pay/src/main/res/layout/layout_share_transaction_details.xml b/android/navi-pay/src/main/res/layout/layout_share_transaction_details.xml
index 6e0fbeed49..8280163b82 100644
--- a/android/navi-pay/src/main/res/layout/layout_share_transaction_details.xml
+++ b/android/navi-pay/src/main/res/layout/layout_share_transaction_details.xml
@@ -127,10 +127,48 @@
android:layout_marginHorizontal="@dimen/dp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/payment_status_text" />
+ app:layout_constraintTop_toBottomOf="@id/payment_status_text"
+ />
+
+
+
+
+
+
+
+
+
-
-
-
+
+ app:layout_constraintTop_toBottomOf="@id/autopay_or_payee">