Add delete empty session behavior when back pressed

feature/top10
Aurelien Hubert 7 years ago
parent 4950dc51d4
commit e66b3e8cd4
  1. 27
      app/src/main/java/net/pokeranalytics/android/ui/activity/SessionActivity.kt
  2. 14
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  3. 2
      app/src/main/res/layout/activity_session.xml

@ -3,6 +3,7 @@ package net.pokeranalytics.android.ui.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import kotlinx.android.synthetic.main.activity_session.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
@ -18,15 +19,12 @@ class SessionActivity: PokerAnalyticsActivity() {
companion object {
fun newInstance(context: Context, isTournament: Boolean? = false, sessionId: String? = "") {
val intent = Intent(context, SessionActivity::class.java)
isTournament?.let {
intent.putExtra(IntentKey.IS_TOURNAMENT.keyName, isTournament)
}
sessionId?.let {
intent.putExtra(IntentKey.SESSION_ID.keyName, sessionId)
}
context.startActivity(intent)
}
@ -39,21 +37,28 @@ class SessionActivity: PokerAnalyticsActivity() {
initUI()
}
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
item?.let {
if (it.itemId == android.R.id.home) {
onBackPressed()
}
}
return super.onOptionsItemSelected(item)
}
override fun onBackPressed() {
super.onBackPressed()
(sessionFragment as SessionFragment).onBackPressed()
}
/**
* Init UI
*/
private fun initUI() {
val sessionId = intent.getStringExtra(IntentKey.SESSION_ID.keyName)
val isTournament = intent.getBooleanExtra(IntentKey.IS_TOURNAMENT.keyName, false)
val fragment = newSessionFragment as SessionFragment
val fragment = sessionFragment as SessionFragment
fragment.setData(isTournament, sessionId)
}
/**
* Init data
*/
private fun initData() {
}
}

@ -38,6 +38,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
private var sessionMenu: Menu? = null
private val oldRows: ArrayList<RowRepresentable> = ArrayList()
private var sessionHasBeenCustomized = false
private val handler: Handler = Handler()
private val refreshTimer: Runnable = object : Runnable {
override fun run() {
@ -105,6 +106,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
}
override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
sessionHasBeenCustomized = true
currentSession.updateValue(value, row)
sessionAdapter.refreshRow(row)
when (row) {
@ -134,6 +136,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
}
floatingActionButton.setOnClickListener {
sessionHasBeenCustomized = true
manageSessionState()
}
}
@ -278,6 +281,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
val sessionRealm = realm.where<Session>().equalTo("id", sessionId).findFirst()
if (sessionRealm != null) {
currentSession = sessionRealm
sessionHasBeenCustomized = true
} else {
realm.beginTransaction()
currentSession = Session.newInstance(realm, isTournament)
@ -296,6 +300,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
updateSessionUI()
}
}
sessionHasBeenCustomized = false
}
@ -308,4 +313,13 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
updateSessionUI()
}
/**
* Called when the user pressed back on the parent activity
*/
fun onBackPressed() {
if (!sessionHasBeenCustomized) {
currentSession.delete()
}
}
}

@ -6,7 +6,7 @@
android:orientation="vertical">
<fragment
android:id="@+id/newSessionFragment"
android:id="@+id/sessionFragment"
android:name="net.pokeranalytics.android.ui.fragment.SessionFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"

Loading…
Cancel
Save