Improve Bankroll management

dev
Aurelien Hubert 7 years ago
parent 06630b82fc
commit 7a9f5a8364
  1. 43
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDetailsFragment.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollEditDataFragment.kt
  3. 46
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt

@ -1,5 +1,7 @@
package net.pokeranalytics.android.ui.fragment
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.os.Bundle
import android.view.*
import androidx.recyclerview.widget.LinearLayoutManager
@ -10,6 +12,7 @@ import net.pokeranalytics.android.calculus.ComputedStat
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.calculus.bankroll.BankrollReport
import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
@ -19,7 +22,6 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable
import timber.log.Timber
class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
@ -56,6 +58,18 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
initData()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_EDIT && resultCode == RESULT_OK) {
if (data != null && data.getBooleanExtra(DataListActivity.IntentKey.ITEM_DELETED.keyName, false)) {
activity?.setResult(RESULT_OK, data)
activity?.finish()
} else {
updateMenuUI()
}
}
}
override fun adapterRows(): List<RowRepresentable>? {
return rows
}
@ -107,21 +121,13 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
parentActivity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the title
toolbar.title = ""
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
Timber.d("bankrollReport: ${bankrollReport.setup.bankroll} ${bankrollReport.setup.virtualBankroll}")
if (bankrollReport.setup.virtualBankroll) {
toolbar.title = getString(R.string.total)
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = false
} else {
toolbar.title = bankrollReport.setup.bankroll?.name
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = true
}
toolbar.title = if (bankrollReport.setup.virtualBankroll) getString(R.string.total) else bankrollReport.setup.bankroll?.name
updateMenuUI()
bankrollAdapter = RowRepresentableAdapter(this, this)
@ -138,7 +144,16 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
* Update menu UI
*/
private fun updateMenuUI() {
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = !bankrollReport.setup.virtualBankroll
if (bankrollReport.setup.virtualBankroll) {
toolbar.title = getString(R.string.total)
collapsingToolbar.title = getString(R.string.total)
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = false
} else {
toolbar.title = bankrollReport.setup.bankroll?.name
collapsingToolbar.title = bankrollReport.setup.bankroll?.name
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = true
}
}
/**

@ -3,6 +3,8 @@ package net.pokeranalytics.android.ui.fragment
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.View
import net.pokeranalytics.android.R
import net.pokeranalytics.android.api.CurrencyConverterApi
@ -54,6 +56,11 @@ class BankrollEditDataFragment : EditableDataFragment(), StaticRowRepresentableD
} ?: false
}
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
super.onCreateOptionsMenu(menu, inflater)
menu?.findItem(R.id.delete)?.isVisible = false
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

@ -6,7 +6,6 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.snackbar.Snackbar
import io.realm.Realm
@ -28,7 +27,6 @@ import net.pokeranalytics.android.calculus.bankroll.BankrollCalculator
import net.pokeranalytics.android.calculus.bankroll.BankrollReport
import net.pokeranalytics.android.calculus.bankroll.BankrollReportSetup
import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.model.interfaces.Deletable
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.BankrollDetailsActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
@ -97,6 +95,9 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
}
}
}
initData()
//TODO: Refresh bankroll
}
override fun adapterRows(): List<RowRepresentable>? {
@ -117,6 +118,7 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
else -> {
if (bankrollReportForRow.containsKey(row)) {
bankrollReportForRow[row]?.let { bankrollReport ->
lastItemClickedPosition = position
BankrollDetailsActivity.newInstanceForResult(this, bankrollReport, REQUEST_CODE_DETAILS)
}
}
@ -166,7 +168,6 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
bankrollReportForRow[row] = bankrollReport
}
if (!isDetached) {
bankrollAdapter.notifyDataSetChanged()
}
@ -213,32 +214,41 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
*/
private fun deleteItem(position: Int) {
//TODO: Get bankroll from bankrollReport and delete it
/*
if (isDetached || activity == null) {
return
}
// Save the delete position & create a copy of the object
val mRecentlyDeletedItem = rowRepresentableForPosition(position)
var mRecentlyDeletedItem = rowRepresentableForPosition(position)
lastDeletedItemPosition = position
if (mRecentlyDeletedItem is RealmObject) {
// Check if the object is valid for the deletion
if ((mRecentlyDeletedItem as Deletable).isValidForDelete(this.getRealm())) {
deletedItem = getRealm().copyFromRealm(mRecentlyDeletedItem)
getRealm().executeTransaction {
mRecentlyDeletedItem.deleteFromRealm()
if (mRecentlyDeletedItem is BankrollReport) {
if (mRecentlyDeletedItem is RealmObject) {
// Check if the object is valid for the deletion
if ((mRecentlyDeletedItem as Deletable).isValidForDelete(this.getRealm())) {
deletedItem = getRealm().copyFromRealm(mRecentlyDeletedItem)
getRealm().executeTransaction {
mRecentlyDeletedItem.deleteFromRealm()
}
bankrollAdapter.notifyItemRemoved(position)
showUndoSnackBar()
} else {
bankrollAdapter.notifyItemChanged(position)
val builder = AlertDialog.Builder(requireContext())
.setMessage((mRecentlyDeletedItem as Deletable).getFailedDeleteMessage())
.setNegativeButton(R.string.ok, null)
builder.show()
}
bankrollAdapter.notifyItemRemoved(position)
showUndoSnackBar()
} else {
bankrollAdapter.notifyItemChanged(position)
val builder = AlertDialog.Builder(requireContext())
.setMessage((mRecentlyDeletedItem as Deletable).getFailedDeleteMessage())
.setNegativeButton(R.string.ok, null)
builder.show()
}
}
*/
}
/**

Loading…
Cancel
Save