diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt new file mode 100644 index 00000000..d9b2fa5b --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt @@ -0,0 +1,61 @@ +package net.pokeranalytics.android.ui.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import io.realm.RealmResults +import kotlinx.android.synthetic.main.row_history_session.view.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.ui.view.SessionRowView +import timber.log.Timber + +class SettingsAdapter(private var sessions: RealmResults) : RecyclerView.Adapter() { + + companion object { + const val ROW_SESSION: Int = 100 + const val ROW_TOURNAMENT: Int = 101 + const val ROW_HAND: Int = 102 + const val ROW_TRANSACTION: Int = 103 + } + + var onClickOnSession: ((position: Int, session: Session) -> Unit)? = null + + inner class RowSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + + fun bind(session: Session?) { + Timber.d("Bind session") + + session?.let { + itemView.sessionRow.setData(session) + itemView.sessionRow.setOnClickListener { + onClickOnSession?.invoke(adapterPosition, session) + } + } + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + when (viewType) { + ROW_SESSION -> return RowSessionViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.row_history_session, parent, false)) + else -> throw IllegalStateException("Need to implement type $viewType in HistoryAdapter") + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (getItemViewType(position)) { + ROW_SESSION -> (holder as SettingsAdapter.RowSessionViewHolder).bind(sessions.get(position)) + } + } + + override fun getItemCount(): Int { + return sessions.size + } + + override fun getItemViewType(position: Int): Int { + return ROW_SESSION + } + + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt new file mode 100644 index 00000000..39094a1c --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt @@ -0,0 +1,58 @@ +package net.pokeranalytics.android.ui.view + +import android.widget.FrameLayout +import android.content.Context +import android.graphics.Color +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import kotlinx.android.synthetic.main.row_session.view.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.Session +import timber.log.Timber + + +class DataRowView : FrameLayout { + + private lateinit var rowHistorySession: ConstraintLayout + + /** + * Constructors + */ + constructor(context: Context) : super(context) { + init() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { + init() + } + + /** + * Init + * + * @param attrs + */ + private fun init() { + val layoutInflater = LayoutInflater.from(context) + rowHistorySession = layoutInflater.inflate(R.layout.row_session, this, false) as ConstraintLayout + val layoutParams = FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.WRAP_CONTENT + ) + + addView(rowHistorySession, layoutParams) + } + + /** + * Set the session data to the view + */ + fun setData(session: Session) { + Timber.d("Set data: ${session.creationDate}") + rowHistorySession.date.text = session.creationDate.toString() + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/row_data_cell.xml b/app/src/main/res/layout/row_data_cell.xml new file mode 100644 index 00000000..c4c27304 --- /dev/null +++ b/app/src/main/res/layout/row_data_cell.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_data_content_view.xml b/app/src/main/res/layout/row_data_content_view.xml new file mode 100644 index 00000000..857f9989 --- /dev/null +++ b/app/src/main/res/layout/row_data_content_view.xml @@ -0,0 +1,25 @@ + + + + + + \ No newline at end of file