Add favorite session management with nearest location

feature/top10
Aurelien Hubert 7 years ago
parent 49d20f41fa
commit 22c20e7fbf
  1. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt

@ -13,6 +13,7 @@ import kotlinx.android.synthetic.main.fragment_session.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.extensions.SessionState import net.pokeranalytics.android.model.extensions.SessionState
import net.pokeranalytics.android.model.extensions.getState import net.pokeranalytics.android.model.extensions.getState
import net.pokeranalytics.android.model.realm.Location
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.utils.FavoriteSessionFinder import net.pokeranalytics.android.model.utils.FavoriteSessionFinder
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
@ -31,8 +32,10 @@ import java.util.*
class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate { class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate {
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var currentSession: Session private lateinit var currentSession: Session
private lateinit var sessionAdapter: RowRepresentableAdapter private lateinit var sessionAdapter: RowRepresentableAdapter
private var sessionMenu: Menu? = null private var sessionMenu: Menu? = null
private val oldRows: ArrayList<RowRepresentable> = ArrayList() private val oldRows: ArrayList<RowRepresentable> = ArrayList()
private val handler: Handler = Handler() private val handler: Handler = Handler()
@ -115,13 +118,13 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
*/ */
private fun initUI() { private fun initUI() {
val activity = activity as PokerAnalyticsActivity parentActivity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the title // Avoid a bug during setting the title
toolbar.title = "" toolbar.title = ""
activity.setSupportActionBar(toolbar) parentActivity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true) parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true) setHasOptionsMenu(true)
val viewManager = SmoothScrollLinearLayoutManager(requireContext()) val viewManager = SmoothScrollLinearLayoutManager(requireContext())
@ -280,9 +283,24 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
currentSession = Session.newInstance(realm, isTournament) currentSession = Session.newInstance(realm, isTournament)
FavoriteSessionFinder.copyParametersFromFavoriteSession(currentSession, null, requireContext()) FavoriteSessionFinder.copyParametersFromFavoriteSession(currentSession, null, requireContext())
realm.commitTransaction() realm.commitTransaction()
// Find the nearest location around the user
parentActivity.findNearestLocation { location ->
location?.let {
realm.beginTransaction()
val realmLocation = realm.where<Location>().equalTo("id", it.id).findFirst()
FavoriteSessionFinder.copyParametersFromFavoriteSession(currentSession, realmLocation, requireContext())
currentSession.location = realmLocation
realm.commitTransaction()
updateSessionUI()
}
}
} }
toolbar.title = if (currentSession.isTournament()) getString(R.string.tournament) else getString(R.string.cash_game)
toolbar.title =
if (currentSession.isTournament()) getString(R.string.tournament) else getString(R.string.cash_game)
sessionAdapter = RowRepresentableAdapter(currentSession, this) sessionAdapter = RowRepresentableAdapter(currentSession, this)
recyclerView.adapter = sessionAdapter recyclerView.adapter = sessionAdapter

Loading…
Cancel
Save