Compare commits

...

2 Commits

Author SHA1 Message Date
58d2658dc4 Merge pull request 'nextNoteVault' (#23) from nextNoteVault into master
Reviewed-on: #23
2025-05-10 06:23:23 +00:00
sebastian
41ab187f04 ADD: Datastructure for Note Collections 2025-05-10 08:21:58 +02:00
7 changed files with 56 additions and 5 deletions

1
.idea/.gitignore vendored
View File

@ -6,3 +6,4 @@
# Datasource local storage ignored files # Datasource local storage ignored files
/dataSources/ /dataSources/
/dataSources.local.xml /dataSources.local.xml
/AndroidProjectSystem.xml

View File

@ -45,6 +45,7 @@ import come.stormborntales.notevault.data.local.entity.NoteEntity
import come.stormborntales.notevault.data.repository.NoteRepository import come.stormborntales.notevault.data.repository.NoteRepository
import come.stormborntales.notevault.ui.screens.AddNoteDialog import come.stormborntales.notevault.ui.screens.AddNoteDialog
import come.stormborntales.notevault.ui.screens.MainScreen import come.stormborntales.notevault.ui.screens.MainScreen
import come.stormborntales.notevault.ui.screens.NotesScreen
import come.stormborntales.notevault.ui.screens.SettingsScreen import come.stormborntales.notevault.ui.screens.SettingsScreen
import come.stormborntales.notevault.ui.theme.NoteVaultTheme import come.stormborntales.notevault.ui.theme.NoteVaultTheme
import come.stormborntales.notevault.ui.viewmodel.NoteViewModel import come.stormborntales.notevault.ui.viewmodel.NoteViewModel
@ -90,6 +91,7 @@ class MainActivity : ComponentActivity() {
val navItems = listOf( val navItems = listOf(
"Home" to "main", "Home" to "main",
"Notes" to "notes",
"Einstellungen" to "settings" "Einstellungen" to "settings"
) )
@ -203,6 +205,9 @@ class MainActivity : ComponentActivity() {
composable("settings") { composable("settings") {
SettingsScreen() SettingsScreen()
} }
composable("notes") {
NotesScreen()
}
} }
if (showDialog) { if (showDialog) {

View File

@ -7,9 +7,10 @@ import androidx.room.Room
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import androidx.room.TypeConverters import androidx.room.TypeConverters
import come.stormborntales.notevault.data.local.dao.NoteDao import come.stormborntales.notevault.data.local.dao.NoteDao
import come.stormborntales.notevault.data.local.entity.NoteCollection
import come.stormborntales.notevault.data.local.entity.NoteEntity import come.stormborntales.notevault.data.local.entity.NoteEntity
@Database(entities = [NoteEntity::class], version = 1) @Database(entities = [NoteEntity::class, NoteCollection::class], version = 1)
@TypeConverters(UriListConverter::class) @TypeConverters(UriListConverter::class)
abstract class AppDatabase : RoomDatabase() { abstract class AppDatabase : RoomDatabase() {
abstract fun noteDao(): NoteDao abstract fun noteDao(): NoteDao

View File

@ -0,0 +1,11 @@
package come.stormborntales.notevault.data.local.entity
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity("note_collections")
data class NoteCollection(
@PrimaryKey(autoGenerate = true) var id: Int = 0,
var name: String,
var parentId: Int? = null
)

View File

@ -1,9 +1,16 @@
package come.stormborntales.notevault.data.local.entity package come.stormborntales.notevault.data.local.entity
import androidx.room.Entity import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
@Entity(tableName = "notes") @Entity(tableName = "notes",
foreignKeys = [ForeignKey(
entity = NoteCollection::class,
parentColumns = ["id"],
childColumns = ["collectionId"],
onDelete = ForeignKey.CASCADE
)])
data class NoteEntity( data class NoteEntity(
@PrimaryKey(autoGenerate = true) val id: Int = 0, @PrimaryKey(autoGenerate = true) val id: Int = 0,
var title: String, var title: String,
@ -12,5 +19,6 @@ data class NoteEntity(
var year: Int?, var year: Int?,
var genre: String?, var genre: String?,
var description: String?, var description: String?,
val imagePreview: String val imagePreview: String,
val collectionId: Int?
) )

View File

@ -0,0 +1,24 @@
package come.stormborntales.notevault.ui.screens
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Divider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun NotesScreen() {
}

View File

@ -93,7 +93,8 @@ class NoteViewModel(
year = year, year = year,
genre = genre, genre = genre,
description = description, description = description,
imagePreview = preview_image_path.toString() imagePreview = preview_image_path.toString(),
collectionId = null
) )
repository.insert(note) repository.insert(note)