From 4209ab8c2ccc38454acdc6f48ad16414c261b62d Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 18 Feb 2019 15:40:56 +0100 Subject: [PATCH 1/7] Makes the duration test pass! --- app/build.gradle | 19 +++- .../android/ExampleInstrumentedTest.kt | 24 ---- .../android/ExampleInstrumentedUnitTest.kt | 106 ++++++++++++++++++ .../android/RealmInstrumentedUnitTest.kt | 26 +++++ .../android/calculus/Calculator.kt | 12 +- .../android/model/realm/Result.kt | 8 +- .../android/model/realm/Session.kt | 1 - .../android/model/realm/SessionSet.kt | 18 ++- .../android/model/realm/TimeFrame.kt | 56 +++++---- .../pokeranalytics/android/ExampleUnitTest.kt | 60 +--------- .../pokeranalytics/android/RealmUnitTest.kt | 23 ++-- 11 files changed, 221 insertions(+), 132 deletions(-) delete mode 100644 app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedTest.kt create mode 100644 app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedUnitTest.kt create mode 100644 app/src/androidTest/java/net/pokeranalytics/android/RealmInstrumentedUnitTest.kt diff --git a/app/build.gradle b/app/build.gradle index 9696e598..2b5195f7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,11 +61,24 @@ dependencies { implementation 'com.jakewharton.timber:timber:4.7.1' // Test - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:core:1.1.0' + androidTestImplementation 'androidx.test:core:1.0.0' androidTestImplementation 'androidx.test:runner:1.1.0' androidTestImplementation 'androidx.test:rules:1.1.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.0' + + + + // Required -- JUnit 4 framework + testImplementation 'junit:junit:4.12' + // Optional -- Robolectric environment +// testImplementation 'androidx.test:core:1.1.0' + // Optional -- Mockito framework + testImplementation 'com.android.support.test:runner:1.0.1' + testImplementation 'com.android.support.test:rules:1.0.1' + +// testImplementation 'androidx.test.espresso:espresso-core:3.1.0' + + } apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedTest.kt deleted file mode 100644 index 0face4e3..00000000 --- a/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package net.pokeranalytics.android - -import androidx.test.InstrumentationRegistry -import androidx.test.runner.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getTargetContext() - assertEquals("net.pokeranalytics.android", appContext.packageName) - } -} diff --git a/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedUnitTest.kt new file mode 100644 index 00000000..4b834a9f --- /dev/null +++ b/app/src/androidTest/java/net/pokeranalytics/android/ExampleInstrumentedUnitTest.kt @@ -0,0 +1,106 @@ +package net.pokeranalytics.android + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import net.pokeranalytics.android.calculus.Calculator +import net.pokeranalytics.android.calculus.ComputedResults +import net.pokeranalytics.android.calculus.SessionGroup +import net.pokeranalytics.android.calculus.Stat +import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.model.realm.TimeFrame +import org.junit.Assert +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith +import java.text.SimpleDateFormat +import java.util.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) + +class ExampleInstrumentedUnitTest : RealmInstrumentedUnitTest() { + + // convenience extension + fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session { + var session: Session = Session.newInstance() + session.result?.netResult = netResult + session.timeFrame?.setDate(startDate, endDate) + return session + } + + @Test + fun testSessionStats() { + + val realm = this.mockRealm + realm.beginTransaction() + + val sdf = SimpleDateFormat("dd/M/yyyy hh:mm") + + val sd1 = sdf.parse("01/1/2019 10:00") + val ed1 = sdf.parse("01/1/2019 11:00") + val sd2 = sdf.parse("02/1/2019 08:00") + val ed2 = sdf.parse("02/1/2019 11:00") + + var s1 = realm.createObject(Session::class.java, "1") + var s2 = realm.createObject(Session::class.java, "2") + + s1.timeFrame = realm.createObject(TimeFrame::class.java) + s2.timeFrame = realm.createObject(TimeFrame::class.java) + + s1.result = realm.createObject(net.pokeranalytics.android.model.realm.Result::class.java) + s2.result = realm.createObject(net.pokeranalytics.android.model.realm.Result::class.java) + +// var s1: Session = Session.newInstance() +// var s2: Session = Session.newInstance() + + s1.result?.netResult = -100.0 + s2.result?.netResult = 300.0 + + realm.insert(s1) + realm.insert(s2) + realm.commitTransaction() + + realm.beginTransaction() + s1.timeFrame?.setDate(sd1, ed1) + s2.timeFrame?.setDate(sd2, ed2) + + realm.copyToRealmOrUpdate(s1) + realm.copyToRealmOrUpdate(s2) + + realm.commitTransaction() + + val sessions = realm.where(Session::class.java).findAll() + val group = SessionGroup(name = "test", sessions = sessions) + + val results: ComputedResults = Calculator.compute(group, Calculator.Options()) + val delta = 0.01 + + val sum = results.computedStat(Stat.NETRESULT) + if (sum != null) { + assertEquals(200.0, sum.value, delta) + } else { + Assert.fail("No Net result stat") + } + + val average = results.computedStat(Stat.AVERAGE) + if (average != null) { + assertEquals(100.0, average.value, delta) + } else { + Assert.fail("No AVERAGE stat") + } + + val duration = results.computedStat(Stat.DURATION) + if (duration != null) { + assertEquals(4.0, duration.value, delta) + } else { + Assert.fail("No duration stat") + } + + } + + + +} diff --git a/app/src/androidTest/java/net/pokeranalytics/android/RealmInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/RealmInstrumentedUnitTest.kt new file mode 100644 index 00000000..8c91dc1f --- /dev/null +++ b/app/src/androidTest/java/net/pokeranalytics/android/RealmInstrumentedUnitTest.kt @@ -0,0 +1,26 @@ +package net.pokeranalytics.android + +import io.realm.Realm +import io.realm.RealmConfiguration +import org.junit.After +import org.junit.Before + +open class RealmInstrumentedUnitTest { + + lateinit var mockRealm: Realm + + @Before + fun setup() { + + val testConfig = RealmConfiguration.Builder().inMemory().name("test-realm").build() + Realm.setDefaultConfiguration(testConfig) + mockRealm = Realm.getDefaultInstance() + } + + @After + @Throws(Exception::class) + public fun tearDown() { + mockRealm.close() + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt index c8afd8d8..c28b04b1 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt @@ -117,12 +117,12 @@ class Calculator { var hourlyRate: Double = 0.0; var hourlyRateBB: Double = 0.0 var gIndex = 0; var gSum = 0.0; var gTotalHands = 0.0; var gBBSum = 0.0; - sessionSets.forEach { group -> + sessionSets.forEach { sessionSet -> gIndex++ - duration += group.duration - gSum += group.netResult - gTotalHands += group.estimatedHands - gBBSum += group.bbNetResult + duration += sessionSet.hourlyDuration + gSum += sessionSet.netResult + gTotalHands += sessionSet.estimatedHands + gBBSum += sessionSet.bbNetResult hourlyRate = gSum / duration * 3600.0 hourlyRateBB = gBBSum / duration * 3600.0 @@ -133,7 +133,7 @@ class Calculator { results.addEvolutionValue(Stat.netBBPer100Hands(gBBSum, gTotalHands), duration, NET_BB_PER_100_HANDS) results.addEvolutionValue(hourlyRate, duration, HOURLY_RATE) results.addEvolutionValue(gIndex.toDouble(), duration, NUMBER_OF_GROUPS) - results.addEvolutionValue(group.duration, duration, DURATION) + results.addEvolutionValue(sessionSet.duration.toDouble(), duration, DURATION) results.addEvolutionValue(duration / gIndex, duration, AVERAGE_DURATION) results.addEvolutionValue(hourlyRateBB, duration, HOURLY_RATE_BB) } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt index d2a92ecd..13ae1695 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt @@ -2,15 +2,11 @@ package net.pokeranalytics.android.model.realm import io.realm.RealmList import io.realm.RealmObject -import io.realm.annotations.PrimaryKey -import java.util.* - +import io.realm.annotations.RealmClass +@RealmClass open class Result : RealmObject() { - @PrimaryKey - var id = UUID.randomUUID().toString() - // the user associated to this session result var player: Player? = null 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 74c482ea..a5bee990 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 @@ -12,7 +12,6 @@ import net.pokeranalytics.android.util.data.sessionDao import java.util.* import kotlin.collections.ArrayList - open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, DisplayableDataSource { @PrimaryKey diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt index 6645c7c5..071a31a0 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt @@ -1,5 +1,6 @@ package net.pokeranalytics.android.model.realm +import io.realm.Realm import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.Ignore @@ -14,7 +15,16 @@ open class SessionSet() : RealmObject() { var sessions: RealmList = RealmList() @Ignore // a duration shortcut - var duration: Double = 0.0 + var duration: Long = 0L + get() { + return this.timeFrame?.duration ?: 0L + } + + @Ignore // a duration in hour + var hourlyDuration: Double = 0.0 + get() { + return this.timeFrame?.hourlyDuration ?: 0.0 + } @Ignore // a netResult shortcut var netResult: Double = 0.0 @@ -30,9 +40,9 @@ open class SessionSet() : RealmObject() { companion object { - fun newInstance() : SessionSet { - val sessionSet: SessionSet = SessionSet() - sessionSet.timeFrame = TimeFrame() + fun newInstance(realm: Realm) : SessionSet { + val sessionSet: SessionSet = realm.createObject(SessionSet::class.java) + sessionSet.timeFrame = realm.createObject(TimeFrame::class.java) return sessionSet } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt index a976f66b..f443f44e 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt @@ -9,16 +9,21 @@ import io.realm.annotations.LinkingObjects import net.pokeranalytics.android.exceptions.ModelException import java.util.* - open class TimeFrame : RealmObject() { // A start date var startDate: Date = Date() - private set + private set(value) { + field = value + this.computeDuration() + } // An end date var endDate: Date? = null - private set + private set(value) { + field = value + this.computeDuration() + } // The break duration var breakDuration: Long = 0L @@ -31,6 +36,11 @@ open class TimeFrame : RealmObject() { var duration: Long = 0L private set + var hourlyDuration: Double = 0.0 + get() { + return this.duration / 3600000.0 // 3.6 millions of milliseconds + } + // indicates a state of pause var paused: Boolean = false @@ -63,7 +73,8 @@ open class TimeFrame : RealmObject() { private fun computeDuration() { var endDate: Date = this.endDate ?: Date() - this.duration = endDate.time - startDate.time - this.breakDuration + val netDuration = endDate.time - this.startDate.time - this.breakDuration + this.duration = netDuration } private fun notifySessionDateChange() { @@ -76,13 +87,13 @@ open class TimeFrame : RealmObject() { } else { val endDate = this.endDate!! query - .greaterThan("timeFrame.startDate", this.startDate.time) - .lessThan("timeFrame.endDate", this.startDate.time) + .greaterThan("timeFrame.startDate", this.startDate) + .lessThan("timeFrame.endDate", this.startDate) .or() .greaterThan("timeFrame.startDate", endDate) .lessThan("timeFrame.endDate", endDate) .or() - .lessThan("timeFrame.startDate", this.startDate.time) + .lessThan("timeFrame.startDate", this.startDate) .greaterThan("timeFrame.endDate", endDate) } @@ -90,7 +101,7 @@ open class TimeFrame : RealmObject() { this.updateTimeFrames(sessionGroups) - realm.close() +// realm.close() } /** @@ -112,17 +123,24 @@ open class TimeFrame : RealmObject() { private fun createSessionGroup() { val realm = Realm.getDefaultInstance() - realm.beginTransaction() +// realm.beginTransaction() - val set: SessionSet = SessionSet.newInstance() + val set: SessionSet = SessionSet.newInstance(realm) set.timeFrame?.let { it.startDate = this.startDate it.endDate = this.endDate } ?: run { throw ModelException("TimeFrame should never be null here") } - set.sessions.add(this.session) - realm.commitTransaction() + + this.session?.let { + it.sessionSet = set + } ?: run { + throw ModelException("Session should never be null here") + } +// this.session?.sessionSet = set +// set.sessions.add(this.session) +// realm.commitTransaction() } /** @@ -144,13 +162,13 @@ open class TimeFrame : RealmObject() { } // Realm Update - val realm = Realm.getDefaultInstance() +// val realm = Realm.getDefaultInstance() realm.beginTransaction() if (!sessionSet.sessions.contains(this.session)) { sessionSet.sessions.add(this.session) } - realm.copyToRealmOrUpdate(groupTimeFrame) - realm.commitTransaction() +// realm.copyToRealmOrUpdate(groupTimeFrame) +// realm.commitTransaction() } @@ -185,14 +203,14 @@ open class TimeFrame : RealmObject() { var sessions = sessionSets.flatMap { it.sessions } // Start Realm updates - val realm = Realm.getDefaultInstance() - realm.beginTransaction() +// val realm = Realm.getDefaultInstance() +// realm.beginTransaction() // delete all sets sessionSets.deleteAllFromRealm() // Create a new sets - val set: SessionSet = SessionSet.newInstance() + val set: SessionSet = SessionSet.newInstance(realm) set.timeFrame?.let { it.startDate = startDate it.endDate = endDate @@ -210,7 +228,7 @@ open class TimeFrame : RealmObject() { // Add all orphan sessions set.sessions.addAll(sessions) - realm.commitTransaction() +// realm.commitTransaction() } } diff --git a/app/src/test/java/net/pokeranalytics/android/ExampleUnitTest.kt b/app/src/test/java/net/pokeranalytics/android/ExampleUnitTest.kt index b5e83530..9ae7c2fa 100644 --- a/app/src/test/java/net/pokeranalytics/android/ExampleUnitTest.kt +++ b/app/src/test/java/net/pokeranalytics/android/ExampleUnitTest.kt @@ -1,11 +1,9 @@ package net.pokeranalytics.android import net.pokeranalytics.android.calculus.* -import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.SessionSet import org.junit.Assert.fail import org.junit.Test -import java.util.* /** * Example local unit test, which will execute on the development machine (host). @@ -27,7 +25,7 @@ class ExampleUnitTest : RealmUnitTest() { } -// @Test + @Test fun testStats() { val grades: List = listOf(Grade(10.0), Grade(20.0)) @@ -51,61 +49,5 @@ class ExampleUnitTest : RealmUnitTest() { } - // convenience extension - fun Session.Companion.testInstance(netResult: Double, startDate: Date, endDate: Date?): Session { - var session: Session = Session.newInstance() - session.result?.netResult = netResult - session.timeFrame?.setDate(startDate, endDate) - return session - } - - @Test - fun testSessionStats() { - - val realm = RealmUnitTest.realmInstance() - realm.beginTransaction() - - Calendar.getInstance().set(2019,1,1,10,0) - val sd1 = Calendar.getInstance().time - Calendar.getInstance().set(2019,1,1,11,0) - val ed1 = Calendar.getInstance().time - val s1 = Session.testInstance(-100.0, sd1, ed1) - - Calendar.getInstance().set(2019,1,2,8,0) - val sd2 = Calendar.getInstance().time - Calendar.getInstance().set(2019,1,2,11,0) - val ed2 = Calendar.getInstance().time - val s2 = Session.testInstance(300.0, sd2, ed2) - - val sessions: List = listOf(s1, s2) - val group = SessionGroup(name = "test", sessions = sessions) - - realm.commitTransaction() - - val results: ComputedResults = Calculator.compute(group, Calculator.Options()) - - val sum = results.computedStat(Stat.NETRESULT) - if (sum != null) { - assert(sum.value == 200.0) { "sum is ${sum.value}" } - } else { - fail("No Net result stat") - } - - val average = results.computedStat(Stat.AVERAGE) - if (average != null) { - assert(average.value == 100.0) { "average is ${average.value}" } - } else { - fail("No AVERAGE stat") - } - - val duration = results.computedStat(Stat.DURATION) - if (duration != null) { - assert(duration.value == 4.0) { "duration is ${duration.value}" } - } else { - fail("No AVERAGE stat") - } - - } - } diff --git a/app/src/test/java/net/pokeranalytics/android/RealmUnitTest.kt b/app/src/test/java/net/pokeranalytics/android/RealmUnitTest.kt index b231491f..ffe2ffdd 100644 --- a/app/src/test/java/net/pokeranalytics/android/RealmUnitTest.kt +++ b/app/src/test/java/net/pokeranalytics/android/RealmUnitTest.kt @@ -1,22 +1,25 @@ package net.pokeranalytics.android -//import androidx.test.core.app.ApplicationProvider import io.realm.Realm import io.realm.RealmConfiguration +import org.junit.After +import org.junit.Before open class RealmUnitTest { - companion object { + lateinit var mockRealm: Realm - fun realmInstance() : Realm { - -// Application - -// Realm.init(ApplicationProvider.getApplicationContext()) - val testConfig = RealmConfiguration.Builder().inMemory().name("test-realm").build() - return Realm.getInstance(testConfig) - } + @Before + fun setup() { + val testConfig = RealmConfiguration.Builder().inMemory().name("test-realm").build() + Realm.setDefaultConfiguration(testConfig) + mockRealm = Realm.getDefaultInstance() + } + @After + @Throws(Exception::class) + public fun tearDown() { + mockRealm.close() } } \ No newline at end of file From e244e7a5617937029e33048db562317bbeb17b44 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 16:08:19 +0100 Subject: [PATCH 2/7] Display RealmResult in BottomSheet list --- .../android/model/realm/Session.kt | 4 ++-- .../ui/adapter/components/DataListAdapter.kt | 4 ++-- .../adapter/components/DynamicRowInterface.kt | 2 +- .../android/ui/fragment/NewSessionFragment.kt | 11 +---------- .../ui/fragment/components/BottomSheetData.kt | 4 ++-- .../components/BottomSheetListFragment.kt | 19 +++++++++++++++++-- 6 files changed, 25 insertions(+), 19 deletions(-) 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 b1bde571..57f9e478 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 @@ -147,14 +147,14 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa override var title: String = "Change that: $creationDate" override val primaryKey: String get() = this.id - override fun getBottomSheetData(row: DynamicRowInterface): ArrayList { + override fun getBottomSheetData(row: DynamicRowInterface, realm: Realm): ArrayList { val data = ArrayList() // Todo: Localize & set real data when (row) { SessionRow.GAME -> { - data.add(BottomSheetData(game, "", 0, arrayListOf(Game(), Game(), Game()))) + data.add(BottomSheetData(game, "", 0, SettingRow.GAME.items(realm))) } SessionRow.DATE -> { data.add(BottomSheetData(timeFrame?.startDate, "Start date")) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt index 7e9d7dbb..84ac672b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt @@ -6,7 +6,7 @@ import android.view.ViewGroup import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import kotlinx.android.synthetic.main.fragment_data_list.view.* +import io.realm.Realm import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.fragment.components.BottomSheetData @@ -22,7 +22,7 @@ interface DisplayableDataSource { } interface EditableDataSource { - fun getBottomSheetData(row: DynamicRowInterface): ArrayList + fun getBottomSheetData(row: DynamicRowInterface, realm: Realm): ArrayList } class DataListAdapter(var delegate: DisplayableDelegate, var layout: Int? = null) : RecyclerView.Adapter() { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt index da23bfe5..1f7a16de 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt @@ -55,7 +55,7 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { get() { return when (this) { BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT - GAME -> BottomSheetType.DOUBLE_LIST + GAME -> BottomSheetType.LIST DATE -> BottomSheetType.DATE } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 3f3f27f9..881310d8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -32,16 +32,7 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS } override fun onRowSelected(row: DynamicRowInterface) { - /* - val data = when (row.bottomSheetType) { - BottomSheetType.BLINDS -> newSession - BottomSheetType.DATE -> newSession.timeFrame - BottomSheetType.GAME -> newSession.game - else -> Any() - } - */ - - val data = newSession.getBottomSheetData(row) + val data = newSession.getBottomSheetData(row, getRealm()) BottomSheetFragment.create(fragmentManager, row, this, data) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetData.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetData.kt index a55494f0..978ba7f2 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetData.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetData.kt @@ -1,11 +1,11 @@ package net.pokeranalytics.android.ui.fragment.components import android.text.InputType -import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource +import io.realm.RealmResults class BottomSheetData( var defaultValue: Any? = null, var hint: String? = "", var inputType: Int? = InputType.TYPE_CLASS_TEXT, - var data: ArrayList? = ArrayList() + var data: RealmResults<*>? = null ) \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt index aaac5318..d7c21fb0 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt @@ -3,7 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager +import io.realm.RealmResults import kotlinx.android.synthetic.main.bottom_sheet_double_list.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R @@ -14,6 +16,8 @@ import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { + private var realmData: RealmResults<*>? = null + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initData() @@ -31,21 +35,32 @@ class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { } override fun data(position: Int): DisplayableDataSource { + realmData?.let { + return it[position] as DisplayableDataSource + } + //TODO: Change that return Game() } override fun onRowSelected(position: Int) { + realmData?.let { + Toast.makeText(requireContext(), "Select: ${it[position]}", Toast.LENGTH_SHORT).show() + } } override fun size(): Int { - return 0 + return realmData?.size ?: 0 } /** * Init data */ private fun initData() { - val data = getData() + + val bottomSheetData = getData() + if (bottomSheetData.isNotEmpty() && bottomSheetData.first().data != null) { + this.realmData = bottomSheetData.first().data + } } /** From a71f49b657b57518c561a413550a081cc2aabcc3 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 16:12:03 +0100 Subject: [PATCH 3/7] Add bankroll & location for Session details --- .../pokeranalytics/android/model/realm/Session.kt | 6 ++++++ .../ui/adapter/components/DynamicRowInterface.kt | 14 +++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) 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 57f9e478..765f7b97 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 @@ -156,6 +156,12 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa SessionRow.GAME -> { data.add(BottomSheetData(game, "", 0, SettingRow.GAME.items(realm))) } + SessionRow.LOCATION -> { + data.add(BottomSheetData(location, "", 0, SettingRow.LOCATION.items(realm))) + } + SessionRow.BANKROLL -> { + data.add(BottomSheetData(bankroll, "", 0, SettingRow.BANKROLL.items(realm))) + } SessionRow.DATE -> { data.add(BottomSheetData(timeFrame?.startDate, "Start date")) data.add(BottomSheetData(timeFrame?.endDate, "End date")) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt index 1f7a16de..95eda40f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt @@ -17,9 +17,9 @@ interface DynamicRowInterface { } interface DynamicValues { - fun items(realm: Realm): RealmResults<*> - var sortingFieldName: String - var sorting: Sort + fun items(realm: Realm): RealmResults<*> + var sortingFieldName: String + var sorting: Sort fun clazz(): Class } @@ -36,8 +36,10 @@ class SectionRow(stringRes: Int) : DynamicRowInterface { } enum class SessionRow(val resId: Int) : DynamicRowInterface { - BLINDS(R.string.blinds), GAME(R.string.game), + BLINDS(R.string.blinds), + LOCATION(R.string.location), + BANKROLL(R.string.bankroll), DATE(R.string.date); override fun localizedTitle(context: Context): String { @@ -47,7 +49,7 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { override var viewType: Int = RowViewType.HEADER.ordinal get() { return when (this) { - BLINDS, GAME, DATE -> RowViewType.TITLE_VALUE.ordinal + BLINDS, GAME, DATE, BANKROLL, LOCATION -> RowViewType.TITLE_VALUE.ordinal } } @@ -56,6 +58,8 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { return when (this) { BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT GAME -> BottomSheetType.LIST + LOCATION -> BottomSheetType.LIST + BANKROLL -> BottomSheetType.LIST DATE -> BottomSheetType.DATE } } From 72a9c9ab59b1ebd595911cbd8382beea3bc7bb5a Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 16:53:48 +0100 Subject: [PATCH 4/7] Improve bottom sheet list --- .../ui/fragment/EditableDataFragment.kt | 6 ++- .../android/ui/fragment/NewSessionFragment.kt | 16 +++++-- .../components/BottomSheetDateFragment.kt | 2 +- .../BottomSheetDoubleEditTextFragment.kt | 2 +- .../BottomSheetDoubleListFragment.kt | 2 +- .../components/BottomSheetEditTextFragment.kt | 4 +- .../components/BottomSheetFragment.kt | 20 ++++----- .../components/BottomSheetListFragment.kt | 11 +++-- app/src/main/res/layout/bottom_sheet_list.xml | 10 ++--- .../main/res/layout/fragment_bottom_sheet.xml | 19 +++----- .../res/layout/row_bottom_sheet_title.xml | 2 +- app/src/main/res/layout/row_title.xml | 43 +++++++++---------- 12 files changed, 68 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index defa6052..b2bf1e9e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -8,11 +8,9 @@ import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import io.realm.Realm import io.realm.RealmObject -import kotlinx.android.synthetic.main.bottom_sheet_bankroll.* import kotlinx.android.synthetic.main.fragment_editable_data.* import kotlinx.android.synthetic.main.fragment_editable_data.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate @@ -40,6 +38,10 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto BottomSheetFragment.create(fragmentManager, row, this, ArrayList()) } + override fun clickOnAdd(row: DynamicRowInterface) { + Toast.makeText(requireContext(), "Add new element: $row", Toast.LENGTH_SHORT).show() + } + override fun setValue(value: Any, row: DynamicRowInterface) { Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 881310d8..48e772aa 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -9,10 +9,9 @@ import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_new_session.* import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity -import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter -import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback -import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface +import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment @@ -36,6 +35,17 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS BottomSheetFragment.create(fragmentManager, row, this, data) } + override fun clickOnAdd(row: DynamicRowInterface) { + Toast.makeText(requireContext(), "Add new element: $row", Toast.LENGTH_SHORT).show() + + when(row) { + SessionRow.GAME -> EditableDataActivity.newInstance(requireContext(), SettingRow.GAME.ordinal, primaryKey = null) + SessionRow.BANKROLL -> EditableDataActivity.newInstance(requireContext(), SettingRow.BANKROLL.ordinal, primaryKey = null) + SessionRow.LOCATION -> EditableDataActivity.newInstance(requireContext(), SettingRow.LOCATION.ordinal, primaryKey = null) + } + + } + override fun setValue(value: Any, row: DynamicRowInterface) { Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt index 8933d705..3304b3ee 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt @@ -18,7 +18,7 @@ class BottomSheetDateFragment : BottomSheetFragment() { override fun clickOnCheck() { super.clickOnCheck() //TODO: Change that - valueDelegate.setValue("", row) + bottomSheetDelegate.setValue("", row) dismiss() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt index c2af5fa6..392b9cf6 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt @@ -19,7 +19,7 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() { override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue("", row) + bottomSheetDelegate.setValue("", row) dismiss() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt index c4b400ab..76b9180b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt @@ -25,7 +25,7 @@ class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate override fun clickOnCheck() { super.clickOnCheck() //TODO: Change that - valueDelegate.setValue("", row) + bottomSheetDelegate.setValue("", row) dismiss() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt index 1120a2b6..03b54c58 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt @@ -18,7 +18,7 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue("", row) + bottomSheetDelegate.setValue("", row) dismiss() } @@ -41,8 +41,6 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_edit_text, view?.bottomSheetContainer, true) - - } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt index b1b974dc..66669d4d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt @@ -5,7 +5,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowManager -import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.FragmentManager import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.android.synthetic.main.fragment_bottom_sheet.* @@ -29,6 +28,7 @@ interface BottomSheetInterface { } interface BottomSheetDelegate { + fun clickOnAdd(row: DynamicRowInterface) fun setValue(value: Any, row: DynamicRowInterface) } @@ -36,7 +36,7 @@ interface BottomSheetDelegate { open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterface { lateinit var row: DynamicRowInterface - lateinit var valueDelegate: BottomSheetDelegate + lateinit var bottomSheetDelegate: BottomSheetDelegate private var data: ArrayList = ArrayList() @@ -44,7 +44,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa fun create( fragmentManager: FragmentManager?, row: DynamicRowInterface, - valueDelegate: BottomSheetDelegate, + bottomSheetDelegate: BottomSheetDelegate, data: ArrayList ): BottomSheetFragment { @@ -58,20 +58,14 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa bottomSheetFragment.show(fragmentManager, "bottomSheet") bottomSheetFragment.row = row - bottomSheetFragment.valueDelegate = valueDelegate + bottomSheetFragment.bottomSheetDelegate = bottomSheetDelegate bottomSheetFragment.data = data return bottomSheetFragment } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate( - net.pokeranalytics.android.R.layout.fragment_bottom_sheet, - container, - false - ) as ConstraintLayout - - return view + return inflater.inflate(R.layout.fragment_bottom_sheet,container,false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -93,6 +87,8 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa } override fun clickOnAdd() { + when (row) { + } } /** @@ -113,7 +109,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa true } bottomSheetToolbar.menu.findItem(R.id.actionAdd).setOnMenuItemClickListener { - clickOnAdd() + bottomSheetDelegate.clickOnAdd(row) true } bottomSheetToolbar.menu.findItem(R.id.actionCheck).setOnMenuItemClickListener { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt index d7c21fb0..1d3e5484 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt @@ -13,10 +13,12 @@ import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.ui.adapter.components.DataListAdapter import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate +import timber.log.Timber class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { private var realmData: RealmResults<*>? = null + private lateinit var dataAdapter: DataListAdapter override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -26,12 +28,13 @@ class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue("", row) + bottomSheetDelegate.setValue("", row) dismiss() } - override fun onStart() { - super.onStart() + override fun onResume() { + super.onResume() + dataAdapter.notifyDataSetChanged() } override fun data(position: Int): DisplayableDataSource { @@ -71,7 +74,7 @@ class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) val viewManager = LinearLayoutManager(requireContext()) - val dataAdapter = DataListAdapter(this, R.layout.row_bottom_sheet_title) + dataAdapter = DataListAdapter(this, R.layout.row_bottom_sheet_title) gameNameRecyclerView.apply { setHasFixedSize(true) diff --git a/app/src/main/res/layout/bottom_sheet_list.xml b/app/src/main/res/layout/bottom_sheet_list.xml index 76f5da43..fbcf8383 100644 --- a/app/src/main/res/layout/bottom_sheet_list.xml +++ b/app/src/main/res/layout/bottom_sheet_list.xml @@ -1,13 +1,11 @@ - + android:layout_height="wrap_content"> + android:layout_height="200dp" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bottom_sheet.xml b/app/src/main/res/layout/fragment_bottom_sheet.xml index 73b79a38..26014337 100644 --- a/app/src/main/res/layout/fragment_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_bottom_sheet.xml @@ -1,28 +1,21 @@ - + android:layout_width="match_parent" + android:layout_height="wrap_content" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/row_bottom_sheet_title.xml b/app/src/main/res/layout/row_bottom_sheet_title.xml index 95f4b4c9..989fe846 100644 --- a/app/src/main/res/layout/row_bottom_sheet_title.xml +++ b/app/src/main/res/layout/row_bottom_sheet_title.xml @@ -4,8 +4,8 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" - android:background="@color/kaki_medium" android:layout_height="wrap_content" + android:background="@color/kaki_medium" android:foreground="?selectableItemBackground" android:padding="8dp"> diff --git a/app/src/main/res/layout/row_title.xml b/app/src/main/res/layout/row_title.xml index 44662103..0f648782 100644 --- a/app/src/main/res/layout/row_title.xml +++ b/app/src/main/res/layout/row_title.xml @@ -1,27 +1,26 @@ - + + android:id="@+id/title" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" + android:textSize="20sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="Data Type Title" /> \ No newline at end of file From 8c27e5168cc51c414ae9992a54efe00eddbafb1a Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 16:55:06 +0100 Subject: [PATCH 5/7] Update bottom sheet list background color --- app/src/main/res/layout/row_bottom_sheet_title.xml | 2 +- app/src/main/res/values/colors.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/res/layout/row_bottom_sheet_title.xml b/app/src/main/res/layout/row_bottom_sheet_title.xml index 989fe846..7e3e1b7e 100644 --- a/app/src/main/res/layout/row_bottom_sheet_title.xml +++ b/app/src/main/res/layout/row_bottom_sheet_title.xml @@ -5,7 +5,7 @@ android:id="@+id/container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/kaki_medium" + android:background="@color/kaki_light" android:foreground="?selectableItemBackground" android:padding="8dp"> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 388b4188..59fdae84 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -26,7 +26,6 @@ #3b4a39 #57815a - #657d60 #9bae8d From e782d516fc18a15cbaa2d9a17a1ca6d634e011c5 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 17:26:25 +0100 Subject: [PATCH 6/7] Format class --- .../ui/activity/EditableDataActivity.kt | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt index e96036f1..80805141 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt @@ -5,36 +5,36 @@ import android.content.Intent import android.os.Bundle import kotlinx.android.synthetic.main.activity_editable_data.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.ui.fragment.EditableDataFragment import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.fragment.EditableDataFragment class EditableDataActivity : PokerAnalyticsActivity() { - companion object { - fun newInstance(context: Context, dataType: Int, primaryKey:String?) { - val intent = Intent(context, EditableDataActivity::class.java) - intent.putExtra("dataType", dataType) - primaryKey?.let { - intent.putExtra("primaryKey", it) - } - context.startActivity(intent) - } - } + companion object { + fun newInstance(context: Context, dataType: Int, primaryKey: String? = null) { + val intent = Intent(context, EditableDataActivity::class.java) + intent.putExtra("dataType", dataType) + primaryKey?.let { + intent.putExtra("primaryKey", it) + } + context.startActivity(intent) + } + } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_editable_data) - initUI() - } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_editable_data) + initUI() + } - /** - * Init UI - */ - private fun initUI() { + /** + * Init UI + */ + private fun initUI() { - val dataType = intent.getIntExtra("dataType", 0) - val primaryKey = intent.getStringExtra("primaryKey") - val fragment = editableDataFragment as EditableDataFragment - fragment.setData(dataType, primaryKey) - } + val dataType = intent.getIntExtra("dataType", 0) + val primaryKey = intent.getStringExtra("primaryKey") + val fragment = editableDataFragment as EditableDataFragment + fragment.setData(dataType, primaryKey) + } } \ No newline at end of file From 24ace8b042657e1fbbd8e9358b8821153d8f787c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 17:26:37 +0100 Subject: [PATCH 7/7] Update method call --- .../android/ui/fragment/NewSessionFragment.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 48e772aa..32523b25 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -39,9 +39,9 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS Toast.makeText(requireContext(), "Add new element: $row", Toast.LENGTH_SHORT).show() when(row) { - SessionRow.GAME -> EditableDataActivity.newInstance(requireContext(), SettingRow.GAME.ordinal, primaryKey = null) - SessionRow.BANKROLL -> EditableDataActivity.newInstance(requireContext(), SettingRow.BANKROLL.ordinal, primaryKey = null) - SessionRow.LOCATION -> EditableDataActivity.newInstance(requireContext(), SettingRow.LOCATION.ordinal, primaryKey = null) + SessionRow.GAME -> EditableDataActivity.newInstance(requireContext(), SettingRow.GAME.ordinal) + SessionRow.BANKROLL -> EditableDataActivity.newInstance(requireContext(), SettingRow.BANKROLL.ordinal) + SessionRow.LOCATION -> EditableDataActivity.newInstance(requireContext(), SettingRow.LOCATION.ordinal) } }