mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-18 16:25:27 +02:00
Fix #176
This commit is contained in:
parent
087ba19b1f
commit
a88aa9081a
@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -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))
|
||||
}
|
||||
)
|
||||
|
@ -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()
|
||||
}
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user