fix issue with localized tablesize

feature/top10
Razmig Sarkissian 7 years ago
parent 8adfb98199
commit c8280700bf
  1. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 9
      app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt
  3. 8
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt

@ -2,6 +2,7 @@ package net.pokeranalytics.android.model.realm
import android.content.Context import android.content.Context
import android.text.InputType import android.text.InputType
import com.google.android.material.tabs.TabLayout
import io.realm.RealmList import io.realm.RealmList
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.Ignore import io.realm.annotations.Ignore
@ -10,6 +11,7 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.SessionInterface import net.pokeranalytics.android.calculus.SessionInterface
import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.Limit
import net.pokeranalytics.android.model.LiveData 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.SessionState
import net.pokeranalytics.android.model.extensions.getState import net.pokeranalytics.android.model.extensions.getState
import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.model.interfaces.Savable
@ -281,14 +283,14 @@ open class Session : RealmObject(), SessionInterface, Savable,
return false return false
} }
override fun stringForRow(row: RowRepresentable): String { override fun stringForRow(row: RowRepresentable, context:Context): String {
return when (row) { return when (row) {
SessionRow.BUY_IN -> buyin.toCurrency() SessionRow.BUY_IN -> buyin.toCurrency()
SessionRow.BLINDS -> getBlinds() SessionRow.BLINDS -> getBlinds()
SessionRow.GAME -> getGameTitle() SessionRow.GAME -> getGameTitle()
SessionRow.LOCATION -> location?.name ?: "--" SessionRow.LOCATION -> location?.name ?: "--"
SessionRow.BANKROLL -> bankroll?.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.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: "--" else "--"
SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: "--" else "--" SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: "--" else "--"
SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--" SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--"

@ -1,5 +1,6 @@
package net.pokeranalytics.android.ui.adapter package net.pokeranalytics.android.ui.adapter
import android.content.Context
import android.os.Handler import android.os.Handler
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
@ -64,6 +65,13 @@ interface DisplayableDataSource {
return false 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 * Returns a string for a specific row
*/ */
@ -71,6 +79,7 @@ interface DisplayableDataSource {
return "" return ""
} }
/** /**
* Returns an action icon identifier for a specific row * Returns an action icon identifier for a specific row
*/ */

@ -16,8 +16,6 @@ import kotlinx.android.synthetic.main.row_title_value_action.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter 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 * 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) { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) {
itemView.rowHeaderTitleValue_title.text = row.localizedTitle(itemView.context) itemView.rowHeaderTitleValue_title.text = row.localizedTitle(itemView.context)
adapter.dataSource?.let { adapter.dataSource?.let {
itemView.rowHeaderTitleValue_value.text = it.stringForRow(row) itemView.rowHeaderTitleValue_value.text = it.stringForRow(row, itemView.context)
} }
val listener = View.OnClickListener { val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row) adapter.delegate?.onRowSelected(position, row)
@ -132,7 +130,7 @@ enum class RowViewType {
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) {
itemView.rowTitleValue_title.text = row.localizedTitle(itemView.context) itemView.rowTitleValue_title.text = row.localizedTitle(itemView.context)
adapter.dataSource?.let { adapter.dataSource?.let {
itemView.rowTitleValue_value.text = it.stringForRow(row) itemView.rowTitleValue_value.text = it.stringForRow(row, itemView.context)
} }
val listener = View.OnClickListener { val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row) adapter.delegate?.onRowSelected(position, row)
@ -168,7 +166,7 @@ enum class RowViewType {
itemView.rowTitleValueAction_title.text = row.localizedTitle(itemView.context) itemView.rowTitleValueAction_title.text = row.localizedTitle(itemView.context)
adapter.dataSource?.let { rowDelegate -> adapter.dataSource?.let { rowDelegate ->
val value = rowDelegate.stringForRow(row) val value = rowDelegate.stringForRow(row, itemView.context)
itemView.rowTitleValueAction_value.text = value itemView.rowTitleValueAction_value.text = value
itemView.rowTitleValueAction_action.visibility = if (value == "--") View.GONE else View.VISIBLE itemView.rowTitleValueAction_action.visibility = if (value == "--") View.GONE else View.VISIBLE
rowDelegate.actionIconForRow(row)?.let {icon -> rowDelegate.actionIconForRow(row)?.let {icon ->

Loading…
Cancel
Save