add display name for steps

maxime 1 year ago
parent e41e3eb8f3
commit 11806e0132

@ -98,5 +98,5 @@ fun App(service: IQBallService) {
auth.getOrNull()!!.token auth.getOrNull()!!.token
} }
VisualizerPage(service, auth, 1) VisualizerPage(service, auth, 28)
} }

@ -29,6 +29,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.chihsuanwu.freescroll.freeScroll import com.chihsuanwu.freescroll.freeScroll
import com.chihsuanwu.freescroll.rememberFreeScrollState import com.chihsuanwu.freescroll.rememberFreeScrollState
import com.iqball.app.domains.getStepName
import com.iqball.app.model.tactic.StepNodeInfo import com.iqball.app.model.tactic.StepNodeInfo
import com.iqball.app.ui.theme.SelectedStepNode import com.iqball.app.ui.theme.SelectedStepNode
import com.iqball.app.ui.theme.StepNode import com.iqball.app.ui.theme.StepNode
@ -76,12 +77,13 @@ fun StepsTree(root: StepNodeInfo, selectedNodeId: Int, onNodeSelected: (StepNode
}, },
contentAlignment = Alignment.TopCenter contentAlignment = Alignment.TopCenter
) { ) {
StepsTreeContent(root, selectedNodeId, onNodeSelected, nodesOffsets) StepsTreeContent(root, root, selectedNodeId, onNodeSelected, nodesOffsets)
} }
} }
@Composable @Composable
private fun StepsTreeContent( private fun StepsTreeContent(
root: StepNodeInfo,
node: StepNodeInfo, node: StepNodeInfo,
selectedNodeId: Int, selectedNodeId: Int,
onNodeSelected: (StepNodeInfo) -> Unit, onNodeSelected: (StepNodeInfo) -> Unit,
@ -93,6 +95,7 @@ private fun StepsTreeContent(
modifier = Modifier modifier = Modifier
) { ) {
StepPiece( StepPiece(
name = getStepName(root, node.id),
node = node, node = node,
isSelected = selectedNodeId == node.id, isSelected = selectedNodeId == node.id,
onNodeSelected = { onNodeSelected(node) }, onNodeSelected = { onNodeSelected(node) },
@ -110,6 +113,7 @@ private fun StepsTreeContent(
) { ) {
for (children in node.children) { for (children in node.children) {
StepsTreeContent( StepsTreeContent(
root = root,
node = children, node = children,
selectedNodeId = selectedNodeId, selectedNodeId = selectedNodeId,
onNodeSelected = onNodeSelected, onNodeSelected = onNodeSelected,
@ -122,6 +126,7 @@ private fun StepsTreeContent(
@Composable @Composable
fun StepPiece( fun StepPiece(
name: String,
node: StepNodeInfo, node: StepNodeInfo,
isSelected: Boolean, isSelected: Boolean,
onNodeSelected: () -> Unit, onNodeSelected: () -> Unit,
@ -136,7 +141,7 @@ fun StepPiece(
} }
) { ) {
Text( Text(
text = node.id.toString(), text = name,
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
color = if (isSelected) Color.White else Color.Black, color = if (isSelected) Color.White else Color.Black,
modifier = Modifier modifier = Modifier

@ -0,0 +1,19 @@
package com.iqball.app.domains
import com.iqball.app.model.tactic.StepNodeInfo
fun getStepName(root: StepNodeInfo, step: Int): String {
var ord = 1
val nodes = mutableListOf(root)
while (nodes.isNotEmpty()) {
val node = nodes.removeFirst()
if (node.id == step) break
ord += 1
nodes.addAll(node.children.reversed())
}
return ord.toString()
}
Loading…
Cancel
Save