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..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,35 +50,38 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { @Test fun testCustomFieldAmountFilter() { - val realm = this.mockRealm - realm.beginTransaction() + val cfId = "1234" + var s2Id = "" - val cf1 = CustomField() - cf1.id = "1234" - cf1.type = CustomField.Type.AMOUNT.ordinal + val realm = this.mockRealm + realm.executeTransaction { + val cf = realm.createObject(CustomField::class.java, cfId) + cf.type = CustomField.Type.AMOUNT.ordinal - val cfe1 = CustomFieldEntry() - cfe1.id = "999" - cf1.entries.add(cfe1) - cfe1.numericValue = 30.0 + 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) - cfe2.numericValue = 100.0 + 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) - s1.customFieldEntries.add(cfe1) - val s2 = Session.testInstance(100.0, true, Date(), 1) - s2.customFieldEntries.add(cfe2) - realm.commitTransaction() + 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(cfId, 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8cf3f769..b9ef5ab9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -58,10 +58,10 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustNothing" /> + - + , 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 a65edf11..010e2340 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 @@ -47,15 +47,16 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta return realm.where().equalTo("id", filterId).findFirst() } - inline fun queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults { - val realmQuery = realm.where() - sortField?.let { - return query.queryWith(realmQuery).sort(it).findAll() - } ?: run { - return query.queryWith(realmQuery).findAll() - } - } - } + inline fun queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults { + val rootQuery = realm.where() + var realmQuery = query.queryWith(rootQuery) + sortField?.let { + realmQuery = realmQuery.sort(it) + } + val desc = realmQuery.description + return realmQuery.findAll() + } + } override val viewType: Int get() = RowViewType.TITLE_VALUE_ACTION.ordinal 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 49b9b97b..8cc3dfcb 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 @@ -4,6 +4,8 @@ import android.animation.Animator import android.animation.AnimatorListenerAdapter import android.content.Context import android.content.Intent +import android.content.pm.ActivityInfo +import android.os.Build import android.os.Bundle import android.view.View import android.view.ViewAnimationUtils @@ -36,6 +38,11 @@ class NewDataMenuActivity : PokerAnalyticsActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { // used to fix Oreo crash + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + setContentView(R.layout.activity_new_data) initUI() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt index 77b324f0..f72d90b2 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt @@ -1,6 +1,7 @@ package net.pokeranalytics.android.ui.activity.components import android.Manifest.permission.ACCESS_FINE_LOCATION +import android.content.pm.ActivityInfo import android.content.pm.PackageManager import android.os.Bundle import android.os.PersistableBundle @@ -33,6 +34,7 @@ open class PokerAnalyticsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onCreate(savedInstanceState, persistentState) Crashlytics.log("$this.localClassName onCreate") + requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT // fixes crash } override fun onResume() {