From 67ace594693ce22608dd40dbf4a6b9afa7e4f018 Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Sat, 17 Dec 2022 13:31:22 +0400 Subject: [PATCH] Fixed crash when batch converting Will clean later. --- .../com/sadellie/unitto/screens/main/MainViewModel.kt | 8 +++++++- .../com/sadellie/unitto/screens/second/SecondScreen.kt | 10 ++++++---- .../unitto/screens/second/components/UnitListItem.kt | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/sadellie/unitto/screens/main/MainViewModel.kt b/app/src/main/java/com/sadellie/unitto/screens/main/MainViewModel.kt index a499a042..58ffd7e8 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/main/MainViewModel.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/main/MainViewModel.kt @@ -500,7 +500,13 @@ class MainViewModel @Inject constructor( /** * Returns value to be used when converting value on the right side screen (unit selection) */ - fun inputValue() = (mainFlow.value.calculatedValue ?: mainFlow.value.inputValue).toBigDecimal() + fun inputValue(): BigDecimal? { + return try { + (mainFlow.value.calculatedValue ?: mainFlow.value.inputValue).toBigDecimal() + } catch (e: NumberFormatException) { + null + } + } /** * Returns True if can be placed. diff --git a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt index 84fa04f6..4fc92fba 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt @@ -174,7 +174,7 @@ fun RightSideScreen( navigateUp: () -> Unit, navigateToSettingsAction: () -> Unit, selectAction: (AbstractUnit) -> Unit, - inputValue: BigDecimal, + inputValue: BigDecimal?, unitFrom: AbstractUnit ) { val uiState = viewModel.mainFlow.collectAsStateWithLifecycle() @@ -225,9 +225,11 @@ fun RightSideScreen( }, favoriteAction = { viewModel.favoriteUnit(it) }, convertValue = { - Formatter.format( - unitFrom.convert(unit, inputValue, 3).toPlainString() - ) + inputValue?.let { + Formatter.format( + unitFrom.convert(unit, it, 3).toPlainString() + ) + " " + } ?: "" } ) } diff --git a/app/src/main/java/com/sadellie/unitto/screens/second/components/UnitListItem.kt b/app/src/main/java/com/sadellie/unitto/screens/second/components/UnitListItem.kt index b85d0324..3ec9372d 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/second/components/UnitListItem.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/second/components/UnitListItem.kt @@ -183,5 +183,5 @@ fun UnitListItem( isSelected = isSelected, selectAction = selectAction, favoriteAction = favoriteAction, - shortNameLabel = "${convertValue(unit)} ${stringResource(unit.shortName)}" + shortNameLabel = "${convertValue(unit)}${stringResource(unit.shortName)}" )