diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt index b5ce8238..c5a3df93 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.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? { - 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) { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt index 90831d09..586888cb 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt @@ -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) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt index 01226ad5..d742fbd0 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt @@ -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 }