Update EditableDataSource interface & session details

dev_raz_wip
Aurelien Hubert 7 years ago
parent 9394eb0423
commit 9de2b7a357
  1. 2
      app/src/main/AndroidManifest.xml
  2. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  4. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  5. 16
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
  7. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
  8. 24
      app/src/main/java/net/pokeranalytics/android/ui/activity/SessionActivity.kt
  9. 3
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt
  10. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  11. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
  12. 15
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt

@ -22,7 +22,7 @@
</activity> </activity>
<activity android:name=".ui.activity.DataListActivity" /> <activity android:name=".ui.activity.DataListActivity" />
<activity <activity
android:name=".ui.activity.NewSessionActivity" android:name=".ui.activity.SessionActivity"
android:launchMode="singleTop"/> android:launchMode="singleTop"/>
<activity android:name=".ui.activity.EditableDataActivity"/> <activity android:name=".ui.activity.EditableDataActivity"/>

@ -1,7 +1,8 @@
package net.pokeranalytics.android.model.realm package net.pokeranalytics.android.model.realm
import android.text.InputType import android.text.InputType
import io.realm.* import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
@ -68,9 +69,9 @@ open class Bankroll(name: String = "") : RealmObject(), DynamicRowDelegate, Disp
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) { when (row) {
SimpleRow.NAME -> this.name = value as String SimpleRow.NAME -> this.name = value as String? ?: ""
} }
} }
} }

@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm package net.pokeranalytics.android.model.realm
import android.text.InputType import android.text.InputType
import io.realm.Realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
@ -44,9 +43,9 @@ open class Game : RealmObject(), DynamicRowDelegate, DisplayableDataSource, Edit
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) { when (row) {
SimpleRow.NAME -> this.name = value as String SimpleRow.NAME -> this.name = value as String? ?: ""
} }
} }
} }

@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm package net.pokeranalytics.android.model.realm
import android.text.InputType import android.text.InputType
import io.realm.Realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
@ -48,9 +47,9 @@ open class Location : RealmObject(), DynamicRowDelegate, DisplayableDataSource,
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) { when (row) {
SimpleRow.NAME -> this.name = value as String SimpleRow.NAME -> this.name = value as String? ?: ""
} }
} }

@ -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() realm.beginTransaction()
when(row) { when(row) {
SessionRow.GAME -> if (value is Game) game = value SessionRow.GAME -> game = value as Game?
SessionRow.BANKROLL -> if (value is Bankroll) bankroll = value SessionRow.BANKROLL -> bankroll = value as Bankroll?
SessionRow.LOCATION -> if (value is Location) location = value SessionRow.LOCATION -> location = value as Location?
SessionRow.COMMENT -> if (value is String) comment = value SessionRow.COMMENT -> comment = value as String? ?: ""
SessionRow.BLINDS -> if (value is ArrayList<*>) { SessionRow.BLINDS -> if (value is ArrayList<*>) {
cgSmallBlind = (value[0] as String? ?: "0").toDouble() cgSmallBlind = try {(value[0] as String? ?: "0").toDouble()} catch (e:Exception) {null}
cgBigBlind = (value[1] as String? ?: "0").toDouble() cgBigBlind = try {(value[1] as String? ?: "0").toDouble()} catch (e:Exception) {null}
} }
//TODO: Update
SessionRow.START_DATE -> if (value is Date) { SessionRow.START_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame() val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(value, null) timeFrameToUpdate.setDate(value, null)
timeFrame = timeFrameToUpdate timeFrame = timeFrameToUpdate
} }
//TODO: Update
SessionRow.END_DATE -> if (value is Date) { SessionRow.END_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame() val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(timeFrame?.startDate ?: Date(), value) timeFrameToUpdate.setDate(timeFrame?.startDate ?: Date(), value)

@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm package net.pokeranalytics.android.model.realm
import android.text.InputType import android.text.InputType
import io.realm.Realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
@ -42,9 +41,9 @@ open class TournamentFeature : RealmObject(), DynamicRowDelegate, DisplayableDat
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) { when (row) {
SimpleRow.NAME -> this.name = value as String SimpleRow.NAME -> this.name = value as String? ?: ""
} }
} }
} }

@ -1,7 +1,6 @@
package net.pokeranalytics.android.model.realm package net.pokeranalytics.android.model.realm
import android.text.InputType import android.text.InputType
import io.realm.Realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
@ -51,9 +50,9 @@ open class TransactionType : RealmObject(), DynamicRowDelegate, DisplayableDataS
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any?, row: DynamicRowInterface) {
when (row) { when (row) {
SimpleRow.NAME -> this.name = value as String SimpleRow.NAME -> this.name = value as String? ?: ""
} }
} }

@ -5,17 +5,26 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import kotlinx.android.synthetic.main.activity_new_session.* import kotlinx.android.synthetic.main.activity_new_session.*
import net.pokeranalytics.android.R 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.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.SessionFragment
class NewSessionActivity: PokerAnalyticsActivity() { class SessionActivity: PokerAnalyticsActivity() {
companion object { companion object {
fun newInstance(context: Context, isTournament: Boolean) { fun newInstance(context: Context, isTournament: Boolean? = false, sessionId: String? = "") {
val intent = Intent(context, NewSessionActivity::class.java) val intent = Intent(context, SessionActivity::class.java)
intent.putExtra("is_tournament", isTournament)
isTournament?.let {
intent.putExtra("is_tournament", isTournament)
}
sessionId?.let {
intent.putExtra("session_id", sessionId)
}
context.startActivity(intent) context.startActivity(intent)
} }
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -29,11 +38,10 @@ class NewSessionActivity: PokerAnalyticsActivity() {
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
val sessionId = intent.getStringExtra("session_id")
val isTournament = intent.getBooleanExtra("is_tournament", false) val isTournament = intent.getBooleanExtra("is_tournament", false)
val fragment = newSessionFragment as SessionFragment val fragment = newSessionFragment as SessionFragment
fragment.setData(isTournament) fragment.setData(isTournament)
} }
/** /**
@ -41,8 +49,6 @@ class NewSessionActivity: PokerAnalyticsActivity() {
*/ */
private fun initData() { private fun initData() {
} }
} }

@ -6,7 +6,6 @@ import android.view.ViewGroup
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import io.realm.Realm
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
@ -23,7 +22,7 @@ interface DisplayableDataSource {
interface EditableDataSource { interface EditableDataSource {
fun getBottomSheetData(row: DynamicRowInterface): ArrayList<BottomSheetData> fun getBottomSheetData(row: DynamicRowInterface): ArrayList<BottomSheetData>
fun setBottomSheetValue(value: Any, row: DynamicRowInterface) fun setBottomSheetValue(value: Any?, row: DynamicRowInterface)
} }
class DataListAdapter(var delegate: DisplayableDelegate, var layout: Int? = null) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { class DataListAdapter(var delegate: DisplayableDelegate, var layout: Int? = null) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

@ -43,7 +43,11 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
} }
override fun clickOnClear(row: DynamicRowInterface) { 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) { override fun setValue(value: Any, row: DynamicRowInterface) {

@ -10,7 +10,7 @@ import io.realm.RealmResults
import kotlinx.android.synthetic.main.fragment_history.* import kotlinx.android.synthetic.main.fragment_history.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Session 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.adapter.HistoryAdapter
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.util.data.sessionDao import net.pokeranalytics.android.util.data.sessionDao
@ -50,11 +50,11 @@ class HistoryFragment : PokerAnalyticsFragment() {
private fun initUI() { private fun initUI() {
newSession.setOnClickListener { newSession.setOnClickListener {
NewSessionActivity.newInstance(requireContext(), false) SessionActivity.newInstance(requireContext(), false)
} }
newTournament.setOnClickListener { newTournament.setOnClickListener {
NewSessionActivity.newInstance(requireContext(), true) SessionActivity.newInstance(requireContext(), true)
} }
newHand.setOnClickListener { newHand.setOnClickListener {
@ -83,6 +83,10 @@ class HistoryFragment : PokerAnalyticsFragment() {
adapter = historyAdapter adapter = historyAdapter
} }
historyAdapter.onClickOnSession = {position, session ->
SessionActivity.newInstance(requireContext(), sessionId = session.id)
}
it.addChangeListener { newSessions -> it.addChangeListener { newSessions ->
historyAdapter.notifyDataSetChanged() historyAdapter.notifyDataSetChanged()
} }

@ -59,19 +59,8 @@ class SessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomShee
} }
override fun clickOnClear(row: DynamicRowInterface) { override fun clickOnClear(row: DynamicRowInterface) {
when(row) { currentSession.setBottomSheetValue(null, row)
SessionRow.GAME -> currentSession.game = null sessionAdapter.refreshRow(row)
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))
} }
override fun setValue(value: Any, row: DynamicRowInterface) { override fun setValue(value: Any, row: DynamicRowInterface) {

Loading…
Cancel
Save