mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-24 03:42:15 +00:00
Add: PermissionsItem
This commit is contained in:
parent
3c80cbea13
commit
ce3166fd57
@ -0,0 +1,69 @@
|
|||||||
|
package com.looker.droidify.ui.compose.pages.app_detail.components
|
||||||
|
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.wrapContentSize
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
import coil.compose.rememberAsyncImagePainter
|
||||||
|
import com.looker.droidify.R
|
||||||
|
import com.looker.droidify.entity.PermissionsType
|
||||||
|
import com.looker.droidify.utility.getLabels
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun PermissionsItem(
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
permissionsType: PermissionsType,
|
||||||
|
onClick: (String?, List<String>) -> Unit = { _, _ -> }
|
||||||
|
) {
|
||||||
|
val context = LocalContext.current
|
||||||
|
val pm = context.packageManager
|
||||||
|
|
||||||
|
Row(
|
||||||
|
modifier = modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.clickable {
|
||||||
|
onClick(
|
||||||
|
permissionsType.group?.name,
|
||||||
|
permissionsType.permissions.map { it.name })
|
||||||
|
}
|
||||||
|
.padding(vertical = 12.dp),
|
||||||
|
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
||||||
|
verticalAlignment = Alignment.Top
|
||||||
|
) {
|
||||||
|
Icon(
|
||||||
|
painter = rememberAsyncImagePainter(
|
||||||
|
model = if (permissionsType.group != null && permissionsType.group.icon != 0) {
|
||||||
|
permissionsType.group.loadUnbadgedIcon(pm)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
} ?: (R.drawable.ic_perm_device_information)
|
||||||
|
),
|
||||||
|
contentDescription = stringResource(
|
||||||
|
id = permissionsType.group?.descriptionRes ?: R.string.unknown
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.wrapContentSize()
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = permissionsType.permissions.getLabels(context)
|
||||||
|
.joinToString(separator = "\n"),
|
||||||
|
softWrap = true,
|
||||||
|
style = MaterialTheme.typography.titleMedium
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user