FIX: Navigation using Breadcrumbs

This commit is contained in:
sebastian 2025-05-10 11:45:52 +02:00
parent 828a4e0fd3
commit b9fe9cf184
2 changed files with 72 additions and 56 deletions

View File

@ -4,10 +4,10 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2025-05-10T09:28:03.000292036Z">
<DropdownSelection timestamp="2025-05-10T09:35:55.287804256Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=R52N50NLGRT" />
<DeviceId pluginId="LocalEmulator" identifier="path=/home/sebastian/.android/avd/Pixel_9.avd" />
</handle>
</Target>
</DropdownSelection>

View File

@ -112,27 +112,35 @@ fun CollectionBreadcrumbs(
.padding(8.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = "Start",
modifier = Modifier
.clickable { onNavigateTo(-1) }
.padding(horizontal = 4.dp),
style = MaterialTheme.typography.labelLarge
)
BreadcrumbItem(label = "Start", onClick = { onNavigateTo(-1) })
path.forEachIndexed { index, collection ->
Text(" / ", style = MaterialTheme.typography.labelLarge)
Text(
text = collection.name,
modifier = Modifier
.clickable { onNavigateTo(index) }
.padding(horizontal = 4.dp),
style = MaterialTheme.typography.labelLarge
)
BreadcrumbItem(label = collection.name, onClick = {
Log.d("Breadcrumb", "BreadcrumbItem " + collection.name + " was clicked")
onNavigateTo(index)
})
}
}
}
@Composable
private fun BreadcrumbItem(label: String, onClick: () -> Unit) {
Box(
modifier = Modifier
.padding(horizontal = 4.dp)
.clickable(onClick = {
Log.d("Individual Breadcrumb", "A simple test " + label)
onClick()
})
) {
Text(
text = label,
style = MaterialTheme.typography.labelLarge,
)
}
}
@Composable
fun NotesScreen(
@ -184,22 +192,27 @@ fun NotesScreen(
content = { innerPadding ->
val path by viewModel.pathStack.collectAsState()
BackHandler(enabled = path.isNotEmpty()) {
viewModel.navigateUp()
}
Column(
modifier = Modifier
.fillMaxSize()
.padding(innerPadding)
) {
// Breadcrumbs sichtbar & klickbar machen
CollectionBreadcrumbs(
path = path,
onNavigateTo = { index ->
Log.d("NoteBrowser", "Navigate to: $index")
if (index == -1) viewModel.loadContentForParent(null)
else viewModel.navigateToLevel(index)
}
)
LazyColumn(
modifier = Modifier
.fillMaxSize()
.padding(innerPadding)
) {
LazyColumn {
item {
Text(
"Ordner",
@ -212,7 +225,9 @@ fun NotesScreen(
ListItem(
headlineContent = { Text(collection.name) },
modifier = Modifier
.clickable { viewModel.loadContentForParent(collection.id, collection) }
.clickable {
viewModel.loadContentForParent(collection.id, collection)
}
.padding(horizontal = 8.dp)
)
}
@ -232,11 +247,12 @@ fun NotesScreen(
supportingContent = {
note.composer?.let { Text(it) }
},
modifier = Modifier
.padding(horizontal = 8.dp)
modifier = Modifier.padding(horizontal = 8.dp)
)
}
}
}
if (showDialog) {