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