Cut from textfield

This commit is contained in:
Sad Ellie 2023-02-22 17:14:13 +04:00
parent 88a14bdd51
commit 9553760a72
3 changed files with 9 additions and 5 deletions

View File

@ -195,7 +195,8 @@ private fun CalculatorScreen(
selection = TextRange(uiState.selection.first, uiState.selection.last) selection = TextRange(uiState.selection.first, uiState.selection.last)
), ),
onCursorChange = onCursorChange, onCursorChange = onCursorChange,
pasteCallback = addSymbol pasteCallback = addSymbol,
cutCallback = deleteSymbol
) )
Text( Text(
modifier = Modifier modifier = Modifier

View File

@ -36,14 +36,16 @@ internal fun InputTextField(
modifier: Modifier, modifier: Modifier,
value: TextFieldValue, value: TextFieldValue,
onCursorChange: (IntRange) -> Unit, onCursorChange: (IntRange) -> Unit,
pasteCallback: (String) -> Unit pasteCallback: (String) -> Unit,
cutCallback: () -> Unit
) { ) {
val clipboardManager = LocalClipboardManager.current val clipboardManager = LocalClipboardManager.current
CompositionLocalProvider( CompositionLocalProvider(
LocalTextInputService provides null, LocalTextInputService provides null,
LocalTextToolbar provides UnittoTextToolbar( LocalTextToolbar provides UnittoTextToolbar(
view = LocalView.current, view = LocalView.current,
pasteCallback = { pasteCallback(clipboardManager.getText()?.text ?: "") } pasteCallback = { pasteCallback(clipboardManager.getText()?.text ?: "") },
cutCallback = cutCallback
) )
) { ) {
BasicTextField( BasicTextField(

View File

@ -27,7 +27,8 @@ import androidx.compose.ui.platform.TextToolbarStatus
internal class UnittoTextToolbar( internal class UnittoTextToolbar(
private val view: View, private val view: View,
private val pasteCallback: () -> Unit private val pasteCallback: () -> Unit,
private val cutCallback: () -> Unit
) : TextToolbar { ) : TextToolbar {
private var actionMode: ActionMode? = null private var actionMode: ActionMode? = null
@ -44,7 +45,7 @@ internal class UnittoTextToolbar(
) { ) {
textActionModeCallback.rect = rect textActionModeCallback.rect = rect
textActionModeCallback.onCopyRequested = onCopyRequested textActionModeCallback.onCopyRequested = onCopyRequested
textActionModeCallback.onCutRequested = onCutRequested textActionModeCallback.onCutRequested = { cutCallback(); onCutRequested?.invoke() }
textActionModeCallback.onPasteRequested = { pasteCallback(); onPasteRequested?.invoke() } textActionModeCallback.onPasteRequested = { pasteCallback(); onPasteRequested?.invoke() }
textActionModeCallback.onSelectAllRequested = onSelectAllRequested textActionModeCallback.onSelectAllRequested = onSelectAllRequested
if (actionMode == null) { if (actionMode == null) {