TP-72287 | permission events added (#11641)

This commit is contained in:
Shaurya Rehan
2024-07-02 16:25:35 +05:30
committed by GitHub
parent d37969150f
commit c4c3c0c9f1
4 changed files with 140 additions and 16 deletions

View File

@@ -458,28 +458,36 @@ class NaviPayAnalytics private constructor() {
fun onPermissionGranted(
onboardingSource: String? = null,
naviPaySessionAttributes: Map<String, String>? = null
naviPaySessionAttributes: Map<String, String>? = null,
smsPermissionGiven: Boolean? = false,
phonePermissionGiven: Boolean? = false
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_Setup_PermissionGranted",
mapOf(
"naviPayOnboardingSource" to onboardingSource.orEmpty(),
"naviPayOnboardingSessionId" to
naviPaySessionAttributes?.get("naviPayOnboardingSessionId").orEmpty()
naviPaySessionAttributes?.get("naviPayOnboardingSessionId").orEmpty(),
"smsPermissionGiven" to smsPermissionGiven.toString(),
"phonePermissionGiven" to phonePermissionGiven.toString()
)
)
}
fun onPermissionDenied(
onboardingSource: String? = null,
naviPaySessionAttributes: Map<String, String>? = null
naviPaySessionAttributes: Map<String, String>? = null,
smsPermissionGiven: Boolean? = false,
phonePermissionGiven: Boolean? = false
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_Setup_PermissionDenied",
mapOf(
"naviPayOnboardingSource" to onboardingSource.orEmpty(),
"naviPayOnboardingSessionId" to
naviPaySessionAttributes?.get("naviPayOnboardingSessionId").orEmpty()
naviPaySessionAttributes?.get("naviPayOnboardingSessionId").orEmpty(),
"smsPermissionGiven" to smsPermissionGiven.toString(),
"phonePermissionGiven" to phonePermissionGiven.toString()
)
)
}
@@ -708,8 +716,17 @@ class NaviPayAnalytics private constructor() {
)
}
fun onAppSettingsScreenLaunched() {
NaviTrackEvent.trackEventOnClickStream("NaviPay_Permission_Settings_Launched")
fun onAppSettingsScreenLaunched(
smsPermissionGiven: Boolean? = false,
phonePermissionGiven: Boolean? = false
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_Permission_Settings_Launched",
mapOf(
"smsPermissionGiven" to smsPermissionGiven.toString(),
"phonePermissionGiven" to phonePermissionGiven.toString()
)
)
}
fun onPermissionNextClicked() {

View File

@@ -212,7 +212,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionGranted(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
naviPayOnboardingViewModelV2.startSimBinding()
}
@@ -220,7 +228,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
navigator.navigate(
NaviPayPermissionScreenV2Destination(
@@ -234,7 +250,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
navigator.navigate(
NaviPayPermissionScreenV2Destination(
@@ -259,7 +283,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionGranted(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
val currentSimInfoList =
NaviPayCommonUtils.getCurrentSimInfoList(
@@ -272,7 +304,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
navigator.navigate(
NaviPayPermissionScreenV2Destination(
@@ -286,7 +326,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
navigator.navigate(
NaviPayPermissionScreenV2Destination(
@@ -305,7 +353,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
naviPayOnboardingViewModelV2.updateCustomerStatusInDataStoreAndFinishActivity()
}
@@ -314,7 +370,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionGranted(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
val currentSimInfoList =
NaviPayCommonUtils.getCurrentSimInfoList(
@@ -345,7 +409,15 @@ fun NaviPayOnboardingScreenV2(
naviPayAnalytics.onPermissionDenied(
onboardingSource = onboardingSource,
naviPaySessionAttributes =
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes()
naviPayOnboardingViewModelV2.getNaviPaySessionAttributes(),
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
context = naviPayOnboardingActivityV2.applicationContext
)
)
naviPayOnboardingViewModelV2.updateCustomerStatusInDataStoreAndFinishActivity()
}

View File

@@ -297,7 +297,16 @@ fun RenderNaviPayPermissionScreenV2(
)
} else if (permissionViewModel.shouldGoToSettings()) {
naviPayOnboardingActivityV2.launchPermissionSettingsScreen()
naviPayAnalytics.onAppSettingsScreenLaunched()
naviPayAnalytics.onAppSettingsScreenLaunched(
smsPermissionGiven =
PermissionUtils.isSmsPermissionGranted(
naviPayOnboardingActivityV2.applicationContext
),
phonePermissionGiven =
PermissionUtils.isPhoneStatePermissionGranted(
naviPayOnboardingActivityV2.applicationContext
)
)
} else {
launcher.launch(permissions.toTypedArray())
}

View File

@@ -8,7 +8,10 @@
package com.navi.pay.permission.utils
import android.Manifest
import android.content.Context
import android.content.pm.PackageManager
import android.os.Build
import androidx.core.content.ContextCompat
import com.navi.pay.R
import com.navi.pay.permission.model.view.PermissionData
import com.navi.pay.permission.utils.PermissionKeyData.CONTACT_PERMISSION_DATA
@@ -42,6 +45,29 @@ object PermissionUtils {
permissionDataList.forEach { permissionList.addAll(it.qualifierList) }
return permissionList
}
fun isPhoneStatePermissionGranted(context: Context): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) ==
PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(
context,
Manifest.permission.READ_PHONE_NUMBERS
) == PackageManager.PERMISSION_GRANTED
} else {
ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) ==
PackageManager.PERMISSION_GRANTED
}
}
fun isSmsPermissionGranted(context: Context): Boolean {
return ContextCompat.checkSelfPermission(context, Manifest.permission.SEND_SMS) ==
PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(context, Manifest.permission.RECEIVE_SMS) ==
PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(context, Manifest.permission.READ_SMS) ==
PackageManager.PERMISSION_GRANTED
}
}
object PermissionKeys {