Merge branch 'master' of gitlab.com:stax-river/poker-analytics

feature/top10
Laurent 7 years ago
commit 81ffff4f03
  1. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 11
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  3. 3
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  4. 30
      app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt
  5. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  6. 1
      app/src/main/res/values/strings.xml

@ -31,6 +31,7 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresent
import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow
import net.pokeranalytics.android.util.*
import java.util.*
import java.util.Currency
import kotlin.collections.ArrayList
open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresentableDataSource, RowRepresentable,
@ -341,7 +342,9 @@ open class Session : RealmObject(), SessionInterface, Savable, StaticRowRepresen
* Return the formatted blinds
*/
fun getBlinds(): String {
return if (cgSmallBlind == null) NULL_TEXT else "${cgSmallBlind?.toCurrency()}/${cgBigBlind?.round()}"
val currencyCode = bankroll?.currency?.code ?: Currency.getInstance(Locale.getDefault()).currencyCode
val currencySymbol = Currency.getInstance(currencyCode).symbol
return if (cgSmallBlind == null) NULL_TEXT else "$currencySymbol ${cgSmallBlind?.formatted()}/${cgBigBlind?.round()}"
}
/**

@ -72,15 +72,10 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
LocationRow.LOCATE_ME -> PlacePickerManager.create(parentActivity, row, this)
else -> {
BottomSheetFragment.create(
fragmentManager,
row,
this,
(this.item as RowRepresentableDataSource).editDescriptors(row)
fragmentManager, row, this, (this.item as RowRepresentableDataSource).editDescriptors(row)
)
}
}
}
override fun clickOnAdd(row: RowRepresentable) {
@ -91,7 +86,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
this.getRealm().executeTransaction {
(this.item as Savable).updateValue(value, row)
}
when(row) {
when (row) {
LocationRow.LOCATE_ME -> rowRepresentableAdapter.notifyDataSetChanged()
else -> rowRepresentableAdapter.refreshRow(row)
}
@ -142,7 +137,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
}
} else {
val message = when(item) {
val message = when (item) {
is Bankroll -> R.string.empty_name_for_br_error
is Location -> R.string.location_empty_field_error
is Game -> R.string.location_empty_field_error

@ -96,7 +96,8 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
requireContext(),
row,
this,
currentSession.endDate ?: currentSession.startDate ?: Date()
currentSession.endDate ?: currentSession.startDate ?: Date(),
currentSession.startDate
)
SessionRow.BANKROLL -> {
BottomSheetFragment.create(fragmentManager, row, this, data, false)

@ -7,6 +7,7 @@ import android.content.DialogInterface
import android.text.format.DateFormat
import android.widget.DatePicker
import android.widget.TimePicker
import android.widget.Toast
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable
@ -17,16 +18,18 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
private var context: Context? = null
lateinit var row: RowRepresentable
lateinit var delegate: RowRepresentableDelegate
lateinit var calendar: Calendar
private lateinit var row: RowRepresentable
private lateinit var delegate: RowRepresentableDelegate
private lateinit var calendar: Calendar
private var minimumDate: Date? = null
companion object {
fun create(
context: Context,
row: RowRepresentable,
delegate: RowRepresentableDelegate,
date: Date?
date: Date?,
minimumDate: Date? = null
) : DateTimePickerManager {
val calendar = Calendar.getInstance()
@ -37,6 +40,7 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
dateTimePickerManager.row = row
dateTimePickerManager.delegate = delegate
dateTimePickerManager.calendar = calendar
dateTimePickerManager.minimumDate = minimumDate
dateTimePickerManager.showDatePicker()
@ -54,7 +58,19 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay)
calendar.set(Calendar.MINUTE, minute)
delegate.onRowValueChanged(calendar.time, row)
if (minimumDate != null) {
minimumDate?.let {
if (calendar.time < it) {
Toast.makeText(context, R.string.end_date_not_possible, Toast.LENGTH_LONG).show()
} else {
delegate.onRowValueChanged(calendar.time, row)
}
}
} else {
delegate.onRowValueChanged(calendar.time, row)
}
}
/**
@ -66,6 +82,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
val day = calendar.get(Calendar.DAY_OF_MONTH)
context?.let {
val datePickerDialog = DatePickerDialog(it, this, year, month, day)
minimumDate?.let {
datePickerDialog.datePicker.minDate = it.time
}
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ ->
delegate.onRowValueChanged(null, row)
dialog.dismiss()

@ -52,7 +52,7 @@ enum class RowViewType(private var layoutRes: Int) {
STAT(R.layout.row_stats_title_value),
// Separator
SEPARATOR(R.layout.row_separator), ;
SEPARATOR(R.layout.row_separator);
/**
* View holder

@ -20,6 +20,7 @@
<string name="address">Address</string>
<string name="data_deleted" formatted="false">%s deleted</string>
<string name="end_date_not_possible">The end date should be after the start date</string>
<!--

Loading…
Cancel
Save