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
}
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 kotlinx.android.synthetic.main.activity_new_session.*
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
class NewSessionActivity: PokerAnalyticsActivity() {
@ -31,7 +31,7 @@ class NewSessionActivity: PokerAnalyticsActivity() {
private fun initUI() {
val isTournament = intent.getBooleanExtra("is_tournament", false)
val fragment = newSessionFragment as NewSessionFragment
val fragment = newSessionFragment as SessionFragment
fragment.setData(isTournament)
}

@ -6,20 +6,14 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
import io.realm.RealmResults
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.model.realm.Session
import net.pokeranalytics.android.ui.activity.NewSessionActivity
import net.pokeranalytics.android.ui.adapter.HistoryAdapter
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.util.data.sessionDao
import java.util.*
class HistoryFragment : PokerAnalyticsFragment() {
@ -92,26 +86,6 @@ class HistoryFragment : PokerAnalyticsFragment() {
it.addChangeListener { newSessions ->
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 net.pokeranalytics.android.R
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.components.PokerAnalyticsActivity
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 java.util.*
class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
class SessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
private lateinit var currentSession: Session
private lateinit var sessionAdapter : DynamicListAdapter
@ -75,31 +75,15 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS
}
override fun setValue(value: Any, row: DynamicRowInterface) {
when(row) {
SessionRow.GAME -> if (value is Game) currentSession.game = value
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))
currentSession.setBottomSheetValue(value, row)
sessionAdapter.refreshRow(row)
}
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:layout_width="match_parent"
android:layout_height="match_parent"
android:name="net.pokeranalytics.android.ui.fragment.NewSessionFragment" />
android:name="net.pokeranalytics.android.ui.fragment.SessionFragment" />
</LinearLayout>
Loading…
Cancel
Save