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:
@@ -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(
|
||||||
|
|||||||
@@ -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? {
|
||||||
|
|||||||
Reference in New Issue
Block a user