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 b8a6446a..e663979e 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 @@ -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()}" } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 8642d0f1..7ccfca7a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -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 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt index 94278d6d..1049ea36 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt @@ -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) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt b/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt index 2cd5b074..f4935267 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/helpers/DateTimePickerManager.kt @@ -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() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index 1ed2042a..e56829b7 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -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 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e67dfb28..85e32774 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,6 +20,7 @@ Address %s deleted + The end date should be after the start date