From 78c9ec2c516fde73cc1152c231986380a2c91440 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 5 Jun 2019 18:35:11 +0200 Subject: [PATCH 1/5] 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/5] 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/5] 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" /> + - + Date: Thu, 6 Jun 2019 14:16:12 +0200 Subject: [PATCH 4/5] Remove log --- .../main/java/net/pokeranalytics/android/model/filter/Query.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e5caffa0..986a4fba 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 @@ -76,7 +76,7 @@ class Query { } } - println("<<<<<< ${realmQuery.description}") +// println("<<<<<< ${realmQuery.description}") val queryLast = this.conditions.filter { it is QueryCondition.Last }.firstOrNull() From 97dc033d23e08c8cedad79533fa2353c27a7cc8e Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 6 Jun 2019 14:16:34 +0200 Subject: [PATCH 5/5] Put correct navigation tabs --- .../android/ui/activity/HomeActivity.kt | 5 +-- .../ui/activity/NewDataMenuActivity.kt | 2 +- app/src/main/res/menu/navigation_home.xml | 34 +++++-------------- 3 files changed, 10 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt index 59cc7c79..e9a540db 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt @@ -48,12 +48,9 @@ class HomeActivity : PokerAnalyticsActivity() { R.id.navigation_reports -> { displayFragment(3) } - R.id.navigation_settings -> { + R.id.navigation_more -> { displayFragment(4) } -// R.id.navigation_more -> { -// displayFragment(4) -// } } return@OnNavigationItemSelectedListener true } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt index 8cc3dfcb..3a85ad5f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt @@ -40,7 +40,7 @@ class NewDataMenuActivity : PokerAnalyticsActivity() { super.onCreate(savedInstanceState) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { // used to fix Oreo crash - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; } setContentView(R.layout.activity_new_data) diff --git a/app/src/main/res/menu/navigation_home.xml b/app/src/main/res/menu/navigation_home.xml index 7d41675a..d4a0f3b6 100644 --- a/app/src/main/res/menu/navigation_home.xml +++ b/app/src/main/res/menu/navigation_home.xml @@ -1,24 +1,6 @@ - - - - - - - + + + + +