diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index 97b0fde8..d09c0209 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -8,6 +8,7 @@ import io.realm.kotlin.where import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.model.realm.Currency +import net.pokeranalytics.android.model.utils.Seed import net.pokeranalytics.android.util.PokerAnalyticsLogs import net.pokeranalytics.android.util.Preferences import timber.log.Timber @@ -40,6 +41,7 @@ class PokerAnalyticsApplication : Application() { val realmConfiguration = RealmConfiguration.Builder() .name(Realm.DEFAULT_REALM_NAME) .deleteRealmIfMigrationNeeded() + .initialData(Seed(this, true)) .build() Realm.setDefaultConfiguration(realmConfiguration) @@ -61,74 +63,12 @@ class PokerAnalyticsApplication : Application() { //Fabric.with(this, Crashlytics()) } - this.createDefaultData() if (BuildConfig.DEBUG) { // this.createFakeSessions() // debug } } - /** - * Create default data - */ - private fun createDefaultData() { - - val realm = Realm.getDefaultInstance() - - // Games - val gamesName = resources.getStringArray(R.array.game_name) - val gamesShortName = resources.getStringArray(R.array.game_short_name) - if (realm.where().findAll().isEmpty()) { - realm.executeTransaction { - for ((index, name) in gamesName.withIndex()) { - val game = Game() - game.id = UUID.randomUUID().toString() - game.name = name - game.shortName = gamesShortName[index] - realm.copyToRealmOrUpdate(game) - } - } - } - - // Tournament types - val tournamentFakeName = resources.getStringArray(R.array.tournament_fake_name) - if (realm.where().findAll().isEmpty()) { - realm.executeTransaction { - for (type in tournamentFakeName) { - val tournament = TournamentName() - tournament.id = UUID.randomUUID().toString() - tournament.name = type - realm.copyToRealmOrUpdate(tournament) - } - } - } - - // Currency - if (realm.where().findAll().isEmpty()) { - realm.executeTransaction { - val localeCurrency = java.util.Currency.getInstance(Locale.getDefault()) - val defaultCurrency = Currency() - defaultCurrency.code = localeCurrency.currencyCode - realm.copyToRealmOrUpdate(defaultCurrency) - } - } - - // Bankroll - if (realm.where().findAll().isEmpty()) { - realm.executeTransaction { - val localeCurrency = java.util.Currency.getInstance(Preferences.getCurrencyLocale(this)) - val bankroll = Bankroll() - bankroll.name = "Live" - bankroll.live = true - bankroll.currency = realm.where().equalTo("code", localeCurrency.currencyCode).findFirst() - realm.copyToRealmOrUpdate(bankroll) - } - } - - realm.close() - - } - private fun createFakeSessions() { val realm = Realm.getDefaultInstance() diff --git a/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt new file mode 100644 index 00000000..578449cd --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt @@ -0,0 +1,55 @@ +package net.pokeranalytics.android.model.utils + +import android.content.Context +import io.realm.Realm +import io.realm.kotlin.where +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.* +import net.pokeranalytics.android.model.realm.Currency +import net.pokeranalytics.android.util.Preferences +import java.util.* + +class Seed(var context:Context, var fake:Boolean = false) : Realm.Transaction { + + override fun execute(realm: Realm) { + this.createDefaultGames(realm) + this.createDefaultTournamentFeatures(realm) + this.createDefaultCurrencyAndBankroll(realm) + } + + private fun createDefaultTournamentFeatures(realm: Realm) { + context.resources.getStringArray(R.array.seed_tournament_features).forEach { + val tournamentFeature = TournamentFeature() + tournamentFeature.id = UUID.randomUUID().toString() + tournamentFeature.name = it + realm.insertOrUpdate(tournamentFeature) + } + } + + private fun createDefaultCurrencyAndBankroll(realm: Realm) { + // Currency + val localeCurrency = java.util.Currency.getInstance(Locale.getDefault()) + val defaultCurrency = Currency() + defaultCurrency.code = localeCurrency.currencyCode + realm.insertOrUpdate(defaultCurrency) + + // Bankroll + val bankroll = Bankroll() + bankroll.name = context.resources.getString(R.string.live) + bankroll.live = true + bankroll.currency = realm.where().equalTo("code", localeCurrency.currencyCode).findFirst() + realm.insertOrUpdate(bankroll) + } + + private fun createDefaultGames(realm: Realm) { + val gamesName = context.resources.getStringArray(R.array.seed_games) + val gamesShortName = context.resources.getStringArray(R.array.seed_games_short_name) + for ((index, name) in gamesName.withIndex()) { + val game = Game() + game.id = UUID.randomUUID().toString() + game.name = name + game.shortName = gamesShortName[index] + realm.insertOrUpdate(game) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/values/array_limit.xml b/app/src/main/res/values/array_limit.xml deleted file mode 100644 index 096fef29..00000000 --- a/app/src/main/res/values/array_limit.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - No Limit - Pot Limit - Fixed Limit - Spread Limit - Mixed Limit - - - NL - PL - FL - SL - ML - - \ No newline at end of file diff --git a/app/src/main/res/values/array_seed_games.xml b/app/src/main/res/values/array_seed_games.xml new file mode 100644 index 00000000..ee47faa5 --- /dev/null +++ b/app/src/main/res/values/array_seed_games.xml @@ -0,0 +1,13 @@ + + + + Hold\'em + Omaha + Omaha Hi-Low + + + HE + OH + OH8 + + \ No newline at end of file diff --git a/app/src/main/res/values/array_seed_tournament_features.xml b/app/src/main/res/values/array_seed_tournament_features.xml new file mode 100644 index 00000000..290417b0 --- /dev/null +++ b/app/src/main/res/values/array_seed_tournament_features.xml @@ -0,0 +1,8 @@ + + + + Knockout + Shootout + Turbo + + \ No newline at end of file diff --git a/app/src/main/res/values/array_tournament_fake_name.xml b/app/src/main/res/values/array_tournament_fake_name.xml deleted file mode 100644 index 12e55876..00000000 --- a/app/src/main/res/values/array_tournament_fake_name.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - LA FIEVRE - NITRO - WCOOP EVENT #1 - - \ No newline at end of file diff --git a/app/src/main/res/values/array_variant.xml b/app/src/main/res/values/array_variant.xml deleted file mode 100644 index 3f6dd1b0..00000000 --- a/app/src/main/res/values/array_variant.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Hold\'em - Omaha - Omaha Hi-Low - Seven Card Stud - Seven Card Stud Hi-Low - H.O.R.S.E. - Seven Card Razz - - - HE - OH - OH8 - 7S - Stud8 - HORSE - Razz - - \ No newline at end of file