kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
add access. labels to node chips (#2688)
rodzic
8e9def7566
commit
66ea72e5b3
|
|
@ -42,6 +42,8 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.semantics.contentDescription
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
|
|
@ -70,7 +72,8 @@ fun ContactItem(
|
|||
.combinedClickable(onClick = onClick, onLongClick = onLongClick)
|
||||
.background(color = if (selected) Color.Gray else MaterialTheme.colorScheme.background)
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 8.dp, vertical = 6.dp),
|
||||
.padding(horizontal = 8.dp, vertical = 6.dp)
|
||||
.semantics { contentDescription = shortName },
|
||||
shape = RoundedCornerShape(12.dp),
|
||||
) {
|
||||
val colors =
|
||||
|
|
@ -86,7 +89,7 @@ fun ContactItem(
|
|||
Row(modifier = Modifier.fillMaxWidth().padding(8.dp), verticalAlignment = Alignment.CenterVertically) {
|
||||
AssistChip(
|
||||
onClick = onNodeChipClick,
|
||||
modifier = Modifier.padding(end = 8.dp).width(72.dp),
|
||||
modifier = Modifier.padding(end = 8.dp).width(72.dp).semantics { contentDescription = shortName },
|
||||
label = {
|
||||
Text(
|
||||
text = shortName,
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.semantics.contentDescription
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
|
@ -58,18 +60,19 @@ fun NodeChip(
|
|||
val inputChipInteractionSource = remember { MutableInteractionSource() }
|
||||
Box {
|
||||
ElevatedAssistChip(
|
||||
modifier = modifier
|
||||
.width(IntrinsicSize.Min)
|
||||
.defaultMinSize(minWidth = 72.dp),
|
||||
modifier =
|
||||
modifier.width(IntrinsicSize.Min).defaultMinSize(minWidth = 72.dp).semantics {
|
||||
contentDescription = node.user.shortName.ifEmpty { "Node" }
|
||||
},
|
||||
elevation = AssistChipDefaults.elevatedAssistChipElevation(),
|
||||
colors = AssistChipDefaults.elevatedAssistChipColors(
|
||||
colors =
|
||||
AssistChipDefaults.elevatedAssistChipColors(
|
||||
containerColor = Color(nodeColor),
|
||||
labelColor = Color(textColor),
|
||||
),
|
||||
label = {
|
||||
Text(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth(),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = node.user.shortName.ifEmpty { "???" },
|
||||
fontSize = MaterialTheme.typography.labelLarge.fontSize,
|
||||
textDecoration = TextDecoration.LineThrough.takeIf { isIgnored },
|
||||
|
|
@ -81,14 +84,15 @@ fun NodeChip(
|
|||
interactionSource = inputChipInteractionSource,
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.matchParentSize()
|
||||
modifier =
|
||||
Modifier.matchParentSize()
|
||||
.combinedClickable(
|
||||
onClick = { onAction(NodeMenuAction.MoreDetails(node)) },
|
||||
onLongClick = { menuExpanded = true },
|
||||
interactionSource = inputChipInteractionSource,
|
||||
indication = null,
|
||||
)
|
||||
.semantics { contentDescription = node.user.shortName.ifEmpty { "Node" } },
|
||||
)
|
||||
}
|
||||
NodeMenu(
|
||||
|
|
@ -99,7 +103,7 @@ fun NodeChip(
|
|||
onAction = {
|
||||
menuExpanded = false
|
||||
onAction(it)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -107,22 +111,15 @@ fun NodeChip(
|
|||
@Preview
|
||||
@Composable
|
||||
fun NodeChipPreview() {
|
||||
val user = MeshProtos.User.newBuilder()
|
||||
.setShortName("\uD83E\uDEE0")
|
||||
.setLongName("John Doe")
|
||||
.build()
|
||||
val node = Node(
|
||||
num = 13444,
|
||||
user = user,
|
||||
isIgnored = false,
|
||||
paxcounter = PaxcountProtos.Paxcount.newBuilder().setBle(10).setWifi(5).build(),
|
||||
environmentMetrics = TelemetryProtos.EnvironmentMetrics.newBuilder().setTemperature(25f)
|
||||
.setRelativeHumidity(60f).build()
|
||||
)
|
||||
NodeChip(
|
||||
node = node,
|
||||
isThisNode = false,
|
||||
isConnected = true,
|
||||
onAction = {}
|
||||
)
|
||||
val user = MeshProtos.User.newBuilder().setShortName("\uD83E\uDEE0").setLongName("John Doe").build()
|
||||
val node =
|
||||
Node(
|
||||
num = 13444,
|
||||
user = user,
|
||||
isIgnored = false,
|
||||
paxcounter = PaxcountProtos.Paxcount.newBuilder().setBle(10).setWifi(5).build(),
|
||||
environmentMetrics =
|
||||
TelemetryProtos.EnvironmentMetrics.newBuilder().setTemperature(25f).setRelativeHumidity(60f).build(),
|
||||
)
|
||||
NodeChip(node = node, isThisNode = false, isConnected = true, onAction = {})
|
||||
}
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue