From 75a5c1ae8d8ac6acd3455c1e6a38f71aced81373 Mon Sep 17 00:00:00 2001 From: Soumya Ranjan Patra Date: Tue, 24 Sep 2024 00:31:47 +0530 Subject: [PATCH] TP-85368 | Add isRooted, isEmulator and otpAutofill params in LoginRequest (#12709) --- .../com/naviapp/models/request/UserLoginRequest.kt | 3 +++ .../main/java/com/naviapp/registration/OtpFragment.kt | 2 +- .../com/naviapp/registration/RegistrationActivity.kt | 2 +- .../app/src/main/java/com/naviapp/utils/LoginUtils.kt | 11 +++++++++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/com/naviapp/models/request/UserLoginRequest.kt b/android/app/src/main/java/com/naviapp/models/request/UserLoginRequest.kt index 314873f81e..cb4e72c7ca 100644 --- a/android/app/src/main/java/com/naviapp/models/request/UserLoginRequest.kt +++ b/android/app/src/main/java/com/naviapp/models/request/UserLoginRequest.kt @@ -41,4 +41,7 @@ data class LoginDeviceDetails( @SerializedName("os") val os: String? = null, @SerializedName("osVersion") val osVersion: Int? = null, @SerializedName("ipAddress") val ipAddress: String? = null, + @SerializedName("isRooted") val isRooted: Boolean? = null, + @SerializedName("isEmulator") val isEmulator: Boolean? = null, + @SerializedName("otpAutofill") val otpAutofill: Boolean? = null, ) diff --git a/android/app/src/main/java/com/naviapp/registration/OtpFragment.kt b/android/app/src/main/java/com/naviapp/registration/OtpFragment.kt index e4457eecc1..68eda7b098 100644 --- a/android/app/src/main/java/com/naviapp/registration/OtpFragment.kt +++ b/android/app/src/main/java/com/naviapp/registration/OtpFragment.kt @@ -145,7 +145,7 @@ class OtpFragment : BaseFragment(), View.OnClickListener { UserLoginRequest( loginType = LoginType.OTP.name, authDetails = AuthDetails(idToken = otpVerifyResponse.idToken), - deviceDetail = getLoginDeviceUtils(requireContext()), + deviceDetail = getLoginDeviceUtils(requireContext(), otpAutofill), ), density = getDensityName(context = requireContext()).orEmpty(), connectivityType = getNetworkType(context = requireContext()), diff --git a/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt b/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt index 836f71b228..8ccb18e958 100644 --- a/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt +++ b/android/app/src/main/java/com/naviapp/registration/RegistrationActivity.kt @@ -321,7 +321,7 @@ class RegistrationActivity : UserLoginRequest( loginType = LoginType.TRUE_CALLER.name, authDetails = AuthDetails(truecallerAuthData = trueCallerAuthData), - deviceDetail = getLoginDeviceUtils(this), + deviceDetail = getLoginDeviceUtils(this, false), ), density = getDensityName(context = this).orEmpty(), connectivityType = getNetworkType(context = this), diff --git a/android/app/src/main/java/com/naviapp/utils/LoginUtils.kt b/android/app/src/main/java/com/naviapp/utils/LoginUtils.kt index 3993048fbf..97a6f1217d 100644 --- a/android/app/src/main/java/com/naviapp/utils/LoginUtils.kt +++ b/android/app/src/main/java/com/naviapp/utils/LoginUtils.kt @@ -10,6 +10,7 @@ package com.naviapp.utils import android.content.Context import com.navi.base.utils.NaviNetworkConnectivityImpl import com.navi.common.utils.CommonFraudUtil +import com.navi.common.utils.CommonRootDeviceUtil import com.navi.common.utils.Constants import com.navi.common.utils.deviceId import com.navi.common.utils.fetchInstallerName @@ -17,9 +18,10 @@ import com.navi.common.utils.getLocalStorageLocation import com.navi.common.utils.getOsVersion import com.navi.common.utils.isInstalledInProfile import com.navi.common.utils.isLastLocationMocked +import com.navi.guarddog.datamanagement.securityManager.SecurityManager import com.naviapp.models.request.LoginDeviceDetails -fun getLoginDeviceUtils(context: Context): LoginDeviceDetails { +fun getLoginDeviceUtils(context: Context, otpAutofill: Boolean): LoginDeviceDetails { return LoginDeviceDetails( allowMockLocations = isLastLocationMocked(), clonedDetails = CommonFraudUtil.getCloneDetails(context), @@ -29,6 +31,11 @@ fun getLoginDeviceUtils(context: Context): LoginDeviceDetails { localStorageLocation = getLocalStorageLocation(context), os = Constants.OS_ANDROID, osVersion = getOsVersion(), - ipAddress = NaviNetworkConnectivityImpl(context).getIpAddress() + ipAddress = NaviNetworkConnectivityImpl(context).getIpAddress(), + isRooted = + CommonRootDeviceUtil.instance.rootedDeviceUsingFirebase() || + CommonRootDeviceUtil.instance.isDeviceRooted(), + isEmulator = SecurityManager(context).isEmulator(), + otpAutofill = otpAutofill, ) }