diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/ClipboardManagerExt.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/ClipboardManagerExt.kt index db273777..f3ef26bb 100644 --- a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/ClipboardManagerExt.kt +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/ClipboardManagerExt.kt @@ -21,16 +21,17 @@ package com.sadellie.unitto.core.ui.common.textfield import androidx.compose.ui.platform.ClipboardManager import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.input.TextFieldValue +import com.sadellie.unitto.core.base.Token /** - * Copy value to clipboard without grouping symbols. + * Copy value to clipboard with fractional symbols. * * Example: - * "123.456,789" will be copied as "123456,789" + * "123456.789" will be copied as "123456,789" * - * @param value Formatted value that has grouping symbols. + * @param value Internal [TextFieldValue] without formatting with [Token.Digit.dot] as fractional. */ -internal fun ClipboardManager.copyWithoutGrouping( +internal fun ClipboardManager.copyWithFractional( value: TextFieldValue, formatterSymbols: FormatterSymbols ) = this.setText( @@ -38,7 +39,7 @@ internal fun ClipboardManager.copyWithoutGrouping( value.annotatedString .subSequence(value.selection) .text - .replace(formatterSymbols.grouping, "") + .replace(Token.Digit.dot, formatterSymbols.fractional) ) ) diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/FixedInputTextFIeld.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/FixedInputTextFIeld.kt index 3a7e7731..9cdee727 100644 --- a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/FixedInputTextFIeld.kt +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/FixedInputTextFIeld.kt @@ -62,7 +62,7 @@ fun FixedInputTextField( val expressionInteractionSource = remember(expression) { MutableInteractionSource() } LaunchedEffect(expressionInteractionSource) { expressionInteractionSource.interactions.collect { - if (it is PressInteraction.Release) onClick(expression.clearAndFilterExpression(formatterSymbols)) + if (it is PressInteraction.Release) onClick(value) } } @@ -71,7 +71,7 @@ fun FixedInputTextField( LocalTextToolbar provides UnittoTextToolbar( view = LocalView.current, copyCallback = { - clipboardManager.copyWithoutGrouping(expressionValue, formatterSymbols) + clipboardManager.copyWithFractional(expressionValue, formatterSymbols) expressionValue = expressionValue.copy(selection = TextRange(expressionValue.selection.end)) } ) diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/InputTextField.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/InputTextField.kt index 8a631cf4..bb7e02e9 100644 --- a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/InputTextField.kt +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/textfield/InputTextField.kt @@ -73,7 +73,7 @@ fun ExpressionTextField( val expressionTransformer = remember(formatterSymbols) { ExpressionTransformer(formatterSymbols) } fun copyCallback() { - clipboardManager.copyWithoutGrouping(value, formatterSymbols) + clipboardManager.copyWithFractional(value, formatterSymbols) onCursorChange(TextRange(value.selection.end)) } @@ -90,7 +90,7 @@ fun ExpressionTextField( pasteCallback(clipboardManager.getText()?.text?.clearAndFilterExpression(formatterSymbols) ?: "") }, cutCallback = { - clipboardManager.copyWithoutGrouping(value, formatterSymbols) + clipboardManager.copyWithFractional(value, formatterSymbols) cutCallback() } )