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

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

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

Loading…
Cancel
Save