|
|
|
@ -3,13 +3,13 @@ package net.pokeranalytics.android.ui.view |
|
|
|
import android.view.LayoutInflater |
|
|
|
import android.view.LayoutInflater |
|
|
|
import android.view.View |
|
|
|
import android.view.View |
|
|
|
import android.view.ViewGroup |
|
|
|
import android.view.ViewGroup |
|
|
|
import androidx.core.view.isVisible |
|
|
|
|
|
|
|
import androidx.recyclerview.widget.RecyclerView |
|
|
|
import androidx.recyclerview.widget.RecyclerView |
|
|
|
import kotlinx.android.synthetic.main.row_bottom_sheet_grid_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_bottom_sheet_grid_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_bottom_sheet_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_bottom_sheet_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_header_title_amount.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_header_title_amount.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_header_title_value.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_header_title_value.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_history_session.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_history_session.view.* |
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.row_history_session_header.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_stats_title_value.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_stats_title_value.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_title.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_title_switch.view.* |
|
|
|
import kotlinx.android.synthetic.main.row_title_switch.view.* |
|
|
|
@ -27,7 +27,7 @@ interface BindableHolder { |
|
|
|
|
|
|
|
|
|
|
|
fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -37,6 +37,7 @@ enum class RowViewType { |
|
|
|
HEADER_TITLE_VALUE, |
|
|
|
HEADER_TITLE_VALUE, |
|
|
|
HEADER_TITLE_AMOUNT, |
|
|
|
HEADER_TITLE_AMOUNT, |
|
|
|
HEADER_TITLE_AMOUNT_BIG, |
|
|
|
HEADER_TITLE_AMOUNT_BIG, |
|
|
|
|
|
|
|
HEADER_SESSION, |
|
|
|
EDIT_TEXT, |
|
|
|
EDIT_TEXT, |
|
|
|
TITLE, |
|
|
|
TITLE, |
|
|
|
TITLE_VALUE, |
|
|
|
TITLE_VALUE, |
|
|
|
@ -92,7 +93,8 @@ enum class RowViewType { |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
R.layout.row_bottom_sheet_grid_title, |
|
|
|
R.layout.row_bottom_sheet_grid_title, |
|
|
|
parent, |
|
|
|
parent, |
|
|
|
false) |
|
|
|
false |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
TITLE_SWITCH -> TitleSwitchViewHolder( |
|
|
|
TITLE_SWITCH -> TitleSwitchViewHolder( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
@ -122,11 +124,21 @@ enum class RowViewType { |
|
|
|
false |
|
|
|
false |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
HEADER_SESSION -> { |
|
|
|
|
|
|
|
HeaderSessionViewHolder( |
|
|
|
|
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
|
|
|
|
R.layout.row_history_session_header, |
|
|
|
|
|
|
|
parent, |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
ROW_SESSION -> RowSessionViewHolder( |
|
|
|
ROW_SESSION -> RowSessionViewHolder( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
R.layout.row_history_session, |
|
|
|
R.layout.row_history_session, |
|
|
|
parent, |
|
|
|
parent, |
|
|
|
false) |
|
|
|
false |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
STAT -> StatsTitleValueViewHolder( |
|
|
|
STAT -> StatsTitleValueViewHolder( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
LayoutInflater.from(parent.context).inflate( |
|
|
|
@ -176,29 +188,28 @@ enum class RowViewType { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
BindableHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
itemView.rowTitle_title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.rowTitle_title.text = row.localizedTitle(itemView.context) |
|
|
|
val listener = View.OnClickListener { |
|
|
|
val listener = View.OnClickListener { |
|
|
|
adapter.delegate?.onRowSelected(position, row) |
|
|
|
adapter.delegate?.onRowSelected(position, row) |
|
|
|
} |
|
|
|
} |
|
|
|
itemView.rowTitle_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitle_container.setOnClickListener(listener) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
BindableHolder { |
|
|
|
BindableHolder { |
|
|
|
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.context) |
|
|
|
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) |
|
|
|
} |
|
|
|
} |
|
|
|
itemView.rowTitleValue_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleValue_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE |
|
|
|
itemView.rowTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -230,45 +241,45 @@ enum class RowViewType { |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleSwitchViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleSwitchViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
BindableHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
itemView.rowTitleSwitch_title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.rowTitleSwitch_title.text = row.localizedTitle(itemView.context) |
|
|
|
|
|
|
|
|
|
|
|
adapter.dataSource.let { |
|
|
|
adapter.dataSource.let { |
|
|
|
itemView.rowTitleSwitch_switch.isChecked = it.boolForRow(row) |
|
|
|
itemView.rowTitleSwitch_switch.isChecked = it.boolForRow(row) |
|
|
|
itemView.rowTitleSwitch_switch.setOnCheckedChangeListener { buttonView, isChecked -> |
|
|
|
itemView.rowTitleSwitch_switch.setOnCheckedChangeListener { buttonView, isChecked -> |
|
|
|
adapter.delegate?.onRowValueChanged(isChecked, row) |
|
|
|
adapter.delegate?.onRowValueChanged(isChecked, row) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val listener = View.OnClickListener { |
|
|
|
val listener = View.OnClickListener { |
|
|
|
itemView.rowTitleSwitch_switch.isChecked = !itemView.rowTitleSwitch_switch.isChecked |
|
|
|
itemView.rowTitleSwitch_switch.isChecked = !itemView.rowTitleSwitch_switch.isChecked |
|
|
|
} |
|
|
|
} |
|
|
|
itemView.rowTitleSwitch_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleSwitch_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleSwitch_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE |
|
|
|
itemView.rowTitleSwitch_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleValueActionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleValueActionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
BindableHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
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, itemView.context) |
|
|
|
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 -> |
|
|
|
itemView.rowTitleValueAction_action.setImageResource(icon) |
|
|
|
itemView.rowTitleValueAction_action.setImageResource(icon) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
val listener = View.OnClickListener { |
|
|
|
val listener = View.OnClickListener { |
|
|
|
adapter.delegate?.onRowSelected(position, row) |
|
|
|
adapter.delegate?.onRowSelected(position, row) |
|
|
|
} |
|
|
|
} |
|
|
|
val actionListener = View.OnClickListener { |
|
|
|
val actionListener = View.OnClickListener { |
|
|
|
adapter.delegate?.onRowSelected(position, row, true) |
|
|
|
adapter.delegate?.onRowSelected(position, row, true) |
|
|
|
} |
|
|
|
} |
|
|
|
itemView.rowTitleValueAction_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleValueAction_container.setOnClickListener(listener) |
|
|
|
itemView.rowTitleValueAction_action.setOnClickListener(actionListener) |
|
|
|
itemView.rowTitleValueAction_action.setOnClickListener(actionListener) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -293,17 +304,28 @@ enum class RowViewType { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inner class HeaderSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
|
|
|
|
BindableHolder { |
|
|
|
|
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
|
|
|
|
itemView.sessionHeaderTitle.text = row.localizedTitle(itemView.context) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class RowSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class RowSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
BindableHolder { |
|
|
|
BindableHolder { |
|
|
|
|
|
|
|
|
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TODO: Header |
|
|
|
|
|
|
|
/* |
|
|
|
if (row.displayHeader) { |
|
|
|
if (row.displayHeader) { |
|
|
|
itemView.sessionHeader.isVisible = true |
|
|
|
itemView.sessionHeader.isVisible = true |
|
|
|
itemView.sessionHeader.text = row.headerValues.firstOrNull() ?: "" |
|
|
|
itemView.sessionHeader.text = row.headerValues.firstOrNull() ?: "" |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
itemView.sessionHeader.isVisible = false |
|
|
|
itemView.sessionHeader.isVisible = false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
itemView.sessionRow.setData(row as Session) |
|
|
|
itemView.sessionRow.setData(row as Session) |
|
|
|
val listener = View.OnClickListener { |
|
|
|
val listener = View.OnClickListener { |
|
|
|
|