Merge branch 'master' of gitlab.com:stax-river/poker-analytics

# Conflicts:
#	app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt
#	app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt
feature/top10
Aurelien Hubert 7 years ago
commit e0f27a11c9
  1. 52
      app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt
  2. 10
      app/src/main/AndroidManifest.xml
  3. 3
      app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt
  4. 3
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  5. 19
      app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt
  6. 7
      app/src/main/java/net/pokeranalytics/android/ui/activity/NewDataMenuActivity.kt
  7. 2
      app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt

@ -22,12 +22,11 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction() realm.beginTransaction()
val cf1 = CustomField() val cf1 = realm.createObject(CustomField::class.java, "1")
cf1.id = "1"
cf1.type = CustomField.Type.LIST.ordinal cf1.type = CustomField.Type.LIST.ordinal
val cfe1 = CustomFieldEntry() val cfe1 = realm.createObject(CustomFieldEntry::class.java, "9")
val cfe2 = CustomFieldEntry() val cfe2 = realm.createObject(CustomFieldEntry::class.java, "8")
cfe1.value = "super" cfe1.value = "super"
cfe2.value = "nul" cfe2.value = "nul"
@ -51,35 +50,38 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() {
@Test @Test
fun testCustomFieldAmountFilter() { fun testCustomFieldAmountFilter() {
val realm = this.mockRealm val cfId = "1234"
realm.beginTransaction() var s2Id = ""
val cf1 = CustomField() val realm = this.mockRealm
cf1.id = "1234" realm.executeTransaction {
cf1.type = CustomField.Type.AMOUNT.ordinal
val cf = realm.createObject(CustomField::class.java, cfId)
cf.type = CustomField.Type.AMOUNT.ordinal
val cfe1 = CustomFieldEntry() val cfe1 = realm.createObject(CustomFieldEntry::class.java, "999")
cfe1.id = "999" cf.entries.add(cfe1)
cf1.entries.add(cfe1) cfe1.numericValue = 30.0
cfe1.numericValue = 30.0
val cfe2 = CustomFieldEntry() val cfe2 = realm.createObject(CustomFieldEntry::class.java, "888")
cfe2.id = "888" cf.entries.add(cfe2)
cf1.entries.add(cfe2) cfe2.numericValue = 100.0
cfe2.numericValue = 100.0
val s1 = Session.testInstance(100.0, false, Date(), 1) val s1 = Session.testInstance(100.0, false, Date(), 1)
s1.customFieldEntries.add(cfe1) s1.customFieldEntries.add(cfe1)
val s2 = Session.testInstance(100.0, true, Date(), 1) val s2 = Session.testInstance(100.0, true, Date(), 1)
s2.customFieldEntries.add(cfe2) s2.customFieldEntries.add(cfe2)
realm.commitTransaction() s2Id = s2.id
}
val sessions = Filter.queryOn<Session>(realm, Query(QueryCondition.CustomFieldNumberQuery(cf1.id, 100.0))) val condition = QueryCondition.CustomFieldNumberQuery(cfId, 100.0)
val sessions = Filter.queryOn<Session>(realm, Query(condition))
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
sessions[0]?.run { sessions.first()?.run {
Assert.assertEquals(s2.id, (this).id) Assert.assertEquals(s2Id, this.id)
} }
} }
} }

@ -58,10 +58,10 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<!-- No screenOrientation="portrait" to fix Oreo crash -->
<activity <activity
android:name="net.pokeranalytics.android.ui.activity.NewDataMenuActivity" android:name="net.pokeranalytics.android.ui.activity.NewDataMenuActivity"
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/PokerAnalyticsTheme.MenuDialog" /> android:theme="@style/PokerAnalyticsTheme.MenuDialog" />
<activity <activity
@ -149,10 +149,10 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="net.pokeranalytics.android.ui.activity.TableReportActivity" android:name="net.pokeranalytics.android.ui.activity.TableReportActivity"
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<meta-data <meta-data
android:name="preloaded_fonts" android:name="preloaded_fonts"

@ -2,7 +2,6 @@ package net.pokeranalytics.android.model.filter
import android.content.Context import android.content.Context
import io.realm.RealmQuery import io.realm.RealmQuery
import io.realm.kotlin.where
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.util.NULL_TEXT import net.pokeranalytics.android.util.NULL_TEXT
@ -77,7 +76,7 @@ class Query {
} }
} }
//println("<<<<<< ${realmQuery}") println("<<<<<< ${realmQuery.description}")
val queryLast = this.conditions.filter { val queryLast = this.conditions.filter {
it is QueryCondition.Last it is QueryCondition.Last
}.firstOrNull() }.firstOrNull()

@ -645,7 +645,7 @@ sealed class QueryCondition : FilterElementRow {
constructor(customFieldEntry: CustomFieldEntry) : this() { constructor(customFieldEntry: CustomFieldEntry) : this() {
this.setObject(customFieldEntry) this.setObject(customFieldEntry)
this.customFieldId = customFieldEntry.customFields?.firstOrNull()?.id this.customFieldId = customFieldEntry.customField?.id
?: throw PokerAnalyticsException.QueryValueMapUnexpectedValue ?: throw PokerAnalyticsException.QueryValueMapUnexpectedValue
} }
@ -668,6 +668,7 @@ sealed class QueryCondition : FilterElementRow {
realmQuery: RealmQuery<T>, realmQuery: RealmQuery<T>,
otherQueryCondition: QueryCondition? = null otherQueryCondition: QueryCondition? = null
): RealmQuery<T> { ): RealmQuery<T> {
val fieldName = FilterHelper.fieldNameForQueryType<T>(this::class.java) val fieldName = FilterHelper.fieldNameForQueryType<T>(this::class.java)
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
fieldName ?: throw PokerAnalyticsException.QueryValueMapUnknown fieldName ?: throw PokerAnalyticsException.QueryValueMapUnknown

@ -47,15 +47,16 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta
return realm.where<Filter>().equalTo("id", filterId).findFirst() return realm.where<Filter>().equalTo("id", filterId).findFirst()
} }
inline fun <reified T : Filterable> queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults<T> { inline fun <reified T : Filterable> queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults<T> {
val realmQuery = realm.where<T>() val rootQuery = realm.where<T>()
sortField?.let { var realmQuery = query.queryWith(rootQuery)
return query.queryWith(realmQuery).sort(it).findAll() sortField?.let {
} ?: run { realmQuery = realmQuery.sort(it)
return query.queryWith(realmQuery).findAll() }
} val desc = realmQuery.description
} return realmQuery.findAll()
} }
}
override val viewType: Int override val viewType: Int
get() = RowViewType.TITLE_VALUE_ACTION.ordinal get() = RowViewType.TITLE_VALUE_ACTION.ordinal

@ -4,6 +4,8 @@ import android.animation.Animator
import android.animation.AnimatorListenerAdapter import android.animation.AnimatorListenerAdapter
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ActivityInfo
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.ViewAnimationUtils import android.view.ViewAnimationUtils
@ -36,6 +38,11 @@ class NewDataMenuActivity : PokerAnalyticsActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) 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) setContentView(R.layout.activity_new_data)
initUI() initUI()
} }

@ -1,6 +1,7 @@
package net.pokeranalytics.android.ui.activity.components package net.pokeranalytics.android.ui.activity.components
import android.Manifest.permission.ACCESS_FINE_LOCATION import android.Manifest.permission.ACCESS_FINE_LOCATION
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.os.PersistableBundle import android.os.PersistableBundle
@ -33,6 +34,7 @@ open class PokerAnalyticsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState) super.onCreate(savedInstanceState, persistentState)
Crashlytics.log("$this.localClassName onCreate") Crashlytics.log("$this.localClassName onCreate")
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT // fixes crash
} }
override fun onResume() { override fun onResume() {

Loading…
Cancel
Save