Update UI for new session management

feature/top10
Aurelien Hubert 7 years ago
parent f68832fc7c
commit fae4843104
  1. 12
      app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt

@ -5,7 +5,6 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.RealmResults import io.realm.RealmResults
import io.realm.Sort import io.realm.Sort
import io.realm.kotlin.where import io.realm.kotlin.where
@ -23,6 +22,7 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.HistorySessionDiffCallback import net.pokeranalytics.android.ui.view.HistorySessionDiffCallback
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.RowViewType
import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager
import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable
import net.pokeranalytics.android.util.getMonthAndYear import net.pokeranalytics.android.util.getMonthAndYear
import net.pokeranalytics.android.util.isSameDay import net.pokeranalytics.android.util.isSameDay
@ -45,6 +45,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource
private lateinit var realmSessions: RealmResults<Session> private lateinit var realmSessions: RealmResults<Session>
private val sessions: ArrayList<Session> = ArrayList() private val sessions: ArrayList<Session> = ArrayList()
private val rows: ArrayList<RowRepresentable> = ArrayList() private val rows: ArrayList<RowRepresentable> = ArrayList()
private var newSessionCreated: Boolean = false
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_history, container, false) return inflater.inflate(R.layout.fragment_history, container, false)
@ -76,10 +77,12 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource
newCashGame.setOnClickListener { newCashGame.setOnClickListener {
SessionActivity.newInstance(requireContext(), false) SessionActivity.newInstance(requireContext(), false)
newSessionCreated = true
} }
newTournament.setOnClickListener { newTournament.setOnClickListener {
SessionActivity.newInstance(requireContext(), true) SessionActivity.newInstance(requireContext(), true)
newSessionCreated = true
} }
} }
@ -90,7 +93,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource
private fun initData() { private fun initData() {
realmSessions = getRealm().where<Session>().findAll().sort("timeFrame.startDate", Sort.DESCENDING) realmSessions = getRealm().where<Session>().findAll().sort("timeFrame.startDate", Sort.DESCENDING)
val viewManager = LinearLayoutManager(requireContext()) val viewManager = SmoothScrollLinearLayoutManager(requireContext())
historyAdapter = RowRepresentableAdapter(this, this) historyAdapter = RowRepresentableAdapter(this, this)
recyclerView.apply { recyclerView.apply {
@ -144,6 +147,11 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource
val diffResult = DiffUtil.calculateDiff(HistorySessionDiffCallback(rows, oldRows)) val diffResult = DiffUtil.calculateDiff(HistorySessionDiffCallback(rows, oldRows))
historyAdapter.updateRows(diffResult) historyAdapter.updateRows(diffResult)
if (newSessionCreated) {
newSessionCreated = false
recyclerView.smoothScrollToPosition(0)
}
} }
} }

Loading…
Cancel
Save