Fixing crash when setting an end date before a start date

feature/top10
Laurent 7 years ago
parent b93dd5f9d1
commit b7bc885157
  1. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 5
      app/src/main/java/net/pokeranalytics/android/model/utils/SessionSetManager.kt
  3. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  4. 4
      app/src/main/res/values/strings.xml

@ -718,7 +718,9 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
} }
override fun updateValue(value: Any?, row: RowRepresentable) { override fun updateValue(value: Any?, row: RowRepresentable) {
realm.beginTransaction()
realm.executeTransaction {
when (row) { when (row) {
SessionRow.BANKROLL -> bankroll = value as Bankroll? SessionRow.BANKROLL -> bankroll = value as Bankroll?
SessionRow.BLINDS -> if (value is ArrayList<*>) { SessionRow.BLINDS -> if (value is ArrayList<*>) {
@ -818,7 +820,8 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
tournamentFeatures.addAll((it as ArrayList<TournamentFeature>)) tournamentFeatures.addAll((it as ArrayList<TournamentFeature>))
} }
} }
realm.commitTransaction() }
} }
} }

@ -2,6 +2,7 @@ package net.pokeranalytics.android.model.utils
import io.realm.RealmQuery import io.realm.RealmQuery
import io.realm.RealmResults import io.realm.RealmResults
import net.pokeranalytics.android.exceptions.ModelException
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet import net.pokeranalytics.android.model.realm.SessionSet
import kotlin.math.max import kotlin.math.max
@ -28,10 +29,10 @@ class SessionSetManager {
} }
if (session.startDate == null) { if (session.startDate == null) {
throw IllegalStateException("Start date should never be null here") throw ModelException("Start date should never be null here")
} }
if (session.endDate == null) { if (session.endDate == null) {
throw IllegalStateException("End date should never be null here") throw ModelException("End date should never be null here")
} }
val endDate = session.endDate!! // tested above val endDate = session.endDate!! // tested above
val startDate = session.startDate!! val startDate = session.startDate!!

@ -89,13 +89,21 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate {
val data = currentSession.editDescriptors(row) val data = currentSession.editDescriptors(row)
when (row) { when (row) {
SessionRow.START_DATE -> DateTimePickerManager.create(requireContext(),row,this,currentSession.startDate) SessionRow.START_DATE -> DateTimePickerManager.create(requireContext(),row,this,currentSession.startDate)
SessionRow.END_DATE -> DateTimePickerManager.create( SessionRow.END_DATE -> {
if (this.currentSession.startDate == null) {
Toast.makeText(context, R.string.session_missing_start_date, Toast.LENGTH_SHORT).show()
} else {
DateTimePickerManager.create(
requireContext(), requireContext(),
row, row,
this, this,
currentSession.endDate ?: currentSession.startDate ?: Date(), currentSession.endDate ?: currentSession.startDate ?: Date(),
currentSession.startDate currentSession.startDate
) )
}
}
SessionRow.BANKROLL -> { SessionRow.BANKROLL -> {
BottomSheetFragment.create(fragmentManager, row, this, data, false, CurrencyUtils.getCurrency(currentSession.bankroll)) BottomSheetFragment.create(fragmentManager, row, this, data, false, CurrencyUtils.getCurrency(currentSession.bankroll))
} }

@ -2,6 +2,10 @@
<string name="app_name">Poker Analytics</string> <string name="app_name">Poker Analytics</string>
<!-- Not translated --> <!-- Not translated -->
<string name="session_missing_start_date">Please set a start date for the session</string>
<!--<string name="session_missing_end_date">Please set the end date for the session</string>-->
<!--<string name="default_error_message">Sorry, something went wrong...please contact us!</string>-->
<string name="address">Address</string> <string name="address">Address</string>
<string name="suggestions">Suggestions</string> <string name="suggestions">Suggestions</string>
<string name="data_deleted" formatted="false">%s deleted</string> <string name="data_deleted" formatted="false">%s deleted</string>

Loading…
Cancel
Save