compose: permission: Filter out unknown permissions

Otherwise lazy column seems to add extra space for some reason

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-10-26 15:10:26 +08:00
parent 0650df41d6
commit 6d025b63de
2 changed files with 7 additions and 5 deletions

View File

@@ -67,7 +67,7 @@ fun PermissionScreen(
@Composable @Composable
private fun ScreenContent( private fun ScreenContent(
topAppBarTitle: String? = null, topAppBarTitle: String? = null,
permissionsInfo: Map<String, PermissionInfo?> = emptyMap(), permissionsInfo: Map<String, PermissionInfo> = emptyMap(),
onNavigateUp: () -> Unit = {}, onNavigateUp: () -> Unit = {},
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo() windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
) { ) {
@@ -90,8 +90,7 @@ private fun ScreenContent(
verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium)) verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_medium))
) { ) {
items(items = permissionsInfo.keys.toList(), key = { it }) { permission -> items(items = permissionsInfo.keys.toList(), key = { it }) { permission ->
// Bail out if this is not a known permission for the OS val permissionInfo = permissionsInfo.getValue(permission)
val permissionInfo = permissionsInfo.getValue(permission) ?: return@items
Info( Info(
title = AnnotatedString( title = AnnotatedString(

View File

@@ -28,7 +28,7 @@ class PermissionViewModel @AssistedInject constructor(
fun create(permissions: List<String>): PermissionViewModel fun create(permissions: List<String>): PermissionViewModel
} }
private val _permissionsInfo = MutableStateFlow<Map<String, PermissionInfo?>>(emptyMap()) private val _permissionsInfo = MutableStateFlow<Map<String, PermissionInfo>>(emptyMap())
val permissionsInfo = _permissionsInfo.asStateFlow() val permissionsInfo = _permissionsInfo.asStateFlow()
init { init {
@@ -36,7 +36,10 @@ class PermissionViewModel @AssistedInject constructor(
} }
private fun fetchPermissions() { private fun fetchPermissions() {
_permissionsInfo.value = permissions.associateWith { getPermissionInfo(it) } // Bail out if this is not a known permission for the OS
_permissionsInfo.value = permissions.mapNotNull { permission ->
getPermissionInfo(permission)?.let { info -> permission to info }
}.toMap()
} }
private fun getPermissionInfo(permissionName: String): PermissionInfo? { private fun getPermissionInfo(permissionName: String): PermissionInfo? {