Update Session data management

dev_raz_wip
Aurelien Hubert 7 years ago
parent 42cbb7a09e
commit 9394eb0423
  1. 25
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 4
      app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt
  3. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
  4. 32
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  5. 2
      app/src/main/res/layout/activity_new_session.xml

@ -190,8 +190,31 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa
return data return data
} }
override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) { override fun setBottomSheetValue(value: Any, row: DynamicRowInterface) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates. 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.BLINDS -> if (value is ArrayList<*>) {
cgSmallBlind = (value[0] as String? ?: "0").toDouble()
cgBigBlind = (value[1] as String? ?: "0").toDouble()
}
SessionRow.START_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(value, null)
timeFrame = timeFrameToUpdate
}
SessionRow.END_DATE -> if (value is Date) {
val timeFrameToUpdate = timeFrame ?: TimeFrame()
timeFrameToUpdate.setDate(timeFrame?.startDate ?: Date(), value)
timeFrame = timeFrameToUpdate
}
}
realm.commitTransaction()
} }
} }

@ -5,7 +5,7 @@ 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.NewSessionFragment import net.pokeranalytics.android.ui.fragment.SessionFragment
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
class NewSessionActivity: PokerAnalyticsActivity() { class NewSessionActivity: PokerAnalyticsActivity() {
@ -31,7 +31,7 @@ class NewSessionActivity: PokerAnalyticsActivity() {
private fun initUI() { private fun initUI() {
val isTournament = intent.getBooleanExtra("is_tournament", false) val isTournament = intent.getBooleanExtra("is_tournament", false)
val fragment = newSessionFragment as NewSessionFragment val fragment = newSessionFragment as SessionFragment
fragment.setData(isTournament) fragment.setData(isTournament)
} }

@ -6,20 +6,14 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
import io.realm.RealmResults import io.realm.RealmResults
import kotlinx.android.synthetic.main.fragment_history.* import kotlinx.android.synthetic.main.fragment_history.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
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.NewSessionActivity
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
import java.util.*
class HistoryFragment : PokerAnalyticsFragment() { class HistoryFragment : PokerAnalyticsFragment() {
@ -92,26 +86,6 @@ class HistoryFragment : PokerAnalyticsFragment() {
it.addChangeListener { newSessions -> it.addChangeListener { newSessions ->
historyAdapter.notifyDataSetChanged() historyAdapter.notifyDataSetChanged()
} }
}
GlobalScope.launch(Dispatchers.Main) {
delay(2000)
realmSessions?.first()?.let {
val realm = Realm.getDefaultInstance()
val mySession = realm.copyFromRealm(it)
mySession.creationDate = Date()
realm.beginTransaction()
realm.copyToRealmOrUpdate(mySession)
realm.commitTransaction()
realm.close()
}
} }
} }

@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_new_session.* import kotlinx.android.synthetic.main.fragment_new_session.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.model.DataList
import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter
@ -22,7 +22,7 @@ import net.pokeranalytics.android.ui.fragment.components.DateTimePickerManager
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import java.util.* import java.util.*
class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { class SessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
private lateinit var currentSession: Session private lateinit var currentSession: Session
private lateinit var sessionAdapter : DynamicListAdapter private lateinit var sessionAdapter : DynamicListAdapter
@ -75,31 +75,15 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS
} }
override fun setValue(value: Any, row: DynamicRowInterface) { override fun setValue(value: Any, row: DynamicRowInterface) {
when(row) { currentSession.setBottomSheetValue(value, row)
SessionRow.GAME -> if (value is Game) currentSession.game = value sessionAdapter.refreshRow(row)
SessionRow.BANKROLL -> if (value is Bankroll) currentSession.bankroll = value
SessionRow.LOCATION -> if (value is Location) currentSession.location = value
SessionRow.COMMENT -> if (value is String) currentSession.comment = value
SessionRow.BLINDS -> if (value is ArrayList<*>) {
currentSession.cgSmallBlind = (value[0] as String? ?: "0").toDouble()
currentSession.cgBigBlind = (value[1] as String? ?: "0").toDouble()
}
SessionRow.START_DATE -> if (value is Date) {
val timeFrame = currentSession.timeFrame ?: TimeFrame()
timeFrame.setDate(value, null)
currentSession.timeFrame = timeFrame
}
SessionRow.END_DATE -> if (value is Date) {
val timeFrame = currentSession.timeFrame ?: TimeFrame()
timeFrame.setDate(timeFrame.startDate, value)
currentSession.timeFrame = timeFrame
}
}
sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row))
} }
private fun initData() { private fun initData() {
currentSession = Session() val realm = getRealm()
realm.beginTransaction()
currentSession = realm.createObject(Session::class.java, UUID.randomUUID().toString())
realm.commitTransaction()
} }
/** /**

@ -8,6 +8,6 @@
android:id="@+id/newSessionFragment" android:id="@+id/newSessionFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:name="net.pokeranalytics.android.ui.fragment.NewSessionFragment" /> android:name="net.pokeranalytics.android.ui.fragment.SessionFragment" />
</LinearLayout> </LinearLayout>
Loading…
Cancel
Save