parent
658792e93a
commit
d24ae60dd5
@ -0,0 +1,63 @@ |
|||||||
|
package net.pokeranalytics.android.ui.modules.handhistory.views |
||||||
|
|
||||||
|
import android.view.ViewGroup |
||||||
|
import androidx.recyclerview.widget.RecyclerView |
||||||
|
import net.pokeranalytics.android.model.handhistory.Position |
||||||
|
import net.pokeranalytics.android.ui.adapter.BindableHolder |
||||||
|
import net.pokeranalytics.android.ui.adapter.RecyclerAdapter |
||||||
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource |
||||||
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
import timber.log.Timber |
||||||
|
|
||||||
|
class PositionAdapter(var keyboardListener: KeyboardListener) : |
||||||
|
RecyclerView.Adapter<RecyclerView.ViewHolder>(), |
||||||
|
RowRepresentableDataSource, RowRepresentableDelegate, RecyclerAdapter { |
||||||
|
|
||||||
|
override var dataSource: RowRepresentableDataSource = this |
||||||
|
override var delegate: RowRepresentableDelegate? = this |
||||||
|
|
||||||
|
var positions: List<Position> = listOf() |
||||||
|
set(value) { |
||||||
|
field = value |
||||||
|
Timber.d("Setting positions = $value") |
||||||
|
notifyDataSetChanged() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { |
||||||
|
return RowViewType.values()[viewType].viewHolder(parent) |
||||||
|
} |
||||||
|
|
||||||
|
override fun getItemCount(): Int { |
||||||
|
return this.positions.size |
||||||
|
} |
||||||
|
|
||||||
|
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { |
||||||
|
this.rowRepresentableForPosition(position)?.let { |
||||||
|
(holder as BindableHolder).onBind(position, it, this) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override fun adapterRows(): List<RowRepresentable>? { |
||||||
|
return this.positions |
||||||
|
} |
||||||
|
|
||||||
|
override fun rowRepresentableForPosition(position: Int): RowRepresentable? { |
||||||
|
return this.positions[position] |
||||||
|
} |
||||||
|
|
||||||
|
override fun numberOfRows(): Int { |
||||||
|
return this.positions.size |
||||||
|
} |
||||||
|
|
||||||
|
override fun viewTypeForPosition(position: Int): Int { |
||||||
|
return RowViewType.TITLE_GRID.ordinal |
||||||
|
} |
||||||
|
|
||||||
|
override fun onRowSelected(position: Int, row: RowRepresentable, tag: Int) { |
||||||
|
Timber.d("/////onRowSelected") |
||||||
|
keyboardListener.positionSelected(this.positions[position]) |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue