diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt index 4438c8c5..7d81dfe2 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt @@ -23,6 +23,7 @@ import net.pokeranalytics.android.util.NULL_TEXT import net.pokeranalytics.android.util.UserDefaults import net.pokeranalytics.android.util.extensions.* import java.text.DateFormatSymbols +import java.text.NumberFormat import java.util.* import kotlin.collections.ArrayList @@ -558,7 +559,7 @@ sealed class QueryCondition : FilterElementRow { } override fun labelForValue(value: Double, context: Context): String { - return value.toString() + return NumberFormat.getInstance().format(value) } override fun updateValueBy(filterCondition: FilterCondition) { diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt index 94361aa0..9acf817e 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt @@ -22,7 +22,6 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.CustomFieldRow import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow import net.pokeranalytics.android.util.enumerations.IntIdentifiable -import timber.log.Timber import java.util.* import kotlin.collections.ArrayList @@ -59,7 +58,11 @@ open class CustomField : RealmObject(), NameManageable, StaticRowRepresentableDa // The type of the custom fields, mapped with the CustomField.Type enum var type: Int = Type.LIST.uniqueIdentifier set(value) { + if (field == Type.LIST.uniqueIdentifier && value != Type.LIST.uniqueIdentifier) { + this.removeListEntries() + } field = value + this.updateRowRepresentation() } @@ -244,7 +247,6 @@ open class CustomField : RealmObject(), NameManageable, StaticRowRepresentableDa */ fun addEntry(): CustomFieldEntry { val entry = CustomFieldEntry() -// entry.customField = this this.entries.add(entry) sortEntries() updateRowRepresentation() @@ -261,26 +263,42 @@ open class CustomField : RealmObject(), NameManageable, StaticRowRepresentableDa updateRowRepresentation() } - /** - * Clean the entries if the type is not a list & remove the deleted entries from realm - */ - fun cleanEntries(realm: Realm) { - realm.executeTransaction { + private fun removeListEntries() { - if (!isListType) { - entriesToDelete.addAll(entries) - entries.clear() - } + this.entriesToDelete.addAll(entries) + this.entries.clear() - // @TODO - entriesToDelete.forEach { - Timber.d("Delete entry: ${it.value} / ${it.id}") - realm.where().equalTo("id", it.id).findFirst()?.deleteFromRealm() + if (realm != null) { + realm.executeTransaction { + this.entriesToDelete.forEach { + if (it.isManaged) { + it.deleteFromRealm() + } + } } - entriesToDelete.clear() } } + /** + * Clean the entries if the type is not a list & remove the deleted entries from realm + */ +// fun cleanEntries(realm: Realm) { +// realm.executeTransaction { +// +// if (!isListType) { +// entriesToDelete.addAll(entries) +// entries.clear() +// } +// +// // @TODO +// entriesToDelete.forEach { +// Timber.d("Delete entry: V=${it.value} N=${it.numericValue} / ID=${it.id}") +// realm.where().equalTo("id", it.id).findFirst()?.deleteFromRealm() +// } +// entriesToDelete.clear() +// } +// } + /** * Returns a comparison criteria based on this custom field */ diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 5ff4f9f9..7cec6053 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -1102,8 +1102,6 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat val entryValue = this.formattedValue(stat) val dateValue = TextFormat(this.entryTitle(context)) - - return MultilineLegendValues(groupName, secondTitle, entryValue, dateValue) } else -> { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/CustomFieldDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/CustomFieldDataFragment.kt index ce0c32ad..768b8088 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/CustomFieldDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/CustomFieldDataFragment.kt @@ -195,11 +195,6 @@ class CustomFieldDataFragment : EditableDataFragment(), StaticRowRepresentableDa } } - override fun onDataSaved() { - super.onDataSaved() - customField.cleanEntries(getRealm()) - } - /** * Init UI */