|
|
|
@ -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) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|