From 6fcb600ed2a88981dff3f1d1b4d43d74a28f0a1e Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Sun, 29 Jan 2023 12:53:29 +0400 Subject: [PATCH] Fixed batch conversion --- .../feature/unitslist/RightSideScreen.kt | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt index 0879cf81..d91418c1 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt @@ -66,20 +66,16 @@ internal fun RightSideScreen( val uiState = viewModel.mainFlow.collectAsStateWithLifecycle() val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()) val focusManager = LocalFocusManager.current - val inputAsBigDecimal: BigDecimal? = try { - inputValue.toBigDecimal() - } catch (e: NumberFormatException) { - null - } - val convertMethod: (AbstractUnit) -> String = when { - unitFrom.group == UnitGroup.NUMBER_BASE -> {{ - convertForSecondaryNumberBase(inputValue, unitFrom as NumberBaseUnit, it as NumberBaseUnit) - }} - inputAsBigDecimal != null -> {{ - convertForSecondary(inputAsBigDecimal, unitFrom, it) - }} - else -> {{""}} + val convertMethod: (AbstractUnit) -> String = try { + val inputAsBigDecimal = BigDecimal(inputValue) + if (unitFrom.group == UnitGroup.NUMBER_BASE) { + { (convertForSecondaryNumberBase(inputValue, unitFrom, it)) } + } else { + { convertForSecondary(inputAsBigDecimal, unitFrom, it) } + } + } catch(e: Exception) { + { "" } } Scaffold( @@ -141,10 +137,12 @@ private fun convertForSecondary(inputValue: BigDecimal, unitFrom: AbstractUnit, ) + " " } -private fun convertForSecondaryNumberBase(inputValue: String, unitFrom: NumberBaseUnit, unitTo: NumberBaseUnit): String { +private fun convertForSecondaryNumberBase(inputValue: String, unitFrom: AbstractUnit, unitTo: AbstractUnit): String { return try { - unitFrom.convertToBase(inputValue, unitTo.base) + " " + (unitFrom as NumberBaseUnit).convertToBase(inputValue, (unitTo as NumberBaseUnit).base) + " " } catch (e: NumberFormatException) { "" + } catch (e: ClassCastException) { + "" } }