NTP-17003 | LocalContext.current as Activity to LocalActivity.current Migration (#15807)

This commit is contained in:
Aditya Narayan Malik
2025-04-15 14:36:27 +05:30
committed by GitHub
parent 4a8b2e09eb
commit 5b6336a4dd
7 changed files with 25 additions and 14 deletions

View File

@@ -9,7 +9,6 @@ package com.navi.pay.common.model.view
import android.app.Activity
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.core.app.ActivityCompat
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.MultiplePermissionsState
@@ -56,10 +55,10 @@ fun handlePermissionResult(
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun rememberMultiplePermissions(
activity: Activity,
permissions: List<String>,
onResult: (NaviPermissionResult) -> Unit,
): MultiplePermissionsState {
val activity = LocalContext.current as Activity
return rememberMultiplePermissionsState(permissions = permissions) {
handlePermissionResult(permissionsResultMap = it, activity = activity, onResult = onResult)
}

View File

@@ -7,9 +7,9 @@
package com.navi.pay.common.settingscreen.ui
import android.app.Activity
import android.os.Bundle
import android.widget.Toast
import androidx.activity.compose.LocalActivity
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.Image
@@ -35,7 +35,6 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
@@ -81,7 +80,7 @@ fun UPISettingSDK(
drawerState: () -> DrawerState,
settingSDKViewmodel: SettingSDKViewmodel = hiltViewModel(),
) {
val activity = LocalContext.current as Activity
val activity = LocalActivity.current ?: return
val onboardingResultLauncher =
rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { result

View File

@@ -253,10 +253,11 @@ fun QrScannerScreen(
val cameraPermissionsState =
rememberMultiplePermissions(
activity = naviPayActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = PermissionKeys.QR_SCAN_PERMISSION_KEY
)
),
) {
when (it) {
NaviPermissionResult.AllGranted -> {

View File

@@ -214,10 +214,11 @@ fun PayToContactsScreen(
val readContactsPermissionsState =
rememberMultiplePermissions(
activity = naviPayActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = PermissionKeys.CONTACT_PERMISSION_KEY
)
),
) {
when (it) {
NaviPermissionResult.AllGranted -> {

View File

@@ -204,20 +204,22 @@ fun NaviPayOnboardingScreen(
val locationPermissionState =
rememberMultiplePermissions(
activity = naviPayOnboardingActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = LOCATION_PERMISSION_KEY
)
),
) {
naviPayOnboardingViewModel.onLocationPermissionRequestResult()
}
val multiplePermissionsState =
rememberMultiplePermissions(
activity = naviPayOnboardingActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = FIRST_TIME_SCREEN_PERMISSION_KEY
)
),
) {
when (it) {
NaviPermissionResult.AllGranted -> {
@@ -286,10 +288,11 @@ fun NaviPayOnboardingScreen(
val phoneStatePermissionsState =
rememberMultiplePermissions(
activity = naviPayOnboardingActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = NON_FIRST_TIME_SCREEN_PERMISSION_KEY
)
),
) {
when (it) {
NaviPermissionResult.AllGranted -> {

View File

@@ -341,10 +341,11 @@ fun OrderDetailsScreen(
val notificationPermissionState =
rememberMultiplePermissions(
activity = naviPayActivity,
permissions =
PermissionUtils.getPermissionListFromPermissionKey(
permissionKey = PermissionKeys.NOTIFICATION_PERMISSION_KEY
)
),
) {
when (it) {
NaviPermissionResult.ShowRationale -> {

View File

@@ -170,7 +170,8 @@ fun ScanCardScreenRoot(
val cameraPermissionsState =
getCameraPermissionState(
onPermissionResult = { onEvent(ScanCardEvent.OnCameraPermissionResult(it)) }
activity = naviPaymentActivity,
onPermissionResult = { onEvent(ScanCardEvent.OnCameraPermissionResult(it)) },
)
BackHandler { onEvent(ScanCardEvent.OnBackPress) }
@@ -456,8 +457,14 @@ fun ErrorBottomSheetContent(
@kotlin.OptIn(ExperimentalPermissionsApi::class)
@Composable
private fun getCameraPermissionState(onPermissionResult: (NaviPermissionResult) -> Unit) =
rememberMultiplePermissions(permissions = listOf(Manifest.permission.CAMERA)) {
private fun getCameraPermissionState(
onPermissionResult: (NaviPermissionResult) -> Unit,
activity: NaviPaymentActivity,
) =
rememberMultiplePermissions(
activity = activity,
permissions = listOf(Manifest.permission.CAMERA),
) {
onPermissionResult(it)
}