TP-72287 | permission events added (#11641)
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user