Update Session UI

feature/top10
Aurelien Hubert 7 years ago
parent 0bd207f4dd
commit 0e505de0a5
  1. 17
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/RowRepresentableAdapter.kt
  2. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  3. 11
      app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentableDiffCallback.kt

@ -6,8 +6,8 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import net.pokeranalytics.android.ui.view.BindableHolder import net.pokeranalytics.android.ui.view.BindableHolder
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.RowRepresentableDiffCallback import net.pokeranalytics.android.ui.view.RowRepresentableDiffCallback
import net.pokeranalytics.android.ui.view.RowViewType
/** /**
* An interface used to provide RowRepresentableAdapter content and value in the form of rows * An interface used to provide RowRepresentableAdapter content and value in the form of rows
@ -116,24 +116,11 @@ class RowRepresentableAdapter(
} }
} }
/**
* Refresh all adapter rows
*/
fun refreshAllRows() {
this.rows = rowRepresentableDataSource.adapterRows()
notifyDataSetChanged()
}
/** /**
* Update UI * Update UI
*/ */
fun updateRows(newRows: ArrayList<RowRepresentable>) { fun updateRows(newRows: ArrayList<RowRepresentable>) {
val diffResult = DiffUtil.calculateDiff( val diffResult = DiffUtil.calculateDiff(RowRepresentableDiffCallback(newRows, rows, rowRepresentableDataSource))
RowRepresentableDiffCallback(
newRows,
rows
)
)
this.rows = newRows this.rows = newRows
diffResult.dispatchUpdatesTo(this) diffResult.dispatchUpdatesTo(this)
} }

@ -142,7 +142,6 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
false false
} }
floatingActionButton.setExpanded(false)
floatingActionButton.setOnClickListener { floatingActionButton.setOnClickListener {
manageSessionState() manageSessionState()
} }

@ -2,10 +2,12 @@ package net.pokeranalytics.android.ui.view
import androidx.annotation.Nullable import androidx.annotation.Nullable
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource
import timber.log.Timber
class RowRepresentableDiffCallback(var newRows: List<RowRepresentable>, var oldRows: List<RowRepresentable>) : class RowRepresentableDiffCallback(
var newRows: List<RowRepresentable>, var oldRows: List<RowRepresentable>,
var rowRepresentableDataSource: RowRepresentableDataSource
) :
DiffUtil.Callback() { DiffUtil.Callback() {
override fun getOldListSize(): Int { override fun getOldListSize(): Int {
@ -21,7 +23,8 @@ class RowRepresentableDiffCallback(var newRows: List<RowRepresentable>, var oldR
} }
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
return oldRows[oldItemPosition] == newRows[newItemPosition] // Force to update all the rows that were already there
return false
} }
@Nullable @Nullable

Loading…
Cancel
Save