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 net.pokeranalytics.android.ui.view.BindableHolder
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.RowViewType
/**
* 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
*/
fun updateRows(newRows: ArrayList<RowRepresentable>) {
val diffResult = DiffUtil.calculateDiff(
RowRepresentableDiffCallback(
newRows,
rows
)
)
val diffResult = DiffUtil.calculateDiff(RowRepresentableDiffCallback(newRows, rows, rowRepresentableDataSource))
this.rows = newRows
diffResult.dispatchUpdatesTo(this)
}

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

@ -2,10 +2,12 @@ package net.pokeranalytics.android.ui.view
import androidx.annotation.Nullable
import androidx.recyclerview.widget.DiffUtil
import net.pokeranalytics.android.ui.view.RowRepresentable
import timber.log.Timber
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource
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() {
override fun getOldListSize(): Int {
@ -21,7 +23,8 @@ class RowRepresentableDiffCallback(var newRows: List<RowRepresentable>, var oldR
}
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

Loading…
Cancel
Save