TP-62123 | Added Background Event to Check Permissions (#10196)

This commit is contained in:
Sanjay P
2024-03-27 22:48:24 +05:30
committed by GitHub
parent 9d42c3b3b7
commit 126d6a8954
2 changed files with 23 additions and 1 deletions

View File

@@ -7,10 +7,13 @@
package com.naviapp.manager
import android.Manifest
import android.app.Activity
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import com.navi.base.utils.orElse
import com.navi.common.managers.PermissionsManager
import com.navi.common.model.UploadDataAsyncResponse
import com.navi.common.network.models.isSuccess
import com.navi.common.useruploaddata.model.IngestionStatus
@@ -26,17 +29,21 @@ import com.naviapp.manager.usecase.UserDataUploadWorkerUseCase
import com.naviapp.models.request.PreSignedUrlRequest
import com.naviapp.models.response.PreSignedUrlListResponse
import com.naviapp.utils.Constants
import com.naviapp.utils.Constants.BACKGROUND_PERMISSION_CHECK
import com.naviapp.utils.Constants.DEFAULT
import com.naviapp.utils.Constants.FAILED
import com.naviapp.utils.Constants.HAS_COARSE_LOCATION_PERMISSION
import com.naviapp.utils.Constants.HAS_CONTACTS_PERMISSION
import com.naviapp.utils.Constants.HAS_SMS_PERMISSION
import com.naviapp.utils.Constants.SOURCE
import com.naviapp.utils.Constants.SUCCESS_CAPITAL
import com.naviapp.utils.Constants.WORKER_TYPE
import com.naviapp.utils.SmsUtil.extractTasks
import java.util.concurrent.atomic.AtomicBoolean
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicBoolean
/**
* The worker is responsible for uploading user data to server. Flows using the worker -
@@ -53,6 +60,7 @@ 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()
@@ -76,6 +84,16 @@ class RetryableUserDataUploadWorker(val context: Context, workerParams: WorkerPa
private fun sendEventTracker(eventName: String, data: Map<String, String>? = null) {
eventTracker.onEvent(eventName, data)
eventTracker.onEvent(
eventName = BACKGROUND_PERMISSION_CHECK, mapOf(
HAS_SMS_PERMISSION to permissionsManager.hasPermission(Manifest.permission.READ_SMS)
.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()
)
)
}
private fun initEventTracker() {

View File

@@ -455,6 +455,10 @@ object Constants {
const val LAST_SESSION_ID = "last_session_id"
const val FETCH_HOME_ITEMS = "fetchHomeItems"
const val MIDDLE_ROW_VISIBLE_FALSE = "middleRowVisibleFalse"
const val HAS_SMS_PERMISSION = "hasSmsPermission"
const val HAS_CONTACTS_PERMISSION = "hasContactsPermission"
const val HAS_COARSE_LOCATION_PERMISSION = "hasCoarseLocationPermission"
const val BACKGROUND_PERMISSION_CHECK = "background_permission_check"
object Notification {
const val HIDE_NOTIFICATION_COUNT = "hideNotificationCount"