diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt index 9612f94c..aa692789 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt +++ b/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.ViewGroup import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.LinearLayoutManager import io.realm.RealmResults import io.realm.Sort 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.RowRepresentable 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.util.getMonthAndYear import net.pokeranalytics.android.util.isSameDay @@ -45,6 +45,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource private lateinit var realmSessions: RealmResults private val sessions: ArrayList = ArrayList() private val rows: ArrayList = ArrayList() + private var newSessionCreated: Boolean = false override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_history, container, false) @@ -76,10 +77,12 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource newCashGame.setOnClickListener { SessionActivity.newInstance(requireContext(), false) + newSessionCreated = true } newTournament.setOnClickListener { SessionActivity.newInstance(requireContext(), true) + newSessionCreated = true } } @@ -90,7 +93,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource private fun initData() { realmSessions = getRealm().where().findAll().sort("timeFrame.startDate", Sort.DESCENDING) - val viewManager = LinearLayoutManager(requireContext()) + val viewManager = SmoothScrollLinearLayoutManager(requireContext()) historyAdapter = RowRepresentableAdapter(this, this) recyclerView.apply { @@ -144,6 +147,11 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource val diffResult = DiffUtil.calculateDiff(HistorySessionDiffCallback(rows, oldRows)) historyAdapter.updateRows(diffResult) + + if (newSessionCreated) { + newSessionCreated = false + recyclerView.smoothScrollToPosition(0) + } } }