Fixes crash with empty strings

feature/top10
Laurent 7 years ago
parent 03f471b3a8
commit ddec8c268d
  1. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  2. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt

@ -6,8 +6,8 @@ import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import io.realm.kotlin.where
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.model.interfaces.NameManageable
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
@ -70,7 +70,13 @@ open class Bankroll() : RealmObject(), NameManageable, StaticRowRepresentableDat
}
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return row.editingDescriptors(mapOf("defaultValue" to this.name))
return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.name))
BankrollRow.RATE -> row.editingDescriptors(mapOf())
else -> {
row.editingDescriptors(mapOf())
}
}
}
override fun updateValue(value: Any?, row: RowRepresentable) {

@ -24,6 +24,8 @@ import retrofit2.Call
import retrofit2.Response
import java.util.*
/**
* Custom EditableDataFragment to manage the Bankroll data
*/
@ -44,7 +46,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
private var isRefreshingRate = false
private var lastRefreshRateCall = 0L
private val differentCurrency : Boolean
private val shouldShowCurrencyRate : Boolean
get() {
return bankroll.currency?.let { bankrollCurrency ->
bankrollCurrency.code != defaultCurrency.currencyCode
@ -67,7 +69,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
data?.let {
val currencyCode = it.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE)
onRowValueChanged(currencyCode, BankrollRow.CURRENCY)
if (differentCurrency) {
if (shouldShowCurrencyRate) {
refreshRate()
}
}
@ -119,7 +121,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
this.bankroll.currency?.rate?.let { rate ->
row.editingDescriptors(mapOf("defaultValue" to CurrencyUtils.getCurrencyRateFormatter().format(rate)))
} ?: run {
row.editingDescriptors(mapOf("defaultValue" to ""))
row.editingDescriptors(mapOf())
}
}
else -> null
@ -169,7 +171,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
rows.add(BankrollRow.LIVE)
rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.currency))
rows.add(BankrollRow.CURRENCY)
if (this.differentCurrency) {
if (this.shouldShowCurrencyRate) {
rows.add(BankrollRow.RATE)
rows.add(BankrollRow.REFRESH_RATE)
}

@ -29,7 +29,12 @@ class BottomSheetEditTextFragment : BottomSheetFragment() {
override fun getValue(): Any? {
this.value?.let {
return it.trim()
val value = it.trim()
if (value.isEmpty()) { // avoid returning empty strings
return null
} else {
return value
}
}
return null
}

Loading…
Cancel
Save