From fcd5054babe98549eee783e5b36f5b1391518cbd Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Tue, 12 Mar 2019 13:32:27 +0100 Subject: [PATCH] clean up adapterRows to use lazy companion arrays --- .../android/model/realm/Game.kt | 14 ++++-- .../android/model/realm/TournamentFeature.kt | 14 ++++-- .../android/model/realm/TournamentName.kt | 13 +++-- .../android/model/realm/TransactionType.kt | 13 +++-- .../android/ui/fragment/CurrenciesFragment.kt | 49 +++++++++++-------- .../android/ui/fragment/SettingsFragment.kt | 10 ++-- 6 files changed, 73 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt index 1bd28aa7..deffc478 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt @@ -20,6 +20,15 @@ import kotlin.collections.ArrayList open class Game : RealmObject(), Manageable, StaticRowRepresentableDataSource, RowRepresentable, CountableUsage { + companion object { + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(GameRow.values()) + rows + } + } + @PrimaryKey var id = UUID.randomUUID().toString() @@ -41,10 +50,7 @@ open class Game : RealmObject(), Manageable, StaticRowRepresentableDataSource, R } override fun adapterRows(): List? { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(GameRow.values()) - return rows + return Game.rowRepresentation } override fun stringForRow(row: RowRepresentable): String { diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt index a21a156e..5df87c36 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt @@ -16,6 +16,15 @@ import kotlin.collections.ArrayList open class TournamentFeature : RealmObject(), Manageable, StaticRowRepresentableDataSource, RowRepresentable, CountableUsage { + companion object { + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(TournamentFeatureRow.values()) + rows + } + } + @PrimaryKey var id = UUID.randomUUID().toString() @@ -34,10 +43,7 @@ open class TournamentFeature : RealmObject(), Manageable, StaticRowRepresentable } override fun adapterRows(): List? { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(TournamentFeatureRow.values()) - return rows + return TournamentFeature.rowRepresentation } override fun stringForRow(row: RowRepresentable): String { diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentName.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentName.kt index b76c03fc..9ac3ef1b 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentName.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentName.kt @@ -15,6 +15,14 @@ import kotlin.collections.ArrayList open class TournamentName : RealmObject(), Manageable, StaticRowRepresentableDataSource, RowRepresentable { + companion object { + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(TournamentNameRow.values()) + rows + } + } @PrimaryKey var id = UUID.randomUUID().toString() @@ -37,10 +45,7 @@ open class TournamentName : RealmObject(), Manageable, StaticRowRepresentableDat } override fun adapterRows(): List? { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(TournamentNameRow.values()) - return rows + return TournamentName.rowRepresentation } override fun stringForRow(row: RowRepresentable): String { diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt index 87dd38bc..6d38817c 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt @@ -15,6 +15,14 @@ import kotlin.collections.ArrayList open class TransactionType : RealmObject(), Manageable, StaticRowRepresentableDataSource, RowRepresentable { + companion object { + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(TransactionTypeRow.values()) + rows + } + } @PrimaryKey var id = UUID.randomUUID().toString() @@ -40,10 +48,7 @@ open class TransactionType : RealmObject(), Manageable, StaticRowRepresentableDa } override fun adapterRows(): List? { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(TransactionTypeRow.values()) - return rows + return TransactionType.rowRepresentation } override fun stringForRow(row: RowRepresentable): String { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt index 6f1185be..c94f2ab9 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt @@ -21,23 +21,34 @@ import java.util.* class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { - private val mostUsedCurrencyCodes = arrayListOf("EUR", "USD", "CAD", "GBP", "AUD", "CNY") - private val systemCurrencies = Currency.getAvailableCurrencies() - - private val mostUsedCurrencies = this.mostUsedCurrencyCodes.map { code -> - CurrencyRow( - this.systemCurrencies.filter { - it.currencyCode == code - }.first() - ) - } + companion object { + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.addAll(mostUsedCurrencies) + rows.add(SeparatorRowRepresentable()) + rows.addAll(availableCurrencies) + rows + } + + val mostUsedCurrencyCodes = arrayListOf("EUR", "USD", "CAD", "GBP", "AUD", "CNY") + val systemCurrencies = Currency.getAvailableCurrencies() + - private val availableCurrencies = this.systemCurrencies.filter { - !mostUsedCurrencyCodes.contains(it.currencyCode) - }.sortedBy { - it.displayName - }.map { - CurrencyRow(it) + private val mostUsedCurrencies = this.mostUsedCurrencyCodes.map { code -> + CurrencyRow( + this.systemCurrencies.filter { + it.currencyCode == code + }.first() + ) + } + + private val availableCurrencies = this.systemCurrencies.filter { + !mostUsedCurrencyCodes.contains(it.currencyCode) + }.sortedBy { + it.displayName + }.map { + CurrencyRow(it) + } } private class CurrencyRow(var currency:Currency) : RowRepresentable { @@ -68,11 +79,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS // StaticRowRepresentableDataSource override fun adapterRows(): List? { - val rows = ArrayList() - rows.addAll(mostUsedCurrencies) - rows.add(SeparatorRowRepresentable()) - rows.addAll(availableCurrencies) - return rows + return CurrenciesFragment.rowRepresentation } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index e70815bf..d32a4d7c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -40,6 +40,12 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta return fragment } + val rowRepresentation : List by lazy { + val rows = ArrayList() + rows.addAll(SettingRow.getRows()) + rows + } + val REQUEST_CODE_CURRENCY : Int = 0 } @@ -71,9 +77,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } override fun adapterRows(): List? { - val rows = ArrayList() - rows.addAll(SettingRow.getRows()) - return rows + return SettingsFragment.rowRepresentation } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {