From 78c9ec2c516fde73cc1152c231986380a2c91440 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 5 Jun 2019 18:35:11 +0200 Subject: [PATCH 1/3] code cleanup --- .../CustomFieldFilterInstrumentedUnitTest.kt | 56 ++++++++++--------- .../android/model/filter/Query.kt | 3 +- .../android/model/filter/QueryCondition.kt | 1 + .../android/model/realm/Filter.kt | 16 ++++-- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt index f3880227..f3acfcbc 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt @@ -51,35 +51,41 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { @Test fun testCustomFieldAmountFilter() { - val realm = this.mockRealm - realm.beginTransaction() - - val cf1 = CustomField() - cf1.id = "1234" - cf1.type = CustomField.Type.AMOUNT.ordinal - - - val cfe1 = CustomFieldEntry() - cfe1.id = "999" - cf1.entries.add(cfe1) - cfe1.numericValue = 30.0 - - val cfe2 = CustomFieldEntry() - cfe2.id = "888" - cf1.entries.add(cfe2) - cfe2.numericValue = 100.0 + val cf1Id = "1234" + var s2Id = "" - val s1 = Session.testInstance(100.0, false, Date(), 1) - s1.customFieldEntries.add(cfe1) - val s2 = Session.testInstance(100.0, true, Date(), 1) - s2.customFieldEntries.add(cfe2) - realm.commitTransaction() + val realm = this.mockRealm + realm.executeTransaction { + + val cf1 = CustomField() + cf1.id = cf1Id + cf1.type = CustomField.Type.AMOUNT.ordinal + + val cfe1 = CustomFieldEntry() + cfe1.id = "999" + cf1.entries.add(cfe1) + cfe1.numericValue = 30.0 + + val cfe2 = CustomFieldEntry() + cfe2.id = "888" + cf1.entries.add(cfe2) + cfe2.numericValue = 100.0 + + val s1 = Session.testInstance(100.0, false, Date(), 1) + s1.customFieldEntries.add(cfe1) + val s2 = Session.testInstance(100.0, true, Date(), 1) + s2.customFieldEntries.add(cfe2) + s2Id = s2.id + } - val sessions = Filter.queryOn(realm, Query(QueryCondition.CustomFieldNumberQuery(cf1.id, 100.0))) + val condition = QueryCondition.CustomFieldNumberQuery(cf1Id, 100.0) + val sessions = Filter.queryOn(realm, Query(condition)) Assert.assertEquals(1, sessions.size) - sessions[0]?.run { - Assert.assertEquals(s2.id, (this).id) + sessions.first()?.run { + Assert.assertEquals(s2Id, this.id) } + } + } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt index ef2f0b2b..e5caffa0 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt @@ -2,7 +2,6 @@ package net.pokeranalytics.android.model.filter import android.content.Context import io.realm.RealmQuery -import io.realm.kotlin.where import net.pokeranalytics.android.R import net.pokeranalytics.android.util.NULL_TEXT @@ -77,7 +76,7 @@ class Query { } } - //println("<<<<<< ${realmQuery}") + println("<<<<<< ${realmQuery.description}") val queryLast = this.conditions.filter { it is QueryCondition.Last }.firstOrNull() 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 9a13f72a..2907fd06 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 @@ -668,6 +668,7 @@ sealed class QueryCondition : FilterElementRow { realmQuery: RealmQuery, otherQueryCondition: QueryCondition? = null ): RealmQuery { + val fieldName = FilterHelper.fieldNameForQueryType(this::class.java) if (BuildConfig.DEBUG) { fieldName ?: throw PokerAnalyticsException.QueryValueMapUnknown diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt index 3f1e481b..3b1c1c16 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt @@ -1,7 +1,10 @@ package net.pokeranalytics.android.model.realm import android.content.Context -import io.realm.* +import io.realm.Realm +import io.realm.RealmList +import io.realm.RealmObject +import io.realm.RealmResults import io.realm.annotations.PrimaryKey import io.realm.kotlin.where import net.pokeranalytics.android.R @@ -41,13 +44,14 @@ open class Filter : RealmObject(), RowRepresentable, Identifiable, Deletable, Co } inline fun queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults { - val realmQuery = realm.where() + val rootQuery = realm.where() + var realmQuery = query.queryWith(rootQuery) sortField?.let { - return query.queryWith(realmQuery).sort(it).findAll() - } ?: run { - return query.queryWith(realmQuery).findAll() + realmQuery = realmQuery.sort(it) } - } + val desc = realmQuery.description + return realmQuery.findAll() + } } @PrimaryKey From 420dfa52aeda0aedefdc1c2120b7b78dc686c345 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 5 Jun 2019 19:45:52 +0200 Subject: [PATCH 2/3] fixing custom field tests --- .../CustomFieldFilterInstrumentedUnitTest.kt | 26 ++++++++----------- .../android/model/filter/QueryCondition.kt | 2 +- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt index f3acfcbc..8f732f0e 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt @@ -22,12 +22,11 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { val realm = this.mockRealm realm.beginTransaction() - val cf1 = CustomField() - cf1.id = "1" + val cf1 = realm.createObject(CustomField::class.java, "1") cf1.type = CustomField.Type.LIST.ordinal - val cfe1 = CustomFieldEntry() - val cfe2 = CustomFieldEntry() + val cfe1 = realm.createObject(CustomFieldEntry::class.java, "9") + val cfe2 = realm.createObject(CustomFieldEntry::class.java, "8") cfe1.value = "super" cfe2.value = "nul" @@ -51,24 +50,21 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { @Test fun testCustomFieldAmountFilter() { - val cf1Id = "1234" + val cfId = "1234" var s2Id = "" val realm = this.mockRealm realm.executeTransaction { - val cf1 = CustomField() - cf1.id = cf1Id - cf1.type = CustomField.Type.AMOUNT.ordinal + val cf = realm.createObject(CustomField::class.java, cfId) + cf.type = CustomField.Type.AMOUNT.ordinal - val cfe1 = CustomFieldEntry() - cfe1.id = "999" - cf1.entries.add(cfe1) + val cfe1 = realm.createObject(CustomFieldEntry::class.java, "999") + cf.entries.add(cfe1) cfe1.numericValue = 30.0 - val cfe2 = CustomFieldEntry() - cfe2.id = "888" - cf1.entries.add(cfe2) + val cfe2 = realm.createObject(CustomFieldEntry::class.java, "888") + cf.entries.add(cfe2) cfe2.numericValue = 100.0 val s1 = Session.testInstance(100.0, false, Date(), 1) @@ -78,7 +74,7 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { s2Id = s2.id } - val condition = QueryCondition.CustomFieldNumberQuery(cf1Id, 100.0) + val condition = QueryCondition.CustomFieldNumberQuery(cfId, 100.0) val sessions = Filter.queryOn(realm, Query(condition)) Assert.assertEquals(1, sessions.size) 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 2907fd06..06e34c97 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 @@ -645,7 +645,7 @@ sealed class QueryCondition : FilterElementRow { constructor(customFieldEntry: CustomFieldEntry) : this() { this.setObject(customFieldEntry) - this.customFieldId = customFieldEntry.customFields?.firstOrNull()?.id + this.customFieldId = customFieldEntry.customField?.id ?: throw PokerAnalyticsException.QueryValueMapUnexpectedValue } From 123119866a0c1ede284488def8edac866df9cf4d Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 6 Jun 2019 12:50:36 +0200 Subject: [PATCH 3/3] Fixes Oreo crash when tapping on the Feed plus button --- app/src/main/AndroidManifest.xml | 10 +++++----- .../android/ui/activity/NewDataMenuActivity.kt | 7 +++++++ .../ui/activity/components/PokerAnalyticsActivity.kt | 2 ++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c296be62..ab69d755 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -58,10 +58,10 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustNothing" /> + - +