From cf295110885b042a76a6af37579f91f44532f819 Mon Sep 17 00:00:00 2001 From: Sidharth Bamba Date: Tue, 4 Jun 2024 11:34:56 +0530 Subject: [PATCH] TP-60133| Sidharth Bamba | Guard dog middleware super app (#11129) --- android/gradle/libs.versions.toml | 2 +- .../FirebaseRemoteConfigHelper.kt | 1 + .../java/com/navi/common/utils/CommonUtils.kt | 26 +++++++++++++++++++ .../common/sendmoney/ui/SendMoneyScreen.kt | 8 ++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index f2b79a6964..bdcc697df4 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -94,7 +94,7 @@ moengage-inapp = "6.5.0" moengage-push-amp-plus = "6.2.1" moengage-rich-notification = "4.3.2" navi-alfred = "1.6.0" -navi-guarddog = "1.10.0" +navi-guarddog = "3.0.0" navi-pulse = "1.3.0" navi-uitron = "1.10.0" navigation = "2.5.3" diff --git a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt index 83345f8ec8..2eba3eafd9 100644 --- a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt +++ b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt @@ -144,6 +144,7 @@ object FirebaseRemoteConfigHelper { const val ALLOW_AMOUNT_TEXT_FIELD_OUTSIDE_CLICK = "ALLOW_AMOUNT_TEXT_FIELD_OUTSIDE_CLICK" const val UPI_SCRATCH_CARD_REWARDS_POLLING_CONFIG = "UPI_SCRATCH_CARD_REWARDS_POLLING_CONFIG" + const val FRAUD_DETECTION_SDK_ENABLED = "FRAUD_DETECTION_SDK_ENABLED" const val PROXY_SELECTOR_ENABLED = "PROXY_SELECTOR_ENABLED" const val IS_UPI_SOFT_LOGGED_OUT_DISABLED = "IS_UPI_SOFT_LOGGED_OUT_DISABLED" diff --git a/android/navi-common/src/main/java/com/navi/common/utils/CommonUtils.kt b/android/navi-common/src/main/java/com/navi/common/utils/CommonUtils.kt index a54d4463e7..3f0c2fd5a3 100644 --- a/android/navi-common/src/main/java/com/navi/common/utils/CommonUtils.kt +++ b/android/navi-common/src/main/java/com/navi/common/utils/CommonUtils.kt @@ -11,6 +11,7 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import android.text.TextUtils import android.view.View +import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.gestures.FlingBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -42,6 +43,7 @@ import com.navi.base.utils.NetWatchManger import com.navi.base.utils.toDoubleWithSafe import com.navi.common.CommonLibManager import com.navi.common.constants.QA +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.model.common.ErrorLog import com.navi.common.network.models.GenericResponse import com.navi.common.utils.Constants.AM_BIG @@ -49,6 +51,10 @@ import com.navi.common.utils.Constants.AM_SMALL import com.navi.common.utils.Constants.PM_BIG import com.navi.common.utils.Constants.PM_SMALL import com.navi.common.viewmodel.getGsonBuilders +import com.navi.design.font.FontWeightEnum +import com.navi.design.theme.getFontWeight +import com.navi.design.theme.ttComposeFontFamily +import com.navi.guarddog.GuardDogSdkManager import com.navi.uitron.utils.orVal import dev.chrisbanes.snapper.ExperimentalSnapperApi import java.io.ByteArrayOutputStream @@ -294,4 +300,24 @@ object CommonUtils { return this.replace(oldValue = AM_SMALL, newValue = AM_BIG) .replace(oldValue = PM_SMALL, newValue = PM_BIG) } + + fun initFraudCheckSDK(activity: AppCompatActivity, screenName: String) { + GuardDogSdkManager.naviAppFraudCheck( + fragmentManager = activity.supportFragmentManager, + screenName = screenName, + activity = activity, + appVersionCode = CommonLibManager.appVersionCode, + externalId = + PreferenceManager.getStringPreference(CommonPrefConstants.USER_EXTERNAL_ID) + .toString(), + deviceId = deviceId, + isRealTimeFraudSDKEnabled = + FirebaseRemoteConfigHelper.getBoolean( + FirebaseRemoteConfigHelper.FRAUD_DETECTION_SDK_ENABLED + ), + fontFamily = ttComposeFontFamily, + fontWeightDemiBold = getFontWeight(FontWeightEnum.NAVI_BODY_DEMI_BOLD), + fontWeightRegular = getFontWeight(FontWeightEnum.NAVI_BODY_REGULAR), + ) + } } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt index ff68e8a3ff..94852d2311 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt @@ -42,9 +42,11 @@ import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.navi.alfred.AlfredManager import com.navi.common.upi.UPI_RESULT_CODE +import com.navi.common.utils.CommonUtils.initFraudCheckSDK import com.navi.pay.R import com.navi.pay.analytics.NaviPayAnalytics import com.navi.pay.common.model.view.NaviPayButtonAction +import com.navi.pay.common.model.view.NaviPayScreenType import com.navi.pay.common.model.view.SnackbarState import com.navi.pay.common.ui.FullScreenLottie import com.navi.pay.common.ui.FullScreenLottieV2 @@ -173,6 +175,12 @@ fun SendMoneyScreen( rewardNudgeShown = if (rewardsNudgeDetailEntity != null) "Y" else "N", naviPaySessionId = sendMoneyViewModel.getNaviPaySessionId() ) + + initFraudCheckSDK( + activity = naviPayActivity, + screenName = NaviPayScreenType.NAVI_PAY_SEND_MONEY_SCREEN.name + ) + sendMoneyViewModel.isKeyboardVisible.collect { isKeyboardVisible -> when (isKeyboardVisible) { true -> keyboardController?.show()