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) {
realm.beginTransaction()
realm.executeTransaction {
when (row) {
SessionRow.BANKROLL -> bankroll = value as Bankroll?
SessionRow.BLINDS -> if (value is ArrayList<*>) {
@ -818,7 +820,8 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
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.RealmResults
import net.pokeranalytics.android.exceptions.ModelException
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet
import kotlin.math.max
@ -28,10 +29,10 @@ class SessionSetManager {
}
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) {
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 startDate = session.startDate!!

@ -89,13 +89,21 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate {
val data = currentSession.editDescriptors(row)
when (row) {
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(),
row,
this,
currentSession.endDate ?: currentSession.startDate ?: Date(),
currentSession.startDate
)
}
}
SessionRow.BANKROLL -> {
BottomSheetFragment.create(fragmentManager, row, this, data, false, CurrencyUtils.getCurrency(currentSession.bankroll))
}

@ -2,6 +2,10 @@
<string name="app_name">Poker Analytics</string>
<!-- 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="suggestions">Suggestions</string>
<string name="data_deleted" formatted="false">%s deleted</string>

Loading…
Cancel
Save