From 42cbb7a09e4b0ea794b8e0d67eb9468302ae4678 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 19 Feb 2019 15:44:26 +0100 Subject: [PATCH] Add refresh method on DynamicListAdapter --- .../ui/adapter/components/DynamicListAdapter.kt | 10 ++++++++++ .../android/ui/fragment/EditableDataFragment.kt | 11 ++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt index ee87cb0e..3978e424 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt @@ -76,4 +76,14 @@ class DynamicListAdapter(var delegate: DynamicRowDelegate, var callBackDelegate: (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) + } + } + } \ No newline at end of file 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 c1a64cfd..0b44efdd 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 @@ -1,7 +1,6 @@ package net.pokeranalytics.android.ui.fragment import android.os.Bundle -import android.text.InputType import android.view.LayoutInflater import android.view.View 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 net.pokeranalytics.android.R 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.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.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment -import java.util.* class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { private lateinit var item: RealmObject private lateinit var dataType: DataList + private lateinit var dynamicListAdapter: DynamicListAdapter override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 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) { (this.item as EditableDataSource).setBottomSheetValue(value, row) 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() { @@ -92,7 +89,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto 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 }