Harshad Pawar
11/08/2024, 9:38 AMFrançois
11/08/2024, 9:46 AMHarshad Pawar
11/08/2024, 9:48 AMHarshad Pawar
11/08/2024, 10:20 AMFrançois
11/08/2024, 10:25 AMHarshad Pawar
11/08/2024, 12:43 PMclass PermissionVm(private val controller: PermissionsController) : ViewModel() {
var state by mutableStateOf(PermissionState.NotDetermined)
private set
init {
viewModelScope.launch {
state = controller.getPermissionState(Permission.GALLERY)
}
}
fun provideOrRequestGalleryPermissions() {
viewModelScope.launch {
try {
controller.providePermission(Permission.GALLERY)
state = PermissionState.Granted
Logger.e("Request Permissions state granted")
} catch (ex: DeniedAlwaysException) {
state = PermissionState.DeniedAlways
Logger.e("Request Permissions state DeniedAlways ")
} catch (ex: DeniedException) {
state = PermissionState.Denied
Logger.e("Request Permissions state denied ")
} catch (ex: RequestCanceledException) {
Logger.e("Request Permissions Exception ${ex.message}")
} catch (ex: Exception) {
Logger.e("Request Permissions Exception ${ex.message}")
}
}
}
}
When I grant permission still this showing
DeniedAlways
can you please help me here why that so
and this is my composable method
@Composable
fun CheckAndRequestPermissions(
permissionVm: PermissionVm,
controller: PermissionsController,
navHostContent: NavHostContent,
doaClient: KtorClient
) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
when (permissionVm.state) {
PermissionState.Granted -> {
NavHostContainer(
navComponent = navHostContent,
doaClient = doaClient,
modifier = Modifier.fillMaxSize()
)
}
PermissionState.DeniedAlways -> {
CustomButton(
label = "App Settings",
txtColor = Color.White,
buttonColor = lightBlue,
onClick = {
controller.openAppSettings()
}
)
}
else -> {
CustomButton(
label = "Request Permissions",
txtColor = Color.White,
buttonColor = lightBlue,
onClick = {
permissionVm.provideOrRequestGalleryPermissions()
}
)
}
}
}
}
TheArchitect123
11/15/2024, 4:48 PM