From 11806e01321d3363f609ccd26599b8cd211cc198 Mon Sep 17 00:00:00 2001 From: maxime Date: Sun, 31 Mar 2024 16:52:29 +0200 Subject: [PATCH] add display name for steps --- .../main/java/com/iqball/app/MainActivity.kt | 2 +- .../java/com/iqball/app/component/StepTree.kt | 9 +++++++-- .../iqball/app/domains/StepsTreeDomains.kt | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/iqball/app/domains/StepsTreeDomains.kt diff --git a/app/src/main/java/com/iqball/app/MainActivity.kt b/app/src/main/java/com/iqball/app/MainActivity.kt index 4d7f7df..7c0dd37 100644 --- a/app/src/main/java/com/iqball/app/MainActivity.kt +++ b/app/src/main/java/com/iqball/app/MainActivity.kt @@ -98,5 +98,5 @@ fun App(service: IQBallService) { auth.getOrNull()!!.token } - VisualizerPage(service, auth, 1) + VisualizerPage(service, auth, 28) } \ No newline at end of file diff --git a/app/src/main/java/com/iqball/app/component/StepTree.kt b/app/src/main/java/com/iqball/app/component/StepTree.kt index c8fec61..c1e4d8c 100644 --- a/app/src/main/java/com/iqball/app/component/StepTree.kt +++ b/app/src/main/java/com/iqball/app/component/StepTree.kt @@ -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 diff --git a/app/src/main/java/com/iqball/app/domains/StepsTreeDomains.kt b/app/src/main/java/com/iqball/app/domains/StepsTreeDomains.kt new file mode 100644 index 0000000..697df9e --- /dev/null +++ b/app/src/main/java/com/iqball/app/domains/StepsTreeDomains.kt @@ -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() +} \ No newline at end of file