From d355ec0a6fbbb03fc8053af1ddc30c5e70ad4720 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 4 Mar 2019 10:55:05 +0100 Subject: [PATCH] Add new rows for Settings --- .../android/ui/fragment/SettingsFragment.kt | 12 +- .../ui/view/rowrepresentable/SettingRow.kt | 111 +++++++++++++----- app/src/main/res/layout/fragment_settings.xml | 2 +- 3 files changed, 87 insertions(+), 38 deletions(-) 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 5d4e951c..29ecea1d 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 @@ -9,7 +9,9 @@ import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.activity.DataListActivity -import net.pokeranalytics.android.ui.adapter.* +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.PokerAnalyticsFragment import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow @@ -41,9 +43,9 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta initData() } - override fun adapterRows(): List? { + override fun adapterRows(): List? { val rows = ArrayList() - rows.addAll(SettingRow.values()) + rows.addAll(SettingRow.getRows()) return rows } @@ -65,8 +67,8 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta val viewManager = LinearLayoutManager(requireContext()) settingsAdapterRow = RowRepresentableAdapter( - this, this - ) + this, this + ) customRecyclerView.apply { setHasFixedSize(true) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt index fe8a02a3..9b14b1f3 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt @@ -7,36 +7,83 @@ import net.pokeranalytics.android.ui.view.RowViewType enum class SettingRow : RowRepresentable { - GDPR, - BANKROLL, - GAME, - LOCATION, - TOURNAMENT_TYPE, - TRANSACTION_TYPE; - - override val resId: Int? - get() { - this.relatedResultsRepresentable?.let { - return it.resId - } ?: run { - return when (this) { - GDPR -> R.string.gdpr - else -> null - } - } - } - - override val viewType: Int = RowViewType.TITLE.ordinal - - override val relatedResultsRepresentable: LiveData? - get() { - return when (this) { - BANKROLL -> LiveData.BANKROLL - GAME -> LiveData.GAME - LOCATION -> LiveData.LOCATION - TOURNAMENT_TYPE -> LiveData.TOURNAMENT_TYPE - TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE - else -> null - } - } + + // About + VERSION, + RATE_APP, + CONTACT_US, + BUG_REPORT, + + // Follow + FOLLOW_US, + + // Data management + BANKROLL, + GAME, + LOCATION, + TOURNAMENT_TYPE, + TRANSACTION_TYPE, + + // Terms + PRIVACY_POLICY, + TERMS_OF_USE, + GDPR; + + + companion object { + /** + * Return the rows to display for the current session state + */ + fun getRows(): ArrayList { + + val rows = ArrayList() + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.information)) + rows.addAll(arrayListOf(VERSION, RATE_APP, CONTACT_US, BUG_REPORT)) + + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.follow_us)) + rows.addAll(arrayListOf(FOLLOW_US)) + + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION,resId = R.string.data_management)) + rows.addAll(arrayListOf(BANKROLL, GAME, LOCATION, TOURNAMENT_TYPE, TRANSACTION_TYPE)) + + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.terms)) + rows.addAll(arrayListOf(PRIVACY_POLICY, TERMS_OF_USE, GDPR)) + + return rows + } + + } + + override val resId: Int? + get() { + this.relatedResultsRepresentable?.let { + return it.resId + } ?: run { + return when (this) { + VERSION -> R.string.version + RATE_APP -> R.string.releasenote_rating + CONTACT_US -> R.string.contact + BUG_REPORT -> R.string.bug_report + PRIVACY_POLICY -> R.string.privacy_policy + TERMS_OF_USE -> R.string.terms_of_use + FOLLOW_US -> R.string.follow_us + GDPR -> R.string.gdpr + else -> null + } + } + } + + override val viewType: Int = RowViewType.TITLE.ordinal + + override val relatedResultsRepresentable: LiveData? + get() { + return when (this) { + BANKROLL -> LiveData.BANKROLL + GAME -> LiveData.GAME + LOCATION -> LiveData.LOCATION + TOURNAMENT_TYPE -> LiveData.TOURNAMENT_TYPE + TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE + else -> null + } + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index e0e9a945..8b6825d0 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> -