Improve Switch row

feature/top10
Aurelien Hubert 7 years ago
parent 6a4adbb061
commit dc15b402c4
  1. 18
      app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt
  2. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  3. 9
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.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)
}
}

@ -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

@ -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
}
}

Loading…
Cancel
Save