From 9394eb042336da614a3c5a6a27d9387cd1d0e551 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 19 Feb 2019 16:17:07 +0100 Subject: [PATCH] Update Session data management --- .../android/model/realm/Session.kt | 25 ++++++++++++++- .../android/ui/activity/NewSessionActivity.kt | 4 +-- .../android/ui/fragment/HistoryFragment.kt | 26 --------------- ...wSessionFragment.kt => SessionFragment.kt} | 32 +++++-------------- .../main/res/layout/activity_new_session.xml | 2 +- 5 files changed, 35 insertions(+), 54 deletions(-) rename app/src/main/java/net/pokeranalytics/android/ui/fragment/{NewSessionFragment.kt => SessionFragment.kt} (76%) 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 37745774..eda111d9 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 @@ -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() + } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt index 46c97c87..886f298e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/NewSessionActivity.kt @@ -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) } 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 9b6c9118..8003345d 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 @@ -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() - } - } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt similarity index 76% rename from app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt rename to app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt index e5a498c0..f2607dce 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt @@ -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() } /** diff --git a/app/src/main/res/layout/activity_new_session.xml b/app/src/main/res/layout/activity_new_session.xml index 0ffe46ae..3305e157 100644 --- a/app/src/main/res/layout/activity_new_session.xml +++ b/app/src/main/res/layout/activity_new_session.xml @@ -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" /> \ No newline at end of file