From e84a5409e4e49f6fda9c96fc5efa7eb280c29102 Mon Sep 17 00:00:00 2001 From: PhilKes Date: Tue, 29 Oct 2024 18:49:10 +0100 Subject: [PATCH] When exiting a note delete it if it's empty --- .../activity/note/EditActivity.kt | 17 +++++++++---- .../activity/note/EditListActivity.kt | 14 +++++++---- .../activity/note/EditNoteActivity.kt | 7 ------ .../presentation/viewmodel/NotallyModel.kt | 25 +++++++++++++++---- 4 files changed, 41 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt index c500daa3..d272e592 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt @@ -48,6 +48,7 @@ import com.philkes.notallyx.presentation.view.note.audio.AudioAdapter import com.philkes.notallyx.presentation.view.note.preview.PreviewFileAdapter import com.philkes.notallyx.presentation.view.note.preview.PreviewImageAdapter import com.philkes.notallyx.presentation.viewmodel.NotallyModel +import com.philkes.notallyx.presentation.widget.WidgetProvider import com.philkes.notallyx.utils.FileError import com.philkes.notallyx.utils.Operations import com.philkes.notallyx.utils.changehistory.ChangeHistory @@ -68,7 +69,11 @@ abstract class EditActivity(private val type: Type) : LockedActivity private lateinit var pickNoteUpdateActivityResultLauncher: ActivityResultLauncher - override suspend fun saveNote() { - super.saveNote() - model.saveNote() - WidgetProvider.sendBroadcast(application, longArrayOf(model.id)) - } - override fun configureUI() { binding.EnterTitle.setOnNextAction { binding.EnterBody.requestFocus() } diff --git a/app/src/main/java/com/philkes/notallyx/presentation/viewmodel/NotallyModel.kt b/app/src/main/java/com/philkes/notallyx/presentation/viewmodel/NotallyModel.kt index 4fa0b916..ec4f20cc 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/viewmodel/NotallyModel.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/viewmodel/NotallyModel.kt @@ -247,8 +247,23 @@ class NotallyModel(private val app: Application) : AndroidViewModel(app) { } } - suspend fun saveNote(items: List = this.items): Long { - return withContext(Dispatchers.IO) { baseNoteDao.insert(getBaseNote(items)) } + fun setItems(items: List) { + this.items.clear() + this.items.addAll(items) + } + + suspend fun saveNote(): Long { + return withContext(Dispatchers.IO) { baseNoteDao.insert(getBaseNote()) } + } + + fun isEmpty(): Boolean { + return title.isEmpty() && + body.isEmpty() && + items.none { item -> item.body.isNotEmpty() } && + labels.isEmpty() && + files.value.isEmpty() && + images.value.isEmpty() && + audios.value.isEmpty() } private suspend fun updateImages() { @@ -263,10 +278,10 @@ class NotallyModel(private val app: Application) : AndroidViewModel(app) { withContext(Dispatchers.IO) { baseNoteDao.updateAudios(id, audios.value) } } - private fun getBaseNote(currentItems: List = this.items): BaseNote { + private fun getBaseNote(): BaseNote { val spans = getFilteredSpans(body) val body = this.body.trimEnd().toString() - val items = currentItems.filter { item -> item.body.isNotEmpty() } + val nonEmptyItems = this.items.filter { item -> item.body.isNotEmpty() } return BaseNote( id, type, @@ -279,7 +294,7 @@ class NotallyModel(private val app: Application) : AndroidViewModel(app) { labels, body, spans, - items, + nonEmptyItems, images.value, files.value, audios.value,