diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0d8cf486..23186ad9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,7 +22,7 @@
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
index 72422531..c75f1772 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
@@ -1,7 +1,8 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
-import io.realm.*
+import io.realm.RealmList
+import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
@@ -68,9 +69,9 @@ open class Bankroll(name: String = "") : RealmObject(), DynamicRowDelegate, Disp
return data
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) {
- SimpleRow.NAME -> this.name = value as String
+ SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
index d44a528b..c4dbf4ef 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
@@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
-import io.realm.Realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.*
@@ -44,9 +43,9 @@ open class Game : RealmObject(), DynamicRowDelegate, DisplayableDataSource, Edit
return data
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) {
- SimpleRow.NAME -> this.name = value as String
+ SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
}
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
index 2566bf61..6869c726 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
@@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
-import io.realm.Realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.*
@@ -48,9 +47,9 @@ open class Location : RealmObject(), DynamicRowDelegate, DisplayableDataSource,
return data
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) {
- SimpleRow.NAME -> this.name = value as String
+ SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
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 eda111d9..76cd9dc7 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
@@ -191,22 +191,24 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
realm.beginTransaction()
when(row) {
- SessionRow.GAME -> if (value is Game) game = value
- SessionRow.BANKROLL -> if (value is Bankroll) bankroll = value
- SessionRow.LOCATION -> if (value is Location) location = value
- SessionRow.COMMENT -> if (value is String) comment = value
+ SessionRow.GAME -> game = value as Game?
+ SessionRow.BANKROLL -> bankroll = value as Bankroll?
+ SessionRow.LOCATION -> location = value as Location?
+ SessionRow.COMMENT -> comment = value as String? ?: ""
SessionRow.BLINDS -> if (value is ArrayList<*>) {
- cgSmallBlind = (value[0] as String? ?: "0").toDouble()
- cgBigBlind = (value[1] as String? ?: "0").toDouble()
+ cgSmallBlind = try {(value[0] as String? ?: "0").toDouble()} catch (e:Exception) {null}
+ cgBigBlind = try {(value[1] as String? ?: "0").toDouble()} catch (e:Exception) {null}
}
+ //TODO: Update
SessionRow.START_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(value, null)
timeFrame = timeFrameToUpdate
}
+ //TODO: Update
SessionRow.END_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(timeFrame?.startDate ?: Date(), value)
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
index 6f6277cc..d42ae3e1 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
@@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
-import io.realm.Realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.*
@@ -42,9 +41,9 @@ open class TournamentFeature : RealmObject(), DynamicRowDelegate, DisplayableDat
return data
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) {
- SimpleRow.NAME -> this.name = value as String
+ SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
index da1b7ed0..53753df1 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
@@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
-import io.realm.Realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.*
@@ -51,9 +50,9 @@ open class TransactionType : RealmObject(), DynamicRowDelegate, DisplayableDataS
return data
}
- override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
+ override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) {
- SimpleRow.NAME -> this.name = value as String
+ SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/SessionActivity.kt
similarity index 67%
rename from app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt
rename to app/src/main/java/net/pokeranalytics/android/ui/activity/SessionActivity.kt
index 886f298e..0766a360 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/SessionActivity.kt
@@ -5,17 +5,26 @@ import android.content.Intent
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_new_session.*
import net.pokeranalytics.android.R
-import net.pokeranalytics.android.ui.fragment.SessionFragment
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
+import net.pokeranalytics.android.ui.fragment.SessionFragment
-class NewSessionActivity: PokerAnalyticsActivity() {
+class SessionActivity: PokerAnalyticsActivity() {
companion object {
- fun newInstance(context: Context, isTournament: Boolean) {
- val intent = Intent(context, NewSessionActivity::class.java)
- intent.putExtra("is_tournament", isTournament)
+ fun newInstance(context: Context, isTournament: Boolean? = false, sessionId: String? = "") {
+ val intent = Intent(context, SessionActivity::class.java)
+
+ isTournament?.let {
+ intent.putExtra("is_tournament", isTournament)
+ }
+
+ sessionId?.let {
+ intent.putExtra("session_id", sessionId)
+ }
+
context.startActivity(intent)
}
+
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -29,11 +38,10 @@ class NewSessionActivity: PokerAnalyticsActivity() {
* Init UI
*/
private fun initUI() {
-
+ val sessionId = intent.getStringExtra("session_id")
val isTournament = intent.getBooleanExtra("is_tournament", false)
val fragment = newSessionFragment as SessionFragment
fragment.setData(isTournament)
-
}
/**
@@ -41,8 +49,6 @@ class NewSessionActivity: PokerAnalyticsActivity() {
*/
private fun initData() {
-
-
}
}
\ No newline at end of file
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 c899a62f..21e6ad4d 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,6 @@ import android.view.ViewGroup
import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView
-import io.realm.Realm
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
@@ -23,7 +22,7 @@ interface DisplayableDataSource {
interface EditableDataSource {
fun getBottomSheetData(row: DynamicRowInterface): ArrayList
- fun setBottomSheetValue(value: Any, row: DynamicRowInterface)
+ fun setBottomSheetValue(value: Any?, row: DynamicRowInterface)
}
class DataListAdapter(var delegate: DisplayableDelegate, var layout: Int? = null) : RecyclerView.Adapter() {
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 0b44efdd..23fe7493 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
@@ -43,7 +43,11 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
}
override fun clickOnClear(row: DynamicRowInterface) {
- Toast.makeText(requireContext(), "Clear: $row", Toast.LENGTH_SHORT).show()
+ (this.item as EditableDataSource).setBottomSheetValue(null, row)
+ this.getRealm().executeTransaction {
+ it.copyToRealmOrUpdate(this.item)
+ }
+ dynamicListAdapter.refreshRow(row)
}
override fun setValue(value: Any, row: DynamicRowInterface) {
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
index 8003345d..517aeca3 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
@@ -10,7 +10,7 @@ import io.realm.RealmResults
import kotlinx.android.synthetic.main.fragment_history.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Session
-import net.pokeranalytics.android.ui.activity.NewSessionActivity
+import net.pokeranalytics.android.ui.activity.SessionActivity
import net.pokeranalytics.android.ui.adapter.HistoryAdapter
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.util.data.sessionDao
@@ -50,11 +50,11 @@ class HistoryFragment : PokerAnalyticsFragment() {
private fun initUI() {
newSession.setOnClickListener {
- NewSessionActivity.newInstance(requireContext(), false)
+ SessionActivity.newInstance(requireContext(), false)
}
newTournament.setOnClickListener {
- NewSessionActivity.newInstance(requireContext(), true)
+ SessionActivity.newInstance(requireContext(), true)
}
newHand.setOnClickListener {
@@ -83,6 +83,10 @@ class HistoryFragment : PokerAnalyticsFragment() {
adapter = historyAdapter
}
+ historyAdapter.onClickOnSession = {position, session ->
+ SessionActivity.newInstance(requireContext(), sessionId = session.id)
+ }
+
it.addChangeListener { newSessions ->
historyAdapter.notifyDataSetChanged()
}
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
index f2607dce..5b7809f2 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
@@ -59,19 +59,8 @@ class SessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomShee
}
override fun clickOnClear(row: DynamicRowInterface) {
- when(row) {
- SessionRow.GAME -> currentSession.game = null
- SessionRow.BANKROLL -> currentSession.bankroll = null
- SessionRow.LOCATION -> currentSession.location = null
- SessionRow.BLINDS -> {
- currentSession.cgSmallBlind = null
- currentSession.cgBigBlind = null
- }
- SessionRow.COMMENT -> currentSession.comment = ""
- SessionRow.START_DATE -> currentSession.timeFrame?.setDate(Date(), null)
- SessionRow.END_DATE -> currentSession.timeFrame?.setDate(Date(), null)
- }
- sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row))
+ currentSession.setBottomSheetValue(null, row)
+ sessionAdapter.refreshRow(row)
}
override fun setValue(value: Any, row: DynamicRowInterface) {