merge master into dev

feature/top10
Laurent 7 years ago
commit b775defd8b
  1. 2
      app/build.gradle
  2. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  4. 5
      app/src/main/java/net/pokeranalytics/android/model/utils/SessionSetManager.kt
  5. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt
  6. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  7. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt
  8. 2
      app/src/main/java/net/pokeranalytics/android/util/extensions/DateExtension.kt
  9. 4
      app/src/main/res/values/strings.xml

@ -27,7 +27,7 @@ android {
applicationId "net.pokeranalytics.android" applicationId "net.pokeranalytics.android"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 28 targetSdkVersion 28
versionCode 5 versionCode 7
versionName "1.0" versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

@ -6,8 +6,8 @@ import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import io.realm.kotlin.where import io.realm.kotlin.where
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.model.interfaces.NameManageable import net.pokeranalytics.android.model.interfaces.NameManageable
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
@ -70,7 +70,13 @@ open class Bankroll() : RealmObject(), NameManageable, StaticRowRepresentableDat
} }
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? { override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return row.editingDescriptors(mapOf("defaultValue" to this.name)) return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.name))
BankrollRow.RATE -> row.editingDescriptors(mapOf())
else -> {
row.editingDescriptors(mapOf())
}
}
} }
override fun updateValue(value: Any?, row: RowRepresentable) { override fun updateValue(value: Any?, row: RowRepresentable) {

@ -716,7 +716,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<*>) {
@ -816,7 +818,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!!

@ -24,6 +24,8 @@ import retrofit2.Call
import retrofit2.Response import retrofit2.Response
import java.util.* import java.util.*
/** /**
* Custom EditableDataFragment to manage the Bankroll data * Custom EditableDataFragment to manage the Bankroll data
*/ */
@ -44,7 +46,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
private var isRefreshingRate = false private var isRefreshingRate = false
private var lastRefreshRateCall = 0L private var lastRefreshRateCall = 0L
private val differentCurrency : Boolean private val shouldShowCurrencyRate : Boolean
get() { get() {
return bankroll.currency?.let { bankrollCurrency -> return bankroll.currency?.let { bankrollCurrency ->
bankrollCurrency.code != defaultCurrency.currencyCode bankrollCurrency.code != defaultCurrency.currencyCode
@ -67,7 +69,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
data?.let { data?.let {
val currencyCode = it.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE) val currencyCode = it.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE)
onRowValueChanged(currencyCode, BankrollRow.CURRENCY) onRowValueChanged(currencyCode, BankrollRow.CURRENCY)
if (differentCurrency) { if (shouldShowCurrencyRate) {
refreshRate() refreshRate()
} }
} }
@ -119,7 +121,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
this.bankroll.currency?.rate?.let { rate -> this.bankroll.currency?.rate?.let { rate ->
row.editingDescriptors(mapOf("defaultValue" to CurrencyUtils.getCurrencyRateFormatter().format(rate))) row.editingDescriptors(mapOf("defaultValue" to CurrencyUtils.getCurrencyRateFormatter().format(rate)))
} ?: run { } ?: run {
row.editingDescriptors(mapOf("defaultValue" to "")) row.editingDescriptors(mapOf())
} }
} }
else -> null else -> null
@ -169,7 +171,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
rows.add(BankrollRow.LIVE) rows.add(BankrollRow.LIVE)
rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.currency)) rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.currency))
rows.add(BankrollRow.CURRENCY) rows.add(BankrollRow.CURRENCY)
if (this.differentCurrency) { if (this.shouldShowCurrencyRate) {
rows.add(BankrollRow.RATE) rows.add(BankrollRow.RATE)
rows.add(BankrollRow.REFRESH_RATE) rows.add(BankrollRow.REFRESH_RATE)
} }

@ -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))
} }

@ -29,7 +29,12 @@ class BottomSheetEditTextFragment : BottomSheetFragment() {
override fun getValue(): Any? { override fun getValue(): Any? {
this.value?.let { this.value?.let {
return it.trim() val value = it.trim()
if (value.isEmpty()) { // avoid returning empty strings
return null
} else {
return value
}
} }
return null return null
} }

@ -77,7 +77,7 @@ fun Date.getDayNumber() : String {
} }
// Return the 3 first letters of the date's day // Return the 3 first letters of the date's day
fun Date.getShortDayName() : String { fun Date.getShortDayName() : String {
return SimpleDateFormat("EE", Locale.getDefault()).format(this).substring(0, 3) return SimpleDateFormat("EEE", Locale.getDefault()).format(this)
} }
// Return the month & year of the date // Return the month & year of the date
fun Date.getMonthAndYear(): String { fun Date.getMonthAndYear(): String {

@ -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