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