FIX: Navigation using Breadcrumbs
This commit is contained in:
parent
828a4e0fd3
commit
b9fe9cf184
@ -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>
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user