Patches lone ComputableResult

feature/top10
Laurent 7 years ago
parent 1801d62daf
commit 3fdcf472c6
  1. 2
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 20
      app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt
  3. 23
      app/src/main/java/net/pokeranalytics/android/util/Preferences.kt

@ -55,7 +55,7 @@ class PokerAnalyticsApplication : Application() {
// this.createFakeSessions() // this.createFakeSessions()
} }
Patcher.patchBreaks() Patcher.patchBreaks(applicationContext)
} }
/** /**

@ -1,18 +1,17 @@
package net.pokeranalytics.android.model.migrations package net.pokeranalytics.android.model.migrations
import android.content.Context
import io.realm.Realm import io.realm.Realm
import net.pokeranalytics.android.model.filter.Query import net.pokeranalytics.android.model.filter.Query
import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.realm.Filter import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.model.realm.Result import net.pokeranalytics.android.util.Preferences
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet
class Patcher { class Patcher {
companion object { companion object {
fun patchBreaks() { fun patchBreaks(context: Context) {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
val sets = realm.where(SessionSet::class.java).findAll() val sets = realm.where(SessionSet::class.java).findAll()
@ -30,6 +29,17 @@ class Patcher {
it.computeNumberOfRebuy() it.computeNumberOfRebuy()
} }
} }
if (!Preferences.getBoolean(Preferences.DBPatch.LONE_COMPUTABLE_RESULTS, context)) {
// patch for https://console.firebase.google.com/project/poker-analytics-97998/crashlytics/app/android:net.pokeranalytics.android/issues/5cd2c884f8b88c29635caa16
val loneComputableResults = realm.where(ComputableResult::class.java).isNull("session").findAll()
realm.executeTransaction {
loneComputableResults.deleteAllFromRealm()
}
Preferences.setBoolean(Preferences.DBPatch.LONE_COMPUTABLE_RESULTS, true, context)
}
realm.close() realm.close()
} }

@ -6,7 +6,20 @@ import java.util.*
class Preferences { class Preferences {
enum class Keys(var identifier: String) { interface PreferenceKey {
var identifier: String
}
enum class DBPatch(var key: String) : PreferenceKey {
LONE_COMPUTABLE_RESULTS("loneComputableResult");
override var identifier: String = ""
get() {
return "dbpatch." + this.key
}
}
enum class Keys(override var identifier: String) : PreferenceKey {
CURRENCY_CODE("CurrencyCode"), CURRENCY_CODE("CurrencyCode"),
LOCALE_CODE("LocaleCode"), LOCALE_CODE("LocaleCode"),
FIRST_LAUNCH("firstLaunch"), FIRST_LAUNCH("firstLaunch"),
@ -16,26 +29,26 @@ class Preferences {
companion object { companion object {
fun setString(key: Keys, value: String, context: Context) { fun setString(key: PreferenceKey, value: String, context: Context) {
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
val editor = preferences.edit() val editor = preferences.edit()
editor.putString(key.identifier, value) editor.putString(key.identifier, value)
editor.apply() editor.apply()
} }
fun getString(key: Keys, context: Context) : String? { fun getString(key: PreferenceKey, context: Context) : String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key.identifier, null) return preferences.getString(key.identifier, null)
} }
fun setBoolean(key: Keys, value: Boolean, context: Context) { fun setBoolean(key: PreferenceKey, value: Boolean, context: Context) {
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
val editor = preferences.edit() val editor = preferences.edit()
editor.putBoolean(key.identifier, value) editor.putBoolean(key.identifier, value)
editor.apply() editor.apply()
} }
fun getBoolean(key: Keys, context: Context, defaultValue: Boolean? = false) : Boolean { fun getBoolean(key: PreferenceKey, context: Context, defaultValue: Boolean? = false) : Boolean {
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getBoolean(key.identifier, defaultValue ?: false) return preferences.getBoolean(key.identifier, defaultValue ?: false)
} }

Loading…
Cancel
Save