ADD: Edit Notes from Grid

This commit is contained in:
sebastian 2025-05-10 15:16:57 +02:00
parent 8989dcd21d
commit 0c1bc5265e
2 changed files with 14 additions and 7 deletions

View File

@ -71,7 +71,7 @@ class MainActivity : ComponentActivity() {
NoteVaultTheme { NoteVaultTheme {
val navController = rememberNavController() val navController = rememberNavController()
val viewModel: NoteViewModel = viewModel(factory = viewModelFactory) val viewModel: NoteViewModel = viewModel(factory = viewModelFactory)
val noteBrowserViewModelFactory: NoteBrowserViewModel = viewModel(factory = noteBrowserViewModelFactory) val noteBrowserViewModel: NoteBrowserViewModel = viewModel(factory = noteBrowserViewModelFactory)
var selectedUris by remember { mutableStateOf<List<Uri>>(emptyList()) } var selectedUris by remember { mutableStateOf<List<Uri>>(emptyList()) }
var showDialog by remember { mutableStateOf(false) } var showDialog by remember { mutableStateOf(false) }
var noteToEdit by remember { mutableStateOf<NoteEntity?>(null) } var noteToEdit by remember { mutableStateOf<NoteEntity?>(null) }
@ -213,7 +213,11 @@ class MainActivity : ComponentActivity() {
composable("notes") { composable("notes") {
NotesScreen(collectionRepository, noteRepository, onImportNotes = { NotesScreen(collectionRepository, noteRepository, onImportNotes = {
imagePickerLauncher.launch(arrayOf("image/*")) imagePickerLauncher.launch(arrayOf("image/*"))
}, noteBrowserViewModelFactory) }, noteBrowserViewModel,
onEditNote = {
noteToEdit = it
showDialog = true
})
} }
} }
@ -231,7 +235,7 @@ class MainActivity : ComponentActivity() {
genre = genre, genre = genre,
description = description, description = description,
selectedUris = selectedUris, selectedUris = selectedUris,
collectionID = noteBrowserViewModelFactory.currentParentId.value, collectionID = noteBrowserViewModel.currentParentId.value,
onDone = { showDialog = false } onDone = { showDialog = false }
) )
} else { } else {

View File

@ -270,7 +270,8 @@ fun NoteGrid(
notes: List<NoteEntity>, notes: List<NoteEntity>,
onCollectionClick: (NoteCollection) -> Unit, onCollectionClick: (NoteCollection) -> Unit,
onNoteClick: (NoteEntity) -> Unit, onNoteClick: (NoteEntity) -> Unit,
onDeleteNote: (NoteEntity) -> Unit onDeleteNote: (NoteEntity) -> Unit,
onEditNote: (NoteEntity) ->Unit
) { ) {
val columns = 2 // Anzahl Spalten, ggf. responsiv machen val columns = 2 // Anzahl Spalten, ggf. responsiv machen
LazyVerticalGrid( LazyVerticalGrid(
@ -309,7 +310,7 @@ fun NoteGrid(
} }
items(notes) { note -> items(notes) { note ->
NoteItem(note, onNoteClick = {}, onEditTitle = {}, onDeleteNote = {onDeleteNote(note)}) NoteItem(note, onNoteClick = {}, onEditTitle = {onEditNote(note)}, onDeleteNote = {onDeleteNote(note)})
} }
} }
} }
@ -318,7 +319,8 @@ fun NotesScreen(
collectionRepository: CollectionRepository, collectionRepository: CollectionRepository,
noteRepository: NoteRepository, noteRepository: NoteRepository,
onImportNotes: (Int?) -> Unit, onImportNotes: (Int?) -> Unit,
viewModel: NoteBrowserViewModel viewModel: NoteBrowserViewModel,
onEditNote: (NoteEntity) -> Unit
) { ) {
var menuExpanded by remember { mutableStateOf(false) } var menuExpanded by remember { mutableStateOf(false) }
var showDialog by remember { mutableStateOf(false) } var showDialog by remember { mutableStateOf(false) }
@ -387,7 +389,8 @@ fun NotesScreen(
onNoteClick = { /* TODO: Öffnen oder Bearbeiten */ }, onNoteClick = { /* TODO: Öffnen oder Bearbeiten */ },
onDeleteNote = { onDeleteNote = {
viewModel.removeNote(noteEntity = it) viewModel.removeNote(noteEntity = it)
} },
onEditNote = onEditNote
) )
} }