From 041f5aa1e8c33f0e489be9746af937e8efbe438e Mon Sep 17 00:00:00 2001 From: SK MD IZAZ Date: Wed, 30 Apr 2025 05:42:53 +0530 Subject: [PATCH] A cut btn Added in Android app --- .../editor/ui/screen/NoteEditorScreen.android.kt | 3 +++ .../editor/viewmodel/NoteEditorKmpViewModel.kt | 5 +++++ .../editor/viewmodel/NoteEditorViewModel.kt | 2 ++ .../io/writeopia/ui/components/EditionScreen.kt | 15 +++++++++++++++ 4 files changed, 25 insertions(+) diff --git a/application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt b/application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt index 77991c400..d35236560 100644 --- a/application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt +++ b/application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt @@ -162,6 +162,7 @@ internal fun NoteEditorScreen( noteEditorViewModel::onAddSpanClick, noteEditorViewModel::deleteSelection, noteEditorViewModel::copySelection, + noteEditorViewModel::cutSelection, noteEditorViewModel::clearSelections, noteEditorViewModel::onAddCheckListClick, noteEditorViewModel::onAddListItemClick @@ -318,6 +319,7 @@ private fun BottomScreen( onSpanSelected: (Span) -> Unit = {}, deleteSelection: () -> Unit = {}, copySelection: () -> Unit = {}, + cutSelection: () -> Unit = {}, onClose: () -> Unit = {}, onCheckItem: () -> Unit = {}, onListItem: () -> Unit = {} @@ -361,6 +363,7 @@ private fun BottomScreen( onSpanClick = onSpanSelected, onDelete = deleteSelection, onCopy = copySelection, + onCut = cutSelection, onClose = onClose, checkboxClick = onCheckItem, listItemClick = onListItem diff --git a/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorKmpViewModel.kt b/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorKmpViewModel.kt index ec08c9b70..e7b848830 100644 --- a/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorKmpViewModel.kt +++ b/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorKmpViewModel.kt @@ -518,6 +518,11 @@ class NoteEditorKmpViewModel( copyManager.copy(annotatedString) } + override fun cutSelection() { + copySelection() + deleteSelection() + } + override fun deleteDocument() { viewModelScope.launch(Dispatchers.Default) { documentRepository.deleteDocument(writeopiaManager.getDocument()) diff --git a/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorViewModel.kt b/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorViewModel.kt index ebb47d479..ed5c1fc1e 100644 --- a/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorViewModel.kt +++ b/application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorViewModel.kt @@ -107,6 +107,8 @@ interface NoteEditorViewModel : BackstackInform, BackstackHandler { fun copySelection() + fun cutSelection() + fun deleteDocument() fun toggleFavorite() diff --git a/writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/components/EditionScreen.kt b/writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/components/EditionScreen.kt index 87fa35e91..4559c54da 100644 --- a/writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/components/EditionScreen.kt +++ b/writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/components/EditionScreen.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ContentCut import androidx.compose.material.icons.filled.DeleteOutline import androidx.compose.material.icons.outlined.FormatBold import androidx.compose.material.icons.outlined.FormatItalic @@ -34,6 +35,7 @@ fun EditionScreen( listItemClick: () -> Unit = {}, onDelete: () -> Unit = {}, onCopy: () -> Unit = {}, + onCut: () -> Unit = {}, onClose: () -> Unit = {}, ) { val iconPadding = PaddingValues(vertical = 4.dp) @@ -131,6 +133,19 @@ fun EditionScreen( Spacer(modifier = Modifier.width(spaceWidth)) + Icon( + modifier = Modifier + .clip(clipShape) + .clickable(onClick = onCut) + .size(32.dp) + .padding(iconPadding), + imageVector = Icons.Default.ContentCut, + contentDescription = "Cut", + tint = tint + ) + + Spacer(modifier = Modifier.width(spaceWidth)) + Icon( modifier = Modifier .clip(clipShape)