handle save and deletion of settings objects

dev_raz_wip
Razmig Sarkissian 7 years ago
parent a672a40a90
commit 3ec46b368e
  1. 7
      app/src/main/java/net/pokeranalytics/android/model/LiveData.kt
  2. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  4. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  5. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
  6. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
  7. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt

@ -6,6 +6,7 @@ import io.realm.RealmResults
import io.realm.Sort
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource
import net.pokeranalytics.android.ui.view.Localizable
/**
@ -65,10 +66,14 @@ enum class LiveData : Localizable {
return proxyItem
}
fun deleteData(realm:Realm, data:LiveDataDataSource) {
realm.where(this.relatedEntity).equalTo("id", data.primaryKey).findAll().deleteAllFromRealm()
}
fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject {
val proxyItem: RealmObject? = this.getData(realm, primaryKey)
proxyItem?.let {
return realm.copyFromRealm(it)
return proxyItem
} ?: run {
return this.newEntity()
/* realm.beginTransaction()

@ -81,4 +81,8 @@ open class Bankroll(name: String = "") : RealmObject(), RowRepresentableDataSour
SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -59,9 +59,6 @@ open class Game : RealmObject(), RowRepresentableDataSource, LiveDataDataSource,
}
override fun isValidForSave(): Boolean {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
return this.name.isNotEmpty()
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -12,7 +13,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import java.util.*
open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -57,4 +58,7 @@ open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSou
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -11,7 +12,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import net.pokeranalytics.android.ui.view.TournamentFeatureRow
import java.util.*
open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -50,4 +51,8 @@ open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDa
SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -12,7 +13,7 @@ import net.pokeranalytics.android.ui.view.TransactionTypeRow
import java.util.*
open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -60,6 +61,9 @@ open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveData
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}
enum class TransactionKind {

@ -21,6 +21,7 @@ import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheet
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment
import net.pokeranalytics.android.ui.view.RowEditable
import net.pokeranalytics.android.ui.view.RowRepresentable
import timber.log.Timber
class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate {
@ -93,7 +94,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
}
} else {
val builder = AlertDialog.Builder(it.context)
builder.setTitle(R.string.warning)
.setMessage(R.string.empty_name_for_br_error)
.setNegativeButton(R.string.ok, null)
builder.show()
}
@ -106,8 +107,16 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
.setMessage(R.string.are_you_sure_you_want_to_do_that_)
.setNeutralButton(R.string.no, null)
.setNegativeButton(R.string.yes, DialogInterface.OnClickListener { dialog, id ->
if (this.item.isManaged) {
Toast.makeText(requireContext(), "isManaged", Toast.LENGTH_SHORT).show()
Timber.d("is managed")
this.getRealm().executeTransaction {
this.item.deleteFromRealm()
this.liveDataType.deleteData(it, (this.item as LiveDataDataSource))
}
} else {
Toast.makeText(requireContext(), "isNotManaged", Toast.LENGTH_SHORT).show()
Timber.d("is not managed")
}
this.activity?.let {
it.finish()

Loading…
Cancel
Save