@@ -17,6 +17,7 @@ package com.farmerbb.notepad.data
1717
1818import com.farmerbb.notepad.Database
1919import com.farmerbb.notepad.model.CrossRef
20+ import com.farmerbb.notepad.model.Defaults
2021import com.farmerbb.notepad.model.Note
2122import com.farmerbb.notepad.model.NoteContents
2223import com.farmerbb.notepad.model.NoteMetadata
@@ -51,9 +52,9 @@ class NotepadRepository(
5152
5253 fun getNote (id : Long ): Note = with (database) {
5354 transactionWithResult {
54- val metadata = noteMetadataQueries.get(id).executeAsOne()
55- val crossRef = crossRefQueries.get(metadata.metadataId).executeAsOne()
56- val contents = noteContentsQueries.get(crossRef.contentsId).executeAsOne()
55+ val metadata = noteMetadataQueries.get(id).executeAsList().lastOrNull() ? : Defaults .metadata
56+ val crossRef = crossRefQueries.get(metadata.metadataId).executeAsList().lastOrNull() ? : Defaults .crossRef
57+ val contents = noteContentsQueries.get(crossRef.contentsId).executeAsList().lastOrNull() ? : Defaults .contents
5758
5859 Note (
5960 metadata = metadata,
@@ -67,13 +68,15 @@ class NotepadRepository(
6768 val crossRefList = crossRefQueries.getMultiple(metadataList.map { it.metadataId }).executeAsList()
6869 val contentsList = noteContentsQueries.getMultiple(crossRefList.map { it.contentsId }).executeAsList()
6970
70- buildList {
71- metadataList.sortedBy { it.metadataId }.forEachIndexed { index, metadata ->
72- Note (
73- metadata = metadata,
74- contents = contentsList[index]
75- ).also (::add)
76- }
71+ crossRefList.map { crossRef ->
72+ Note (
73+ metadata = metadataList.find {
74+ it.metadataId == crossRef.metadataId
75+ } ? : Defaults .metadata,
76+ contents = contentsList.find {
77+ it.contentsId == crossRef.contentsId
78+ } ? : Defaults .contents
79+ )
7780 }
7881 }
7982 }
0 commit comments