diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt index 7fe1fb99..b96a63d8 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt @@ -28,53 +28,7 @@ class BankrollInstrumentedUnitTest : RealmInstrumentedUnitTest() { @Test fun testSessionStats() { - val realm = this.mockRealm - realm.beginTransaction() - val s1 = newSessionInstance(realm) - val s2 = newSessionInstance(realm) - - val br1 = realm.createObject(Bankroll::class.java, "1") - val br2 = realm.createObject(Bankroll::class.java, "2") - - val c1 = realm.createObject(Currency::class.java, "1") - val c2 = realm.createObject(Currency::class.java, "2") - c1.rate = 0.1 - c2.rate = 2.0 - br1.currency = c1 - br2.currency = c2 - - s1.bankroll = br1 - s2.bankroll = br2 - - s1.result?.netResult = 100.0 - s2.result?.netResult = 200.0 - - realm.commitTransaction() - - val computableResults = realm.where(ComputableResult::class.java).findAll() - val sets = realm.where(SessionSet::class.java).findAll() - val stats: List = listOf(Stat.NETRESULT, Stat.AVERAGE) - val group = ComputableGroup("test", computableResults, sets, stats) - - val options = Calculator.Options() - - val results: ComputedResults = Calculator.compute(group, options) - val delta = 0.01 - - val sum = results.computedStat(Stat.NETRESULT) - if (sum != null) { - Assert.assertEquals(410.0, sum.value, delta) - } else { - Assert.fail("No Net result stat") - } - - val average = results.computedStat(Stat.AVERAGE) - if (average != null) { - Assert.assertEquals(205.0, average.value, delta) - } else { - Assert.fail("No AVERAGE stat") - } } diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/BlindFilterInstrumentedTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/BlindFilterInstrumentedTest.kt index 99f8e6e2..da1c1926 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/BlindFilterInstrumentedTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/BlindFilterInstrumentedTest.kt @@ -117,6 +117,7 @@ class BlindFilterInstrumentedTest : BaseFilterInstrumentedUnitTest() { b2.currency = currency val s1 = Session.testInstance(100.0, false, Date(), 1, b1) + s1.cgBigBlind = 1.0 s1.cgSmallBlind = 0.5 diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/DateFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/DateFilterInstrumentedUnitTest.kt index 2fd4b380..8ef9c845 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/DateFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/DateFilterInstrumentedUnitTest.kt @@ -35,14 +35,14 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { val filterElementRow = FilterElementRow.Day(cal.get(Calendar.DAY_OF_WEEK)) filterElementRow.filterSectionRow = FilterSectionRow.DYNAMIC_DATE - val filterElement = FilterCondition(filterElementRow) + val filterElement = FilterCondition(arrayListOf(filterElementRow)) filter.updateValueMap(filterElement) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -64,14 +64,14 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { val filterElementRow = FilterElementRow.Month(cal.get(Calendar.MONTH)) filterElementRow.filterSectionRow = FilterSectionRow.DYNAMIC_DATE - val filterElement = FilterCondition(filterElementRow) + val filterElement = FilterCondition(arrayListOf(filterElementRow)) filter.updateValueMap(filterElement) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -92,14 +92,14 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { cal.time = s1.startDate val filterElementRow = FilterElementRow.Year(cal.get(Calendar.YEAR)) filterElementRow.filterSectionRow = FilterSectionRow.DYNAMIC_DATE - val filterElement = FilterCondition(filterElementRow) + val filterElement = FilterCondition(arrayListOf(filterElementRow)) filter.updateValueMap(filterElement) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -122,7 +122,7 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -147,7 +147,7 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -384,15 +384,15 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filter = QueryCondition.STARTED_FROM_DATE - val filterElementRow = FilterElementRow.From(s2.startDate!!) + val filterElementRow = FilterElementRow.From.apply { dateValue = s2.startDate!!} filterElementRow.filterSectionRow = FilterSectionRow.FIXED_DATE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s2.id, (this as Session).id) + Assert.assertEquals(s2.id, (this).id) } } @@ -412,15 +412,15 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filter = QueryCondition.STARTED_TO_DATE - val filterElementRow = FilterElementRow.From(s1.startDate!!) + val filterElementRow = FilterElementRow.From.apply { dateValue = s1.startDate!! } filterElementRow.filterSectionRow = FilterSectionRow.FIXED_DATE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } @@ -441,15 +441,15 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filter = QueryCondition.ENDED_FROM_DATE - val filterElementRow = FilterElementRow.From(s2.endDate()) + val filterElementRow = FilterElementRow.From.apply { dateValue = s2.endDate() } filterElementRow.filterSectionRow = FilterSectionRow.FIXED_DATE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s2.id, (this as Session).id) + Assert.assertEquals(s2.id, (this).id) } } @@ -470,15 +470,15 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { val filter = QueryCondition.ENDED_TO_DATE - val filterElementRow = FilterElementRow.From(s1.endDate()) + val filterElementRow = FilterElementRow.From.apply { dateValue = s1.endDate() } filterElementRow.filterSectionRow = FilterSectionRow.FIXED_DATE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(s1.id, (this as Session).id) + Assert.assertEquals(s1.id, (this).id) } } } \ No newline at end of file diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt index b4348fa2..1ad26832 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt @@ -30,7 +30,7 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(Session.Type.CASH_GAME.ordinal, (this as Session).type) + Assert.assertEquals(Session.Type.CASH_GAME.ordinal, (this).type) } } @@ -48,7 +48,7 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Assert.assertEquals(1, sessions.size) sessions[0]?.run { - Assert.assertEquals(Session.Type.TOURNAMENT.ordinal, (this as Session).type) + Assert.assertEquals(Session.Type.TOURNAMENT.ordinal, (this).type) } } @@ -480,9 +480,9 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filter = QueryCondition.MORE_THAN_NET_RESULT - val filterElementRow = FilterElementRow.ResultMoreThan(204.0) + val filterElementRow = FilterElementRow.ResultMoreThan.apply { this.amount = 204.0 } filterElementRow.filterSectionRow = FilterSectionRow.VALUE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) @@ -505,9 +505,9 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filter = QueryCondition.LESS_THAN_NET_RESULT - val filterElementRow = FilterElementRow.ResultLessThan(540.0) + val filterElementRow = FilterElementRow.ResultMoreThan.apply { this.amount = 540.0 } filterElementRow.filterSectionRow = FilterSectionRow.VALUE - filter.updateValueMap(FilterCondition(filterElementRow)) + filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val sessions = Filter.queryOn(realm, arrayListOf(filter)) @@ -530,14 +530,14 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { realm.commitTransaction() val filterMore = QueryCondition.MORE_THAN_NET_RESULT - val filterElementRow = FilterElementRow.ResultMoreThan(200.0) + val filterElementRow = FilterElementRow.ResultMoreThan.apply { this.amount = 200.0 } filterElementRow.filterSectionRow = FilterSectionRow.VALUE - filterMore.updateValueMap(FilterCondition(filterElementRow)) + filterMore.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) val filterLess = QueryCondition.LESS_THAN_NET_RESULT - val filterElementRow2 = FilterElementRow.ResultLessThan(400.0) + val filterElementRow2 = FilterElementRow.ResultMoreThan.apply { this.amount = 400.0 } filterElementRow2.filterSectionRow = FilterSectionRow.VALUE - filterLess.updateValueMap(FilterCondition(filterElementRow2)) + filterLess.updateValueMap(FilterCondition(arrayListOf(filterElementRow2))) val sessions = Filter.queryOn(realm, arrayListOf(filterMore, filterLess)) 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 48f541d5..2a5ef662 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 @@ -169,18 +169,14 @@ enum class QueryCondition(var operator: Operator? = null) { if (isUsingDefaultCurrency) { realmQuery.endsWith(fieldName, s) .and() - .beginGroup() - .isNull("bankroll") - .or() - .isNull("bankroll.currency") - .or() .isNull("bankroll.currency.code") - .endGroup() } else { realmQuery.equalTo(fieldName, s) } .endGroup() - .or() + if (index < stakes.size - 1) { + realmQuery.or() + } } realmQuery } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Currency.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Currency.kt index a0dcfdfb..60e67d27 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Currency.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Currency.kt @@ -10,17 +10,6 @@ import java.util.* open class Currency : RealmObject() { - companion object { - val localeCurrency: java.util.Currency - get() { - return try { - java.util.Currency.getInstance(Locale.getDefault()) - } catch (e: Exception) { - java.util.Currency.getInstance(Locale("en", "US")) - } - } - } - @Ignore val DEFAULTRATE: Double = 1.0 @@ -36,7 +25,9 @@ open class Currency : RealmObject() { var code: String? = null set(value) { field = value - bankrolls?.first()?.currencyCodeHasBeenUpdated() + bankrolls?.forEach { + it.currencyCodeHasBeenUpdated() + } } /** 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 c18eb1d2..fdfc1c6f 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 @@ -496,13 +496,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat * Return the formatted blinds */ fun getCurrencyFormattedStake(context:Context) : String { - val currency : Currency = Preferences.getCurrencyLocale(context)?.let { - Currency.getInstance(it) - } ?: run { - net.pokeranalytics.android.model.realm.Currency.localeCurrency - } - - val currencySymbol = currencySymbol ?: currency.symbol + val currencySymbol = currencySymbol ?: Preferences.getDefaultCurrency(context).symbol return "$currencySymbol $stake" } diff --git a/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt index 9672f3fa..9dbe8458 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt @@ -5,14 +5,10 @@ import io.realm.Realm import io.realm.kotlin.where import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.model.realm.Currency -<<<<<<< HEAD -======= -import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.model.realm.TournamentFeature -import net.pokeranalytics.android.util.CurrencyUtils ->>>>>>> 7fce9661594eb0faba91337d78c6cc1e880e49a1 import java.util.* - +import net.pokeranalytics.android.model.realm.Game +import net.pokeranalytics.android.util.CurrencyUtils class Seed(var context:Context) : Realm.Transaction { @@ -32,23 +28,10 @@ class Seed(var context:Context) : Realm.Transaction { } } - val localeCurrency: java.util.Currency - get() { - return try { - java.util.Currency.getInstance(Locale.getDefault()) - } catch (e: Exception) { - java.util.Currency.getInstance(Locale("en", "US")) - } - } - private fun createDefaultCurrencyAndBankroll(realm: Realm) { // Currency -<<<<<<< HEAD - val localeCurrency = localeCurrency -======= val localeCurrency = CurrencyUtils.getLocaleCurrency() ->>>>>>> 7fce9661594eb0faba91337d78c6cc1e880e49a1 val defaultCurrency = Currency() defaultCurrency.code = localeCurrency.currencyCode realm.insertOrUpdate(defaultCurrency) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt index 5217f486..e1cb1e23 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt @@ -12,12 +12,9 @@ import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.util.CurrencyUtils -import net.pokeranalytics.android.util.NULL_TEXT -import net.pokeranalytics.android.util.extensions.formatted -import net.pokeranalytics.android.util.extensions.round +import net.pokeranalytics.android.util.Preferences import java.text.DateFormatSymbols import java.util.* -import java.util.prefs.Preferences sealed class FilterElementRow : RowRepresentable { @@ -312,13 +309,7 @@ sealed class FilterElementRow : RowRepresentable { currencySymbol?.let { "$it $stake" } - - val currency : Currency = net.pokeranalytics.android.util.Preferences.getCurrencyLocale(context)?.let { - Currency.getInstance(it) - } ?: run { - net.pokeranalytics.android.model.realm.Currency.localeCurrency - } - val currencySymbol = currencySymbol ?: currency.symbol + val currencySymbol = currencySymbol ?: Preferences.getDefaultCurrency(context).symbol "$currencySymbol $stake" } is StaticDataFilterElementRow -> this.getDataLocalizedTitle(context) diff --git a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt index c52bdb52..87e02595 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt @@ -16,7 +16,7 @@ class Preferences { companion object { - var currencyLocale : Locale? = null + private var currencyLocale : Locale? = null fun setString(key: Keys, value: String, context: Context) { val preferences = PreferenceManager.getDefaultSharedPreferences(context) @@ -52,7 +52,6 @@ class Preferences { } fun getCurrencyLocale(context : Context) : Locale? { - currencyLocale?. let { return it } @@ -69,8 +68,15 @@ class Preferences { return it } } - currencyLocale = Locale.getDefault() - return currencyLocale!! + return null + } + + fun getDefaultCurrency(context: Context) : Currency { + return Preferences.getCurrencyLocale(context)?.let { + Currency.getInstance(it) + } ?: run { + CurrencyUtils.getLocaleCurrency() + } } fun setStopShowingDisclaimer(context: Context) {