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 e71237ec..574dc576 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 @@ -2,6 +2,7 @@ package net.pokeranalytics.android.model.realm import android.content.Context import android.text.InputType +import com.google.android.material.tabs.TabLayout import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.Ignore @@ -10,6 +11,7 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.SessionInterface import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.LiveData +import net.pokeranalytics.android.model.TableSize import net.pokeranalytics.android.model.extensions.SessionState import net.pokeranalytics.android.model.extensions.getState import net.pokeranalytics.android.model.interfaces.Savable @@ -281,14 +283,14 @@ open class Session : RealmObject(), SessionInterface, Savable, return false } - override fun stringForRow(row: RowRepresentable): String { + override fun stringForRow(row: RowRepresentable, context:Context): String { return when (row) { SessionRow.BUY_IN -> buyin.toCurrency() SessionRow.BLINDS -> getBlinds() SessionRow.GAME -> getGameTitle() SessionRow.LOCATION -> location?.name ?: "--" SessionRow.BANKROLL -> bankroll?.name ?: "--" - SessionRow.TABLE_SIZE -> tableSize?.toString() ?: "--" // if (tableSize != null) TableSize(tableSize ?: 0).localizedTitle(context) else "--" + SessionRow.TABLE_SIZE -> this.tableSize?.let { TableSize(it).localizedTitle(context) } ?: "--" SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: "--" else "--" SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: "--" else "--" SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--" diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt index da324bcf..cd6f2623 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt @@ -1,5 +1,6 @@ package net.pokeranalytics.android.ui.adapter +import android.content.Context import android.os.Handler import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil @@ -64,6 +65,13 @@ interface DisplayableDataSource { return false } + /** + * Returns a localized string for a specific row + */ + fun stringForRow(row: RowRepresentable, context: Context): String { + return stringForRow(row) + } + /** * Returns a string for a specific row */ @@ -71,6 +79,7 @@ interface DisplayableDataSource { return "" } + /** * Returns an action icon identifier for a specific row */ 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 e2072145..f760d507 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 @@ -16,8 +16,6 @@ import kotlinx.android.synthetic.main.row_title_value_action.view.* import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter -import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource -import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate /** * An interface used to factor the configuration of RecyclerView.ViewHolder @@ -117,7 +115,7 @@ enum class RowViewType { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.rowHeaderTitleValue_title.text = row.localizedTitle(itemView.context) adapter.dataSource?.let { - itemView.rowHeaderTitleValue_value.text = it.stringForRow(row) + itemView.rowHeaderTitleValue_value.text = it.stringForRow(row, itemView.context) } val listener = View.OnClickListener { adapter.delegate?.onRowSelected(position, row) @@ -132,7 +130,7 @@ enum class RowViewType { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.rowTitleValue_title.text = row.localizedTitle(itemView.context) adapter.dataSource?.let { - itemView.rowTitleValue_value.text = it.stringForRow(row) + itemView.rowTitleValue_value.text = it.stringForRow(row, itemView.context) } val listener = View.OnClickListener { adapter.delegate?.onRowSelected(position, row) @@ -168,7 +166,7 @@ enum class RowViewType { itemView.rowTitleValueAction_title.text = row.localizedTitle(itemView.context) adapter.dataSource?.let { rowDelegate -> - val value = rowDelegate.stringForRow(row) + val value = rowDelegate.stringForRow(row, itemView.context) itemView.rowTitleValueAction_value.text = value itemView.rowTitleValueAction_action.visibility = if (value == "--") View.GONE else View.VISIBLE rowDelegate.actionIconForRow(row)?.let {icon ->