diff --git a/android/app/src/main/java/com/naviapp/manager/RetryableUserDataUploadWorker.kt b/android/app/src/main/java/com/naviapp/manager/RetryableUserDataUploadWorker.kt index 15f7fa4e15..869b8f60bd 100644 --- a/android/app/src/main/java/com/naviapp/manager/RetryableUserDataUploadWorker.kt +++ b/android/app/src/main/java/com/naviapp/manager/RetryableUserDataUploadWorker.kt @@ -10,6 +10,8 @@ package com.naviapp.manager import android.Manifest import android.app.Activity import android.content.Context +import android.content.pm.PackageManager +import androidx.core.content.ContextCompat import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.navi.base.utils.orElse @@ -60,8 +62,6 @@ class RetryableUserDataUploadWorker(val context: Context, workerParams: WorkerPa private var attemptToSendData = AtomicBoolean(true) private var failureResult: Result? = null private lateinit var userDataUploadWorkerConfig: UserDataUploadWorkerConfig - private val permissionsManager by lazy { PermissionsManager(context as Activity) } - override suspend fun doWork(): Result { initData() initEventTracker() @@ -86,12 +86,16 @@ class RetryableUserDataUploadWorker(val context: Context, workerParams: WorkerPa eventTracker.onEvent(eventName, data) eventTracker.onEvent( eventName = BACKGROUND_PERMISSION_CHECK, mapOf( - HAS_SMS_PERMISSION to permissionsManager.hasPermission(Manifest.permission.READ_SMS) + HAS_SMS_PERMISSION to hasPermission( + context, + Manifest.permission.READ_SMS + ).toString(), + HAS_CONTACTS_PERMISSION to hasPermission(context, Manifest.permission.READ_CONTACTS) .toString(), - HAS_CONTACTS_PERMISSION to permissionsManager.hasPermission(Manifest.permission.READ_CONTACTS) - .toString(), - HAS_COARSE_LOCATION_PERMISSION to permissionsManager.hasPermission(Manifest.permission.ACCESS_COARSE_LOCATION) - .toString() + HAS_COARSE_LOCATION_PERMISSION to hasPermission( + context, + Manifest.permission.ACCESS_COARSE_LOCATION + ).toString() ) ) } @@ -283,6 +287,9 @@ class RetryableUserDataUploadWorker(val context: Context, workerParams: WorkerPa sendEventTracker(eventName, mapOf("ingestionList" to list.toString())) } + private fun hasPermission(context: Context, permission: String) = + ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED + companion object { const val DEFAULT_WORKER_RETRY_COUNT = 3