|
|
|
@ -8,7 +8,10 @@ import kotlinx.android.synthetic.main.row_title_value_action.view.* |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource |
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource |
|
|
|
|
|
|
|
|
|
|
|
interface DynamicHolder { |
|
|
|
/** |
|
|
|
|
|
|
|
* An interface used to factor the configuration of RecyclerView.ViewHolder |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
interface BindableHolder { |
|
|
|
|
|
|
|
|
|
|
|
fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource? = null, listener: View.OnClickListener, actionListener: View.OnClickListener? = null) {} |
|
|
|
fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource? = null, listener: View.OnClickListener, actionListener: View.OnClickListener? = null) {} |
|
|
|
|
|
|
|
|
|
|
|
@ -22,13 +25,13 @@ enum class RowViewType { |
|
|
|
TITLE_VALUE_ACTION; |
|
|
|
TITLE_VALUE_ACTION; |
|
|
|
|
|
|
|
|
|
|
|
inner class FakeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class FakeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
DynamicHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
DynamicHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.container.setOnClickListener(listener) |
|
|
|
itemView.container.setOnClickListener(listener) |
|
|
|
@ -36,7 +39,7 @@ enum class RowViewType { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
DynamicHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
|
|
|
|
|
|
|
|
@ -48,7 +51,7 @@ enum class RowViewType { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inner class TitleValueActionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
inner class TitleValueActionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), |
|
|
|
DynamicHolder { |
|
|
|
BindableHolder { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
override fun bind(row: RowRepresentable, rowRepresentableDataSource: RowRepresentableDataSource?, listener: View.OnClickListener, actionListener: View.OnClickListener?) { |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
itemView.title.text = row.localizedTitle(itemView.context) |
|
|
|
rowRepresentableDataSource?.let { rowDelegate -> |
|
|
|
rowRepresentableDataSource?.let { rowDelegate -> |
|
|
|
|