From 6bba7b510d471965692a3104444c032150f8eb8c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:22:05 +0100 Subject: [PATCH] Fix switch management for classic row --- .../android/ui/view/RowViewType.kt | 22 ++++++++++++++----- app/src/main/res/layout/row_title_switch.xml | 16 +++++++------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index 8c8b909f..71a51568 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView +import androidx.appcompat.widget.SwitchCompat import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.row_history_session.view.* @@ -15,6 +16,7 @@ import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable +import timber.log.Timber /** * An interface used to factor the configuration of RecyclerView.ViewHolder @@ -64,9 +66,7 @@ enum class RowViewType(private var layoutRes: Int) { return when (this) { // Header Row View Holder - HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG -> { - HeaderViewHolder(layout) - } + HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG -> HeaderViewHolder(layout) // Row View Holder TITLE, TITLE_VALUE, TITLE_ARROW, TITLE_GRID, TITLE_SWITCH, DATA, BOTTOM_SHEET_DATA -> RowViewHolder(layout) @@ -141,9 +141,22 @@ enum class RowViewType(private var layoutRes: Int) { it.text = adapter.dataSource.stringForRow(row, itemView.context) } + // Switch + itemView.findViewById(R.id.switchView)?.let { + it.isChecked = adapter.dataSource.boolForRow(row) + it.setOnCheckedChangeListener { _, isChecked -> + Timber.d("Manage switch: $isChecked") + adapter.delegate?.onRowValueChanged(isChecked, row) + } + } + // Listener val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) + itemView.findViewById(R.id.switchView)?.let { + it.isChecked = !it.isChecked + } ?: run { + adapter.delegate?.onRowSelected(position, row) + } } itemView.findViewById(R.id.container)?.let { @@ -216,7 +229,6 @@ enum class RowViewType(private var layoutRes: Int) { } } - /** * Display a separator */ diff --git a/app/src/main/res/layout/row_title_switch.xml b/app/src/main/res/layout/row_title_switch.xml index c22b36aa..96292579 100644 --- a/app/src/main/res/layout/row_title_switch.xml +++ b/app/src/main/res/layout/row_title_switch.xml @@ -22,6 +22,14 @@ app:layout_constraintVertical_bias="0.0" tools:text="Data Type Title" /> + + - - \ No newline at end of file