|
|
|
|
@ -9,6 +9,7 @@ import android.view.ViewGroup |
|
|
|
|
import androidx.appcompat.app.AlertDialog |
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
import com.github.mikephil.charting.data.LineDataSet |
|
|
|
|
import io.realm.Realm |
|
|
|
|
import io.realm.RealmObject |
|
|
|
|
import io.realm.RealmResults |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_bankroll.* |
|
|
|
|
@ -34,7 +35,6 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.fragment.components.RealmFragment |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable |
|
|
|
|
@ -43,7 +43,7 @@ import timber.log.Timber |
|
|
|
|
import java.util.* |
|
|
|
|
import kotlin.collections.ArrayList |
|
|
|
|
|
|
|
|
|
class BankrollFragment : RealmFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { |
|
|
|
|
class BankrollFragment : DeletableItemFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
|
|
|
|
|
@ -153,6 +153,9 @@ class BankrollFragment : RealmFragment(), StaticRowRepresentableDataSource, RowR |
|
|
|
|
val bankrolls = LiveData.BANKROLL.items(getRealm()) as RealmResults<Bankroll> |
|
|
|
|
|
|
|
|
|
bankrolls.forEach { |
|
|
|
|
|
|
|
|
|
Timber.d("Bankroll: ${it.name} => isValidForDelete: ${it.isValidForDelete(Realm.getDefaultInstance())}") |
|
|
|
|
|
|
|
|
|
val bankrollReportSetup = BankrollReportSetup(it) |
|
|
|
|
val bankrollReport = BankrollCalculator.computeReport(getRealm(), bankrollReportSetup) |
|
|
|
|
val computedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.total) |
|
|
|
|
@ -217,8 +220,10 @@ class BankrollFragment : RealmFragment(), StaticRowRepresentableDataSource, RowR |
|
|
|
|
|
|
|
|
|
if (mRecentlyDeletedItem is Bankroll) { |
|
|
|
|
|
|
|
|
|
val deletableItem = (mRecentlyDeletedItem as Deletable) |
|
|
|
|
|
|
|
|
|
// Check if the object is valid for the deletion |
|
|
|
|
if ((mRecentlyDeletedItem as Deletable).isValidForDelete(this.getRealm())) { |
|
|
|
|
if (deletableItem.isValidForDelete(this.getRealm())) { |
|
|
|
|
deletedItem = getRealm().copyFromRealm(mRecentlyDeletedItem) |
|
|
|
|
getRealm().executeTransaction { |
|
|
|
|
mRecentlyDeletedItem.deleteFromRealm() |
|
|
|
|
@ -231,8 +236,10 @@ class BankrollFragment : RealmFragment(), StaticRowRepresentableDataSource, RowR |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
bankrollAdapter.notifyItemChanged(position) |
|
|
|
|
val status = deletableItem.getDeleteStatus(this.getRealm()) |
|
|
|
|
val errorMessage = deletableItem.getFailedDeleteMessage(status) |
|
|
|
|
val builder = AlertDialog.Builder(requireContext()) |
|
|
|
|
.setMessage((mRecentlyDeletedItem as Deletable).getFailedDeleteMessage()) |
|
|
|
|
.setMessage(errorMessage) |
|
|
|
|
.setNegativeButton(R.string.ok, null) |
|
|
|
|
builder.show() |
|
|
|
|
} |
|
|
|
|
|