From cfed95c625c4cb975c76ea538096f7c113358748 Mon Sep 17 00:00:00 2001 From: Leandro Borges Ferreira Date: Tue, 4 Jul 2023 17:29:40 +0200 Subject: [PATCH] Fixing notes persistence --- .../screens/note/NoteDetailsViewModel.kt | 4 +++- .../storyteller/manager/StoryTellerManager.kt | 1 - .../utils/extensions/StoryExtensions.kt | 2 +- .../utils/extensions/StoryExtensionsKtTest.kt | 15 +++++++++++++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app_sample/src/main/java/br/com/leandroferreira/app_sample/screens/note/NoteDetailsViewModel.kt b/app_sample/src/main/java/br/com/leandroferreira/app_sample/screens/note/NoteDetailsViewModel.kt index cd8d2e1c3..16c80c014 100644 --- a/app_sample/src/main/java/br/com/leandroferreira/app_sample/screens/note/NoteDetailsViewModel.kt +++ b/app_sample/src/main/java/br/com/leandroferreira/app_sample/screens/note/NoteDetailsViewModel.kt @@ -93,7 +93,9 @@ class NoteDetailsViewModel( fun saveNote() { viewModelScope.launch { val stories = story.value.stories - val document = _documentState.value ?: return@launch + val document = _documentState.value ?: throw IllegalStateException( + "Trying to save a null document, did you forget to create a note?" + ) if (stories.noContent()) { documentRepository.deleteDocument(document) diff --git a/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/manager/StoryTellerManager.kt b/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/manager/StoryTellerManager.kt index f4fc72b29..fcafff765 100644 --- a/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/manager/StoryTellerManager.kt +++ b/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/manager/StoryTellerManager.kt @@ -389,7 +389,6 @@ class StoryTellerManager( } private fun cancelSelection() { - Log.d("Manager", "Cancelling selection") _positionsOnEdit.value = emptySet() } diff --git a/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensions.kt b/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensions.kt index b52d64e11..790120992 100644 --- a/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensions.kt +++ b/storyteller/src/main/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensions.kt @@ -12,7 +12,7 @@ fun Iterable.associateWithPosition(): Map { } fun Map.noContent(): Boolean = - this.values.any { storyStep -> + this.values.all { storyStep -> storyStep.run { url.isNullOrBlank() && path.isNullOrBlank() && diff --git a/storyteller/src/test/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensionsKtTest.kt b/storyteller/src/test/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensionsKtTest.kt index 832eee7eb..7355b97c8 100644 --- a/storyteller/src/test/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensionsKtTest.kt +++ b/storyteller/src/test/java/com/github/leandroborgesferreira/storyteller/utils/extensions/StoryExtensionsKtTest.kt @@ -1,6 +1,8 @@ package com.github.leandroborgesferreira.storyteller.utils.extensions +import androidx.compose.runtime.toMutableStateMap import com.github.leandroborgesferreira.storyteller.model.story.StoryStep +import junit.framework.TestCase.assertFalse import junit.framework.TestCase.assertTrue import org.junit.Test @@ -16,4 +18,17 @@ class StoryExtensionsKtTest { assertTrue(storyStepMap.noContent()) } + + @Test + fun `it should be able to recognize a not empty document`() { + val storyStepMap = buildList { + repeat(5) { index -> + add(index to StoryStep(type = "message")) + } + }.toMutableStateMap() + + storyStepMap[5] = StoryStep(type = "message", text = "some text") + + assertFalse(storyStepMap.noContent()) + } } \ No newline at end of file