From fda7bbd5c150e942e1d47f582e160952ea542692 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 12:45:08 +0100 Subject: [PATCH 01/11] Manage negative net result keyboard --- .../main/java/net/pokeranalytics/android/model/realm/Session.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 0314e981..435c87da 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -467,6 +467,7 @@ open class Session : RealmObject(), SessionInterface, Savable, result?.cashout?.round(), inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL + or InputType.TYPE_NUMBER_FLAG_SIGNED ) ) } From f9a2f3ca9d416cf0bf743cb47b909858ec70f7cb Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 5 Mar 2019 14:25:31 +0100 Subject: [PATCH 02/11] Preferences fix --- .../java/net/pokeranalytics/android/util/Preferences.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt index a283f7dc..74aaff4c 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt @@ -6,7 +6,7 @@ import java.util.* class Preferences { - enum class Keys(identifier: String) { + enum class Keys(var identifier: String) { CURRENCY_LANGUAGE("CurrencyLanguage") } @@ -15,13 +15,13 @@ class Preferences { fun setString(key: Keys, value: String, context: Context) { var preferences = PreferenceManager.getDefaultSharedPreferences(context) var editor = preferences.edit() - editor.putString(key.toString(), value) + editor.putString(key.identifier, value) editor.commit() } fun getString(key: Keys, context: Context) : String? { var preferences = PreferenceManager.getDefaultSharedPreferences(context) - return preferences.getString(key.name, null) + return preferences.getString(key.identifier, null) } fun setCurrencyLanguage(language: String, context: Context) { From f59d97a5123a28231c4e28acd8b92f0008010c97 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 14:42:24 +0100 Subject: [PATCH 03/11] Fix error message for data management --- .../android/ui/fragment/EditableDataFragment.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index bed75b34..7fd60691 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -14,15 +14,16 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.interfaces.Identifiable import net.pokeranalytics.android.model.interfaces.Savable +import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate -import net.pokeranalytics.android.ui.helpers.PlacePickerManager import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment +import net.pokeranalytics.android.ui.helpers.PlacePickerManager import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.LocationRow @@ -137,8 +138,18 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, finishActivityWithResult(uniqueIdentifier) } } else { + + val message = when(item) { + is Bankroll -> R.string.empty_name_for_br_error + is Location -> R.string.location_empty_field_error + is Game -> R.string.location_empty_field_error + is TournamentType -> R.string.tt_empty_field_error + is TransactionType -> R.string.operation_type_empty_field_error + else -> R.string.empty_name_for_br_error + } + val builder = AlertDialog.Builder(requireContext()) - .setMessage(R.string.empty_name_for_br_error) + .setMessage(message) .setNegativeButton(R.string.ok, null) builder.show() } From b36d0a582eebda15a2ad0414fbfe15598778c5c1 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 14:42:50 +0100 Subject: [PATCH 04/11] Update tournament type to fix crash when editing --- .../android/model/realm/TournamentType.kt | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentType.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentType.kt index c10cba32..c29e87b7 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentType.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TournamentType.kt @@ -3,13 +3,15 @@ package net.pokeranalytics.android.model.realm import io.realm.RealmObject import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable -import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource +import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.view.RowRepresentable +import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow import java.util.* +import kotlin.collections.ArrayList -open class TournamentType : RealmObject(), Savable, RowRepresentable { +open class TournamentType : RealmObject(), Savable, StaticRowRepresentableDataSource, RowRepresentable { @PrimaryKey var id = UUID.randomUUID().toString() @@ -31,4 +33,36 @@ open class TournamentType : RealmObject(), Savable, RowRepresentable { } } + override fun adapterRows(): List? { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + //rows.addAll(TournamentType.values()) + return rows + } + + override fun stringForRow(row: RowRepresentable): String { + return when (row) { + SimpleRow.NAME -> this.name + else -> return super.stringForRow(row) + } + } + + override fun editDescriptors(row: RowRepresentable): ArrayList { + val data = java.util.ArrayList() + when (row) { + SimpleRow.NAME -> data.add( + RowRepresentableEditDescriptor( + this.name, + SimpleRow.NAME.resId + ) + ) + } + return data + } + + override fun isValidForSave(): Boolean { + return this.name.isNotEmpty() + } + + } From 872a23923622d8a3131df84f2fef2e54b336a1cf Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 14:42:57 +0100 Subject: [PATCH 05/11] Format Game --- .../android/model/realm/Game.kt | 107 +++++++++--------- 1 file changed, 53 insertions(+), 54 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 3a3fea3c..6e82814d 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 @@ -11,69 +11,68 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow import java.util.* import kotlin.collections.ArrayList -open class Game : RealmObject(), Savable, StaticRowRepresentableDataSource, - RowRepresentable { +open class Game : RealmObject(), Savable, StaticRowRepresentableDataSource, RowRepresentable { - @PrimaryKey - var id = UUID.randomUUID().toString() + @PrimaryKey + var id = UUID.randomUUID().toString() - // The name of the game - var name: String = "" + // The name of the game + var name: String = "" - // A shorter name for the game - var shortName: String? = null + // A shorter name for the game + var shortName: String? = null - override fun getDisplayName(): String { - return this.name - } + override fun getDisplayName(): String { + return this.name + } - override fun uniqueIdentifier(): String { - return this.id - } + override fun uniqueIdentifier(): String { + return this.id + } - override fun adapterRows(): List? { - val rows = ArrayList() - rows.add(SimpleRow.NAME) - rows.addAll(GameRow.values()) - return rows - } + override fun adapterRows(): List? { + val rows = ArrayList() + rows.add(SimpleRow.NAME) + rows.addAll(GameRow.values()) + return rows + } - override fun stringForRow(row: RowRepresentable): String { - return when (row) { - SimpleRow.NAME -> this.name - GameRow.SHORT_NAME -> this.shortName?:"" - else -> return super.stringForRow(row) - } - } + override fun stringForRow(row: RowRepresentable): String { + return when (row) { + SimpleRow.NAME -> this.name + GameRow.SHORT_NAME -> this.shortName ?: "" + else -> return super.stringForRow(row) + } + } - override fun editDescriptors(row: RowRepresentable): ArrayList { - val data = java.util.ArrayList() - when (row) { - SimpleRow.NAME -> data.add( - RowRepresentableEditDescriptor( - this.name, - SimpleRow.NAME.resId - ) - ) - GameRow.SHORT_NAME -> data.add( - RowRepresentableEditDescriptor( - this.shortName, - GameRow.SHORT_NAME.resId - ) - ) - } - return data - } + override fun editDescriptors(row: RowRepresentable): ArrayList { + val data = java.util.ArrayList() + when (row) { + SimpleRow.NAME -> data.add( + RowRepresentableEditDescriptor( + this.name, + SimpleRow.NAME.resId + ) + ) + GameRow.SHORT_NAME -> data.add( + RowRepresentableEditDescriptor( + this.shortName, + GameRow.SHORT_NAME.resId + ) + ) + } + return data + } - override fun updateValue(value: Any?, row: RowRepresentable) { - when (row) { - SimpleRow.NAME -> this.name = value as String? ?: "" - GameRow.SHORT_NAME -> this.shortName = value as String - } - } + override fun updateValue(value: Any?, row: RowRepresentable) { + when (row) { + SimpleRow.NAME -> this.name = value as String? ?: "" + GameRow.SHORT_NAME -> this.shortName = value as String + } + } - override fun isValidForSave(): Boolean { - return this.name.isNotEmpty() - } + override fun isValidForSave(): Boolean { + return this.name.isNotEmpty() + } } From 121d111f96fd61a2a796c10d797ec54252d14aa4 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 15:27:52 +0100 Subject: [PATCH 06/11] Add follow us row (with a small hack to get the clicked position) --- .../android/ui/fragment/SettingsFragment.kt | 8 ++ .../android/ui/view/RowViewType.kt | 28 +++++++ .../ui/view/rowrepresentable/SettingRow.kt | 1 + .../net/pokeranalytics/android/util/Global.kt | 11 ++- app/src/main/res/layout/row_follow_us.xml | 84 +++++++++++++++++++ 5 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/layout/row_follow_us.xml 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 5341c686..af907192 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 @@ -67,6 +67,14 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta SettingRow.RATE_APP -> parentActivity.openPlayStorePage() SettingRow.CONTACT_US -> parentActivity.openContactMail() SettingRow.BUG_REPORT -> Toast.makeText(requireContext(), "Bug report", Toast.LENGTH_SHORT).show() + SettingRow.FOLLOW_US -> { + when(position) { + 0 -> parentActivity.openUrl(BLOG) + 1 -> parentActivity.openUrl(INSTAGRAM) + 2 -> parentActivity.openUrl(TWITTER) + 3 -> parentActivity.openUrl(FACEBOOK) + } + } SettingRow.CURRENCY -> Toast.makeText(requireContext(), "Currency", Toast.LENGTH_SHORT).show() SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL_PRIVACY_POLICY) SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL_TERMS) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index 78bc4193..63273611 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -3,6 +3,7 @@ package net.pokeranalytics.android.ui.view import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView @@ -52,6 +53,7 @@ enum class RowViewType { TITLE_GRID, ROW_SESSION, BUTTON, + FOLLOW_US, STAT; /** @@ -161,6 +163,15 @@ enum class RowViewType { ) ) } + FOLLOW_US -> { + FollowUsViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.row_follow_us, + parent, + false + ) + ) + } STAT -> StatsTitleValueViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_stats_title_value, @@ -236,6 +247,23 @@ enum class RowViewType { } } + inner class FollowUsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { + override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { + itemView.findViewById(R.id.icon1).setOnClickListener { + adapter.delegate?.onRowSelected(0, row) + } + itemView.findViewById(R.id.icon2).setOnClickListener { + adapter.delegate?.onRowSelected(1, row) + } + itemView.findViewById(R.id.icon3).setOnClickListener { + adapter.delegate?.onRowSelected(2, row) + } + itemView.findViewById(R.id.icon4).setOnClickListener { + adapter.delegate?.onRowSelected(3, row) + } + } + } + inner class StatsTitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { 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 7d4f27d6..f2bcbf24 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 @@ -90,6 +90,7 @@ enum class SettingRow : RowRepresentable { get() { return when (this) { VERSION -> RowViewType.TITLE_VALUE.ordinal + FOLLOW_US -> RowViewType.FOLLOW_US.ordinal else -> RowViewType.TITLE_ARROW.ordinal } } diff --git a/app/src/main/java/net/pokeranalytics/android/util/Global.kt b/app/src/main/java/net/pokeranalytics/android/util/Global.kt index 4d98f7ce..e121a598 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Global.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Global.kt @@ -1,8 +1,17 @@ package net.pokeranalytics.android.util +val NULL_TEXT: String = "--" +// Support const val SUPPORT_EMAIL = "support@pokeranalytics.net" + +// Terms const val URL_PRIVACY_POLICY = "https://www.poker-analytics.net/privacypolicy.html" const val URL_TERMS = "https://www.poker-analytics.net/terms.html" -val NULL_TEXT: String = "--" +// Social Network +const val BLOG = "https://medium.com/poker-analytics" +const val INSTAGRAM = "https://www.instagram.com/pokeranalytics" +const val TWITTER = "https://twitter.com/paapptweet" +const val FACEBOOK = "https://www.facebook.com/171053452998758" + diff --git a/app/src/main/res/layout/row_follow_us.xml b/app/src/main/res/layout/row_follow_us.xml new file mode 100644 index 00000000..b8ad4830 --- /dev/null +++ b/app/src/main/res/layout/row_follow_us.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + \ No newline at end of file From f058174914dffc802fe19f11e65d382a42476488 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 15:35:03 +0100 Subject: [PATCH 07/11] Remove Transaction type --- .../android/ui/view/rowrepresentable/SettingRow.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 f2bcbf24..bfe74753 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 @@ -25,7 +25,6 @@ enum class SettingRow : RowRepresentable { GAME, LOCATION, TOURNAMENT_TYPE, - TRANSACTION_TYPE, // Terms PRIVACY_POLICY, @@ -55,7 +54,7 @@ enum class SettingRow : RowRepresentable { resId = R.string.data_management ) ) - rows.addAll(arrayListOf(BANKROLL, GAME, LOCATION, TOURNAMENT_TYPE, TRANSACTION_TYPE)) + rows.addAll(arrayListOf(BANKROLL, GAME, LOCATION, TOURNAMENT_TYPE)) rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.terms)) rows.addAll(arrayListOf(PRIVACY_POLICY, TERMS_OF_USE, GDPR)) @@ -102,7 +101,6 @@ enum class SettingRow : RowRepresentable { GAME -> LiveData.GAME LOCATION -> LiveData.LOCATION TOURNAMENT_TYPE -> LiveData.TOURNAMENT_TYPE - TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE else -> null } } From eb3dec4e6ba35d85fd7e11dc22bf96c720b3a53c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 15:35:13 +0100 Subject: [PATCH 08/11] Remove transaction type --- .../android/ui/fragment/EditableDataFragment.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 7fd60691..8642d0f1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -14,7 +14,10 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.interfaces.Identifiable import net.pokeranalytics.android.model.interfaces.Savable -import net.pokeranalytics.android.model.realm.* +import net.pokeranalytics.android.model.realm.Bankroll +import net.pokeranalytics.android.model.realm.Game +import net.pokeranalytics.android.model.realm.Location +import net.pokeranalytics.android.model.realm.TournamentType import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter @@ -144,14 +147,15 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, is Location -> R.string.location_empty_field_error is Game -> R.string.location_empty_field_error is TournamentType -> R.string.tt_empty_field_error - is TransactionType -> R.string.operation_type_empty_field_error - else -> R.string.empty_name_for_br_error + //is TransactionType -> R.string.operation_type_empty_field_error + else -> throw IllegalStateException("Need to manage ${item::class.java} error") } val builder = AlertDialog.Builder(requireContext()) .setMessage(message) .setNegativeButton(R.string.ok, null) builder.show() + } } From ce1d3eff8372db3f3397a40ecde22e4df71e02b4 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 5 Mar 2019 16:26:05 +0100 Subject: [PATCH 09/11] Clean style --- .../android/ui/fragment/HistoryFragment.kt | 8 ++++---- .../android/ui/fragment/StatsFragment.kt | 2 +- .../android/ui/view/RowViewType.kt | 19 ++++++++---------- .../HeaderRowRepresentable.kt | 4 ++-- .../ui/view/rowrepresentable/SettingRow.kt | 10 ++++----- .../res/drawable-xxhdpi/add_tournament.png | Bin 0 -> 1391 bytes .../main/res/drawable-xxhdpi/add_tournoi.png | Bin 2011 -> 0 bytes app/src/main/res/layout/fragment_history.xml | 6 +++--- ...ession_header.xml => row_header_title.xml} | 0 app/src/main/res/layout/row_session_view.xml | 2 +- .../main/res/layout/row_stats_title_value.xml | 3 +-- app/src/main/res/layout/row_title.xml | 2 +- app/src/main/res/layout/row_title_arrow.xml | 2 +- app/src/main/res/layout/row_title_value.xml | 2 +- .../res/layout/row_title_value_action.xml | 2 +- app/src/main/res/values/colors.xml | 2 +- app/src/main/res/values/styles.xml | 7 ++++--- 17 files changed, 34 insertions(+), 37 deletions(-) create mode 100644 app/src/main/res/drawable-xxhdpi/add_tournament.png delete mode 100644 app/src/main/res/drawable-xxhdpi/add_tournoi.png rename app/src/main/res/layout/{row_history_session_header.xml => row_header_title.xml} (100%) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt index aa692789..f13e6b38 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt @@ -127,7 +127,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource if (!calendar.isSameDay(currentCalendar) || index == 0) { calendar.time = currentCalendar.time val header = HeaderRowRepresentable( - customViewType = RowViewType.HEADER_SESSION, + customViewType = RowViewType.HEADER_TITLE, title = session.creationDate.longDate() ) rows.add(header) @@ -136,7 +136,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource if (!calendar.isSameMonth(currentCalendar) || index == 0) { calendar.time = currentCalendar.time val header = HeaderRowRepresentable( - customViewType = RowViewType.HEADER_SESSION, + customViewType = RowViewType.HEADER_TITLE, title = session.creationDate.getMonthAndYear() ) rows.add(header) @@ -165,8 +165,8 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource } override fun viewTypeForPosition(position: Int): Int { - return if (rows[position].viewType == RowViewType.HEADER_SESSION.ordinal) { - RowViewType.HEADER_SESSION.ordinal + return if (rows[position].viewType == RowViewType.HEADER_TITLE.ordinal) { + RowViewType.HEADER_TITLE.ordinal } else { RowViewType.ROW_SESSION.ordinal } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt index 918a1bce..6e9d00bf 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt @@ -141,7 +141,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc val rows: ArrayList = ArrayList() results.forEach { results -> - rows.add(HeaderRowRepresentable(RowViewType.TITLE, title = results.group.name)) + rows.add(HeaderRowRepresentable(title = results.group.name)) results.group.stats?.forEach { stat -> rows.add(StatRepresentable(stat, results.computedStat(stat))) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index 63273611..c95c2036 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -9,10 +9,10 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.row_bottom_sheet_grid_title.view.* import kotlinx.android.synthetic.main.row_bottom_sheet_title.view.* +import kotlinx.android.synthetic.main.row_header_title.view.* import kotlinx.android.synthetic.main.row_header_title_amount.view.* import kotlinx.android.synthetic.main.row_header_title_value.view.* import kotlinx.android.synthetic.main.row_history_session.view.* -import kotlinx.android.synthetic.main.row_history_session_header.view.* import kotlinx.android.synthetic.main.row_stats_title_value.view.* import kotlinx.android.synthetic.main.row_title.view.* import kotlinx.android.synthetic.main.row_title_switch.view.* @@ -29,19 +29,16 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentabl * An interface used to factor the configuration of RecyclerView.ViewHolder */ interface BindableHolder { - fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - } } enum class RowViewType { - HEADER, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG, - HEADER_SESSION, + HEADER_TITLE, EDIT_TEXT, TITLE, TITLE_ARROW, @@ -138,10 +135,10 @@ enum class RowViewType { false ) ) - HEADER_SESSION -> { + HEADER_TITLE -> { HeaderSessionViewHolder( LayoutInflater.from(parent.context).inflate( - R.layout.row_history_session_header, + R.layout.row_header_title, parent, false ) @@ -187,12 +184,12 @@ enum class RowViewType { BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.rowHeaderTitleValue_title.text = row.localizedTitle(itemView.context) - adapter.dataSource?.let { + adapter.dataSource.let { itemView.rowHeaderTitleValue_value.text = it.stringForRow(row, itemView.context) } -// val listener = View.OnClickListener { -// adapter.delegate?.onRowSelected(position, row) -// } + //val listener = View.OnClickListener { + // adapter.delegate?.onRowSelected(position, row) + //} //itemView.rowHeaderTitleValue_container.setOnClickListener(listener) itemView.rowHeaderTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/HeaderRowRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/HeaderRowRepresentable.kt index bec9dfe3..62f34061 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/HeaderRowRepresentable.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/HeaderRowRepresentable.kt @@ -8,7 +8,7 @@ import net.pokeranalytics.android.ui.view.RowViewType * A class to display headers as row representable */ class HeaderRowRepresentable( - var customViewType: RowViewType? = RowViewType.HEADER, + var customViewType: RowViewType? = RowViewType.HEADER_TITLE, override var resId: Int? = null, var title: String? = null, var value: String? = null @@ -26,6 +26,6 @@ class HeaderRowRepresentable( } - override val viewType: Int = customViewType?.ordinal ?: RowViewType.HEADER.ordinal + override val viewType: Int = customViewType?.ordinal ?: RowViewType.HEADER_TITLE.ordinal } 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 bfe74753..df23556a 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 @@ -39,24 +39,24 @@ enum class SettingRow : RowRepresentable { fun getRows(): ArrayList { val rows = ArrayList() - rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.information)) + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_TITLE, 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.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.follow_us)) rows.addAll(arrayListOf(FOLLOW_US)) - rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.preferences)) + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.preferences)) rows.addAll(arrayListOf(CURRENCY)) rows.add( HeaderRowRepresentable( - customViewType = RowViewType.HEADER_SESSION, + customViewType = RowViewType.HEADER_TITLE, resId = R.string.data_management ) ) rows.addAll(arrayListOf(BANKROLL, GAME, LOCATION, TOURNAMENT_TYPE)) - rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.terms)) + rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.terms)) rows.addAll(arrayListOf(PRIVACY_POLICY, TERMS_OF_USE, GDPR)) return rows diff --git a/app/src/main/res/drawable-xxhdpi/add_tournament.png b/app/src/main/res/drawable-xxhdpi/add_tournament.png new file mode 100644 index 0000000000000000000000000000000000000000..d2532d17568f0098e2a4f1f7605b296d474791ae GIT binary patch literal 1391 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm8Ax*9Z@d7c<^=eJxB_V@c`0dmX(&>V1_CKL zkch0TEL2cVT3SIGs1l(JC?YQn)F`PS3DPbHVoS?POUg-#D2srkz$VDa$-%WiL_l06 zs9hitusJd^G7!@sMnO%Jm%cpVF38cwB|(0{3F!Z*JVodu1TN z_P}0X(gxK;&gcjy?xn4HCHMZ{?X$`B&S4Fe+hO&oyz|LL`!h#e4iw59N1%Vn_pZGc za$VdX+9sX4x9)od zm$o@C3z(t(Z%L34-{oWZTV<|&y8o}ML_#g(SC8UG^`#r{6u7-*JA>d0x)wPsQD-lR0d?6D|M$TRQ*E0a^Ql_oh8xK6g&3r_Ri5+s`W7H;D0E zIcRD!Tg|ib!kWrej5!}I<=ZAKF?vz+F3Rk%A&>Ks*R8uzlP@^G%@f^Vs#b0vb=xP1f~S*gc#<=(7g8>R-nJ@@-iME9=VR8ONV8y@=Wrp;_X%y~b3;;)<=KapW4g68)$AlUU?)w=F!G zx^drvO!L#zRGaedmYKS4^fR43l||s;_0|kVUyZJ*3$p}Qo{yTq>9%KWRj{?^8n-o9 zeSem5C~Q%CDj1sVsk8r?XgS-)@}Rz33@?r^3^io4-li3ll$P!ubZ)|F;kflPe>xp% z`{CR_HP$uwL4O>B)v<8*DEDe z-?_L%;h8=|&CR1;3_3MQM_J0J{>?s~S1#0cP@_*?=3FUjp!v2`traXypB8<*^MCJ5 zi^Y3*wh3M{`}i~Vp#9$qThyPvZ{(ew`t^UGmh7W5e@wYE+wvB#vGIIQ`pagb^SG<;H{HF(&N?|Qe2t>Sp$#@ETkU#gZQ%qtiSEKic zX3H&|zQM`WMy*kG?u7QWiD##<-~F*+`ElmF_6;6Obwv9Tu10J=BQmX&>D}zZyUgG1 z{G51Sy?hCmUPNKH++ohT>C#PnGKQD`6mzEctg)9qb@r$8{lkjix9c1!aF_G95v%H- zDSh2JU8wN%(c`n`pW+umdKI;Vst0B62XjsO4v literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/add_tournoi.png b/app/src/main/res/drawable-xxhdpi/add_tournoi.png deleted file mode 100644 index f78065a3c6c9721757311ca606561eeacc35fd07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2011 zcmZ{ldpy&N8^^aX7GX9UtwW>9ZHbDULfevA7Zl~2OF7?AS? zx%IxTOEubQ-{ezMJ84%@@@OFJanuo;4Ia=q+=V!m!y9vMM4&T~L2~;ZlJfH2c=Hxv zZ9iBVe4&AcB(|K?RRu?FtOI;JP2Er?HqVT9Ah+T>U+eDRY5Dd~+CGROLE__NGb0o8 zUl9MZg-xpHojWPGgCP>S&wLR#|6)xY&cr&BX!7tIv zx6!UQMmq|18Wi#3{glqF>}&lWuXN1)$r9w{TCph^L}ikbcdC=#*PFAgesS^5m4RF3 z2<(s|7!F`NEMS?{lzuF|IE7|n3P$P{<$$=EoMy*9JH6J`{7t#JfDZ-ZZb~T+VLk-L zF0+(7YOeU+LeEz6$a>%#Q%VYrF=D>P*rD>#X2Hb$j{#VABN+fopb*0tBVRN|;7CQ4sQRcaKe^jpno&IN>&gkdZ>^fF+&24Rj-pg&8Ksv;H;h+}10${Cxr9XJi)i z9%s60f=^QYC?z9$TQ#=!(@4W{ue&&`B*scA9 zFK9~d&VE>eQ=iLS_=GEJc*ifLi^l?%#m%VkM0I1X`5r%X!Uq50T?q%p5vwbloA5+- z{iC6cCQ5g|gfidN^s0F}rs7WUHKA$`GmLTcYgU1skg(jM+k*Xa;j|ZQ@0fNxSy#IR z-`ye1Z6FH@%ZCL*!V5T^f2FKH>`VS(7uHHT;gx++AJ6H$K710DO%SL+aRaWZ}?i;d2MI{crULqV86iCD|luwDN z27hnqj9NJ#GQ+t0){swl?ps+GBl{%`g#u(tW$fDp+{e1v!>w&AIBBw{t~2wS$`8L9 zIwrrkc$Zyw_&1M|pN%O4t*$zaW}&iC() zylR};6D*jx7Wh3UDsz2aQX&Bv$Ei|yish5%9d(H6!m)yO&n;mkqK{{6>Kg`cs%T3a zj%s~fQu|;rY4hYMTrf-P8y(|`d78nsMyN4@79wQ~zdwuF*ghuYz_+cE;va#XFJw=& z-Ce|hA8oZ!?8$KGMC`LE>&xmy$LUwm_wt;Iy`|XqKRS8!%O{Hi+?I z+wC842VXP-9cAotBi0-uHv+<3dX)Bj&KT;#N*zSju^%VDwM|or#@e+M_f9;P1EaiZ zEbB8^GB6^#6BNw9N_!bJ?!|D4fFh>eossXsJ_OG(>(LhCNo#&g{m>1-QrVqzbv8iV zoJth6g*r#xYb5sc{hAyJ1>RcEX(+x*s_i%e?Q#s-{()H>xN_-EHcA91CKr=cE1qP~ zh@v;=rQ5F8kaY&mz`a91WXRz^jn2iuQ4mmX>-crA?7h!%jmI8CodF;@2!$Rt4~4K2 zH4Ofkv9QSA0;&=>T8LnVHABir@2`+k~NJptqcmdw=R{xz}wrgeC8m9J6&iGF=Ihj=AZs`pUlQxUXmLtag z0H2(>e%omJ)IqjH;gKv2M(F!z^6y2NrR^+lQeI{)PzRz&rx>0U_ldJ%GRw)()-3(?5YvzCa>$sMGBldSE&UiFM{?ms=4rJDc% diff --git a/app/src/main/res/layout/fragment_history.xml b/app/src/main/res/layout/fragment_history.xml index c5b1fb98..e4ab0748 100644 --- a/app/src/main/res/layout/fragment_history.xml +++ b/app/src/main/res/layout/fragment_history.xml @@ -82,7 +82,7 @@ android:layout_marginEnd="8dp" android:text="@string/new_cash_game" app:icon="@drawable/add_cash_game" - app:iconSize="32dp" + app:iconSize="28dp" app:layout_constraintEnd_toStartOf="@+id/newTournament" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_chainStyle="spread" @@ -99,8 +99,8 @@ android:layout_marginTop="8dp" android:layout_marginEnd="16dp" android:text="@string/new_tournament" - app:icon="@drawable/add_tournoi" - app:iconSize="32dp" + app:icon="@drawable/add_tournament" + app:iconSize="28dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/newCashGame" diff --git a/app/src/main/res/layout/row_history_session_header.xml b/app/src/main/res/layout/row_header_title.xml similarity index 100% rename from app/src/main/res/layout/row_history_session_header.xml rename to app/src/main/res/layout/row_header_title.xml diff --git a/app/src/main/res/layout/row_session_view.xml b/app/src/main/res/layout/row_session_view.xml index fcc7ed1e..67b08d7b 100644 --- a/app/src/main/res/layout/row_session_view.xml +++ b/app/src/main/res/layout/row_session_view.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="56dp" android:background="?selectableItemBackground"> - #FFFFFF #30FFFFFF - #6AFFFFFF + #8AFFFFFF #141414 #1B1F1B diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 6433b80d..3c1d7ae5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -111,7 +111,7 @@ @@ -200,8 +200,9 @@