mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-20 01:05:26 +02:00
Fix ignored minus
This commit is contained in:
parent
777ff6ca67
commit
52a1a5b4d5
@ -39,7 +39,7 @@ private val timeDivisions by lazy {
|
||||
)
|
||||
}
|
||||
|
||||
internal fun String.clearAndFilterExpression(formatterSymbols: FormatterSymbols): String {
|
||||
fun String.clearAndFilterExpression(formatterSymbols: FormatterSymbols): String {
|
||||
var clean = this
|
||||
.replace(formatterSymbols.grouping, "")
|
||||
.replace(formatterSymbols.fractional, Token.Digit.dot)
|
||||
|
@ -22,6 +22,7 @@ import androidx.compose.ui.text.TextRange
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.sadellie.unitto.core.base.Token
|
||||
import com.sadellie.unitto.core.ui.common.textfield.AllFormatterSymbols
|
||||
import com.sadellie.unitto.core.ui.common.textfield.addTokens
|
||||
import com.sadellie.unitto.core.ui.common.textfield.deleteTokens
|
||||
@ -91,12 +92,15 @@ internal class CalculatorViewModel @Inject constructor(
|
||||
is CalculationResult.Default -> {
|
||||
if (calculationResult.text.isEmpty()) return@launch
|
||||
|
||||
// We can get negative number and they use ugly minus symbol
|
||||
val calculationText = calculationResult.text.replace("-", Token.Operator.minus)
|
||||
|
||||
calculatorHistoryRepository.add(
|
||||
expression = _input.value.text,
|
||||
result = calculationResult.text
|
||||
result = calculationText
|
||||
)
|
||||
_input.update {
|
||||
TextFieldValue(calculationResult.text, TextRange(calculationResult.text.length))
|
||||
TextFieldValue(calculationText, TextRange(calculationText.length))
|
||||
}
|
||||
_output.update { CalculationResult.Default() }
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ import com.sadellie.unitto.core.base.R
|
||||
import com.sadellie.unitto.core.ui.common.textfield.ExpressionTransformer
|
||||
import com.sadellie.unitto.core.ui.common.textfield.FormatterSymbols
|
||||
import com.sadellie.unitto.core.ui.common.textfield.UnittoTextToolbar
|
||||
import com.sadellie.unitto.core.ui.common.textfield.clearAndFilterExpression
|
||||
import com.sadellie.unitto.core.ui.common.textfield.copyWithoutGrouping
|
||||
import com.sadellie.unitto.core.ui.theme.NumbersTextStyleDisplayMedium
|
||||
import com.sadellie.unitto.data.model.HistoryItem
|
||||
@ -171,14 +172,14 @@ private fun HistoryListItem(
|
||||
val expressionInteractionSource = remember(expression) { MutableInteractionSource() }
|
||||
LaunchedEffect(expressionInteractionSource) {
|
||||
expressionInteractionSource.interactions.collect {
|
||||
if (it is PressInteraction.Release) addTokens(expression)
|
||||
if (it is PressInteraction.Release) addTokens(expression.clearAndFilterExpression(formatterSymbols))
|
||||
}
|
||||
}
|
||||
|
||||
val resultInteractionSource = remember(result) { MutableInteractionSource() }
|
||||
LaunchedEffect(resultInteractionSource) {
|
||||
resultInteractionSource.interactions.collect {
|
||||
if (it is PressInteraction.Release) addTokens(result)
|
||||
if (it is PressInteraction.Release) addTokens(result.clearAndFilterExpression(formatterSymbols))
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user