diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt index cd6f2623..5295065a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt @@ -1,15 +1,12 @@ package net.pokeranalytics.android.ui.adapter import android.content.Context -import android.os.Handler import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.RecyclerView -import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.ui.view.BindableHolder -import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowRepresentable +import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowViewType interface RowRepresentableDataSource : DisplayableDataSource { @@ -130,13 +127,16 @@ class RowRepresentableAdapter( * Refresh the row in the adapter */ fun refreshRow(row: RowRepresentable) { + + if (row.viewType == RowViewType.TITLE_SWITCH.ordinal) { + // Avoid to refresh the view because it will refresh itself + // Caution if we want to update the title for example + return + } + val index = this.dataSource.indexForRow(row) if (index >= 0) { - val handler = Handler() - - handler.post { - notifyItemChanged(index) - } + notifyItemChanged(index) } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 4015aa47..c629d020 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -18,7 +18,6 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment -import net.pokeranalytics.android.ui.view.BankrollRow import net.pokeranalytics.android.ui.view.RowRepresentable import timber.log.Timber 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 1f933dc3..d389953a 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 @@ -128,19 +128,20 @@ enum class RowViewType { BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.rowTitleSwitch_title.text = row.localizedTitle(itemView.context) + adapter.dataSource.let { itemView.rowTitleSwitch_switch.isChecked = it.boolForRow(row) - itemView.rowTitleSwitch_switch.setOnCheckedChangeListener { _, b -> - adapter.delegate?.onRowValueChanged(b, row) - } + itemView.rowTitleSwitch_switch.setOnCheckedChangeListener { buttonView, isChecked -> + adapter.delegate?.onRowValueChanged(isChecked, row) + } } val listener = View.OnClickListener { itemView.rowTitleSwitch_switch.isChecked = !itemView.rowTitleSwitch_switch.isChecked - adapter.delegate?.onRowValueChanged(itemView.rowTitleSwitch_switch.isChecked, row) } itemView.rowTitleSwitch_container.setOnClickListener(listener) itemView.rowTitleSwitch_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE + } }