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.annotations.PrimaryKey
import io.realm.kotlin.where import io.realm.kotlin.where
import net.pokeranalytics.android.R 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.NameManageable
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
@ -70,7 +70,13 @@ open class Bankroll() : RealmObject(), NameManageable, StaticRowRepresentableDat
} }
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? { 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) { override fun updateValue(value: Any?, row: RowRepresentable) {

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

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

Loading…
Cancel
Save