add display name for steps

maxime 1 year ago
parent e41e3eb8f3
commit 11806e0132

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