From 4f3ac0a004f134c306f5dc2c48b9dbd98d69c67d Mon Sep 17 00:00:00 2001 From: Shivam Goyal Date: Mon, 8 Jan 2024 22:08:16 +0530 Subject: [PATCH] =?UTF-8?q?TP-53619=20|=20Master=20=E2=86=92=20Development?= =?UTF-8?q?=20(Release=204.3.1)=20(#9267)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- navi-pay/src/main/AndroidManifest.xml | 1 - .../navi/pay/analytics/NaviPayAnalytics.kt | 7 +-- .../pay/common/ui/TransactionDetailSection.kt | 46 +++++++++++-------- .../paymentsummary/ui/PaymentSummaryScreen.kt | 3 +- .../sendmoney/viewmodel/SendMoneyViewModel.kt | 5 +- .../lite/viewmodel/UPILiteViewModel.kt | 3 ++ .../management/mandate/ui/MandateScreen.kt | 3 +- .../scanpay/ui/QrScannerScreen.kt | 36 +-------------- .../scanpay/viewmodel/QrScannerViewModel.kt | 2 - .../com/navi/pay/utils/NaviPayConstants.kt | 1 - 11 files changed, 42 insertions(+), 69 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 25b21dcfe3..ec031c5fb7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ kapt { correctErrorTypes true } -def VERSION_CODE = 371 -def VERSION_NAME = "4.2.2" +def VERSION_CODE = 373 +def VERSION_NAME = "4.3.1" android { namespace 'com.naviapp' diff --git a/navi-pay/src/main/AndroidManifest.xml b/navi-pay/src/main/AndroidManifest.xml index cbb96172eb..98fe228368 100644 --- a/navi-pay/src/main/AndroidManifest.xml +++ b/navi-pay/src/main/AndroidManifest.xml @@ -20,7 +20,6 @@ - diff --git a/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt b/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt index 401f9a1771..5f5737c975 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt @@ -768,13 +768,10 @@ class NaviPayAnalytics private constructor() { ) } - fun onTorchButtonClick(isFlashOn: Boolean, lightSensorValue: Float) { + fun onTorchButtonClick(isFlashOn: Boolean) { NaviTrackEvent.trackEventOnClickStream( "NaviPay_QrScanner_TorchButtonClicked", mapOf( - Pair("isFlashOn", isFlashOn.toString()), - Pair( - "lightSensorValue", lightSensorValue.toString() - ) + Pair("isFlashOn", isFlashOn.toString()) ) ) } diff --git a/navi-pay/src/main/kotlin/com/navi/pay/common/ui/TransactionDetailSection.kt b/navi-pay/src/main/kotlin/com/navi/pay/common/ui/TransactionDetailSection.kt index 3d99f7a082..88bcad4c75 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/common/ui/TransactionDetailSection.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/common/ui/TransactionDetailSection.kt @@ -70,6 +70,7 @@ fun TransactionDetailSection( naviPayAnalytics: NaviPayAnalytics.NaviPayTransactionDetailsSectionBase, onCopyIconClicked: ((String) -> Unit)? = null, isPayAgainEnabled: Boolean, + isTransactionHistoryCtaEnabled: Boolean = true, naviPayActivity: NaviPayActivity, showCopySnackBar: Boolean = false, updateCopySnackBarState: (Boolean) -> Unit, @@ -263,18 +264,22 @@ fun TransactionDetailSection( Spacer(modifier = Modifier.height(24.dp)) - KeyValueWithCopySection( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - key = stringResource(id = R.string.navi_transaction_id), - value = transactionEntity?.transactionDetailEntity?.metaData?.npTxnId ?: "", - iconId = R.drawable.ic_copy, - onCopyIconClicked = { - naviPayAnalytics.onCopyNaviTransactionIdClicked(source = analyticsSource) - onCopyIconClicked?.invoke(it) + transactionEntity?.transactionDetailEntity?.metaData?.npTxnId?.let { + if (it.isNotBlank()) { + KeyValueWithCopySection( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + key = stringResource(id = R.string.navi_transaction_id), + value = it, + iconId = R.drawable.ic_copy, + onCopyIconClicked = { + naviPayAnalytics.onCopyNaviTransactionIdClicked(source = analyticsSource) + onCopyIconClicked?.invoke(it) + } + ) } - ) + } Spacer(modifier = Modifier.height(16.dp)) @@ -283,7 +288,8 @@ fun TransactionDetailSection( onCheckBalanceCtaClicked = onCheckBalanceCtaClicked, onShareReceiptCtaClicked = onShareReceiptCtaClicked, onPayAgainCtaClicked = onPayAgainCtaClicked, - isPayAgainEnabled = isPayAgainEnabled + isPayAgainEnabled = isPayAgainEnabled, + isTransactionHistoryCtaEnabled = isTransactionHistoryCtaEnabled ) } }, @@ -622,7 +628,8 @@ fun CtaSection( onCheckBalanceCtaClicked: () -> Unit, onShareReceiptCtaClicked: () -> Unit, onPayAgainCtaClicked: () -> Unit, - isPayAgainEnabled: Boolean + isPayAgainEnabled: Boolean, + isTransactionHistoryCtaEnabled: Boolean ) { Row( modifier = Modifier @@ -653,11 +660,14 @@ fun CtaSection( ) { onCheckBalanceCtaClicked.invoke() } - CtaButtonForTransactionDetailsSection( - iconId = R.drawable.ic_transaction_history, - ctaName = stringResource(id = R.string.np_transaction_history), - ) { - onTransactionHistoryCtaClicked.invoke() + + if (isTransactionHistoryCtaEnabled) { + CtaButtonForTransactionDetailsSection( + iconId = R.drawable.ic_transaction_history, + ctaName = stringResource(id = R.string.np_transaction_history), + ) { + onTransactionHistoryCtaClicked.invoke() + } } } } diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/common/paymentsummary/ui/PaymentSummaryScreen.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/common/paymentsummary/ui/PaymentSummaryScreen.kt index 10e0208ec0..613f9af460 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/common/paymentsummary/ui/PaymentSummaryScreen.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/common/paymentsummary/ui/PaymentSummaryScreen.kt @@ -190,6 +190,7 @@ private fun RenderPaymentSummaryScreen( checkBalanceBankAccountUniqueId = checkBalanceBankAccountUniqueId, helpCtaText = helpCtaText, onHelpCtaClicked = onHelpCtaClicked, - transactionDetailScreenSource = TransactionDetailSectionSource.PAYMENT_SUMMARY_SCREEN + transactionDetailScreenSource = TransactionDetailSectionSource.PAYMENT_SUMMARY_SCREEN, + isTransactionHistoryCtaEnabled = (!transactionDetailItemProperty.isTransactionStatusNonTerminal) ) } diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt index 060cb295eb..80da163269 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt @@ -1773,9 +1773,10 @@ class SendMoneyViewModel @Inject constructor( txnStatus = sendMoneyResponse.status, txnType = transactionType.name, txnReqType = sendMoneyResponse.txnRequestType, - amount = paymentAmount.value, + amount = String.format("%.2f", (paymentAmount.value.toDoubleOrNull() ?: 0.0)), currency = DEFAULT_UPI_CURRENCY, - remarks = payeeEntity.value.note, + remarks = note.value.trim() + .ifBlank { naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks }, txnTimestamp = sendMoneyResponse.transactionTimestamp ?: DateTime.now(DateTimeZone.UTC), // DB always stores in UTC instrumentId = "", diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/lite/viewmodel/UPILiteViewModel.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/lite/viewmodel/UPILiteViewModel.kt index a75dca62d5..bda470bd54 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/lite/viewmodel/UPILiteViewModel.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/lite/viewmodel/UPILiteViewModel.kt @@ -519,6 +519,9 @@ class UPILiteViewModel @Inject constructor( if (liteAccountBalanceFromPreviousScreen.isNotEmpty()) { updateIsUserOnboarded(isUserOnboarded = true) updateUPILiteBalance(balance = liteAccountBalanceFromPreviousScreen) + updateEnteredAmount( + amount = getPreFilledTopUpAmount(balance = liteAccountBalanceFromPreviousScreen) + ) updateEnteredAmount( amount = getPreFilledTopUpAmount(balance = liteAccountBalanceFromPreviousScreen) diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/mandate/ui/MandateScreen.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/mandate/ui/MandateScreen.kt index 0d956cf7a6..234973ec7e 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/mandate/ui/MandateScreen.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/mandate/ui/MandateScreen.kt @@ -578,5 +578,4 @@ fun MandateEntityItemViewOfPendingCategory( ) } } -} - +} \ No newline at end of file diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt index c1d6eb2ea2..ad9277e7ae 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/ui/QrScannerScreen.kt @@ -107,7 +107,6 @@ import com.navi.pay.permission.model.view.PermissionState import com.navi.pay.permission.utils.PermissionKeys import com.navi.pay.permission.utils.PermissionUtils import com.navi.pay.utils.DEFAULT_INITIATION_MODE_QR_MANDATE -import com.navi.pay.utils.LIGHT_SENSOR_TIME_INTERVAL import com.navi.pay.utils.NAVI_PAY_SCAN_AND_PAY_ANALYTICS_EVENT import com.navi.pay.utils.clearBackStackUpToAndNavigate import com.navi.pay.utils.clickableDebounce @@ -211,36 +210,6 @@ fun QrScannerScreen( } } - if (FirebaseRemoteConfigHelper.getBoolean(LIGHT_SENSOR_DISABLE).not()) { - DisposableEffect(key1 = lifecycleOwner) { - var lastEventTs = 0L - val sensorListener = object : SensorEventListener { - override fun onSensorChanged(event: SensorEvent?) { - qrScannerViewModel.lightSensorValue = event?.values?.get(0) ?: 0f - if (lastEventTs < System.currentTimeMillis() - LIGHT_SENSOR_TIME_INTERVAL) { - lastEventTs = System.currentTimeMillis() - naviPayAnalytics.onLightSensor(event?.values?.get(0) ?: -1.0f) - } - } - - override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) { - } - } - val sensorManager = - naviPayActivity.getSystemService(Context.SENSOR_SERVICE) as SensorManager? - sensorManager?.getDefaultSensor(Sensor.TYPE_LIGHT)?.also { accelerometer -> - sensorManager.registerListener( - sensorListener, - accelerometer, - SensorManager.SENSOR_DELAY_NORMAL - ) - } - onDispose { - sensorManager?.unregisterListener(sensorListener) - } - } - } - resultRecipient.onNavResult { result -> when (result) { is NavResult.Canceled -> naviPayActivity.finish() @@ -438,10 +407,7 @@ fun QrScannerScreen( TorchButton( isTorchEnabled = isTorchEnabled, onTorchToggle = { - naviPayAnalytics.onTorchButtonClick( - isFlashOn = isTorchEnabled, - qrScannerViewModel.lightSensorValue - ) + naviPayAnalytics.onTorchButtonClick(isFlashOn = isTorchEnabled) qrScannerViewModel.toggleTorchStatus() }) diff --git a/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt b/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt index d480b3fed3..b3025e8986 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/management/moneytransfer/scanpay/viewmodel/QrScannerViewModel.kt @@ -75,8 +75,6 @@ class QrScannerViewModel @Inject constructor( var isQrCodeProcessing: AtomicBoolean = AtomicBoolean(false) - var lightSensorValue = 0f - private val _showPopUpPermission = MutableStateFlow(true) val showPopUpPermission = _showPopUpPermission.asStateFlow() diff --git a/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt b/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt index 273db7f1d0..39d38fb925 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt @@ -151,7 +151,6 @@ const val BANK_NAME_PLACEHOLDER = "{{BANK_NAME}}" const val RESOURCE_DEFAULT_ID = -1 const val RUPEE_SYMBOL = "₹" const val TRANSITION_DURATION = 200 -const val LIGHT_SENSOR_TIME_INTERVAL = 5000 const val RUPEE_SYMBOL_CHAR = '₹' //Deeplink