Add refresh method on DynamicListAdapter

dev_raz_wip
Aurelien Hubert 7 years ago
parent c267c56bbd
commit 42cbb7a09e
  1. 10
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt
  2. 11
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt

@ -76,4 +76,14 @@ class DynamicListAdapter(var delegate: DynamicRowDelegate, var callBackDelegate:
(holder as DynamicHolder).bind(dynamicRow, this.delegate, listener, actionListener) (holder as DynamicHolder).bind(dynamicRow, this.delegate, listener, actionListener)
} }
/**
* Refresh the row in the adapter
*/
fun refreshRow(row: DynamicRowInterface) {
val index = rows.indexOf(row)
if (index >= 0) {
notifyItemChanged(index)
}
}
} }

@ -1,7 +1,6 @@
package net.pokeranalytics.android.ui.fragment package net.pokeranalytics.android.ui.fragment
import android.os.Bundle import android.os.Bundle
import android.text.InputType
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -13,19 +12,17 @@ import kotlinx.android.synthetic.main.fragment_editable_data.*
import kotlinx.android.synthetic.main.fragment_editable_data.view.* import kotlinx.android.synthetic.main.fragment_editable_data.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.model.DataList
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate
import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import java.util.*
class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
private lateinit var item: RealmObject private lateinit var item: RealmObject
private lateinit var dataType: DataList private lateinit var dataType: DataList
private lateinit var dynamicListAdapter: DynamicListAdapter
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_editable_data, container, false) return inflater.inflate(R.layout.fragment_editable_data, container, false)
@ -52,9 +49,9 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
override fun setValue(value: Any, row: DynamicRowInterface) { override fun setValue(value: Any, row: DynamicRowInterface) {
(this.item as EditableDataSource).setBottomSheetValue(value, row) (this.item as EditableDataSource).setBottomSheetValue(value, row)
this.getRealm().executeTransaction { this.getRealm().executeTransaction {
it.copyToRealm(this.item) it.copyToRealmOrUpdate(this.item)
} }
Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() dynamicListAdapter.refreshRow(row)
} }
private fun initData() { private fun initData() {
@ -92,7 +89,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
this.item = this.dataType.updateOrCreate(realm, primaryKey) this.item = this.dataType.updateOrCreate(realm, primaryKey)
val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this) this.dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
this.recyclerView.adapter = dynamicListAdapter this.recyclerView.adapter = dynamicListAdapter
} }

Loading…
Cancel
Save