From cdef5222d092f751b16854fc93a68575a0ee4407 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:06:39 +0100 Subject: [PATCH 1/7] Refactor URL management --- .../android/ui/fragment/SettingsFragment.kt | 18 ++++++++++-------- .../net/pokeranalytics/android/util/Global.kt | 11 ----------- .../net/pokeranalytics/android/util/URL.kt | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/util/URL.kt 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 113114b2..bf2cbf16 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 @@ -17,8 +17,10 @@ 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 -import net.pokeranalytics.android.util.* -import android.content.Intent +import net.pokeranalytics.android.util.URL +import net.pokeranalytics.android.util.openContactMail +import net.pokeranalytics.android.util.openPlayStorePage +import net.pokeranalytics.android.util.openUrl @@ -75,14 +77,14 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } SettingRow.FOLLOW_US -> { when(position) { - 0 -> parentActivity.openUrl(BLOG) - 1 -> parentActivity.openUrl(INSTAGRAM) - 2 -> parentActivity.openUrl(TWITTER) - 3 -> parentActivity.openUrl(FACEBOOK) + 0 -> parentActivity.openUrl(URL.BLOG.value) + 1 -> parentActivity.openUrl(URL.INSTAGRAM.value) + 2 -> parentActivity.openUrl(URL.TWITTER.value) + 3 -> parentActivity.openUrl(URL.FACEBOOK.value) } } - SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL_PRIVACY_POLICY) - SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL_TERMS) + SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL.PRIVACY_POLICY.value) + SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL.TERMS.value) SettingRow.GDPR -> Toast.makeText(requireContext(), "Show GDPR", Toast.LENGTH_SHORT).show() } 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 e121a598..6cf24b35 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Global.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Global.kt @@ -4,14 +4,3 @@ 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" - -// 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/java/net/pokeranalytics/android/util/URL.kt b/app/src/main/java/net/pokeranalytics/android/util/URL.kt new file mode 100644 index 00000000..bf2f8f01 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/util/URL.kt @@ -0,0 +1,19 @@ +package net.pokeranalytics.android.util + +/** + * URL enum + */ +enum class URL(var value: String) { + + // Terms + PRIVACY_POLICY("https://www.poker-analytics.net/privacypolicy.html"), + TERMS("https://www.poker-analytics.net/terms.html"), + + // Social Network + BLOG("https://medium.com/poker-analytics"), + INSTAGRAM("https://www.instagram.com/pokeranalytics"), + TWITTER("https://twitter.com/paapptweet"), + FACEBOOK("https://www.facebook.com/171053452998758") + +} + From ca07176c9f08c1de8e586b0059b95d11738be99c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:06:52 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Refactor=20default=20String=20value=20?= =?UTF-8?q?=E2=80=9C=E2=80=94=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/model/realm/Session.kt | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) 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 a93e0cc1..eaea5c5e 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 @@ -214,7 +214,7 @@ open class Session : RealmObject(), SessionInterface, Savable, * Return the formatted blinds */ fun getBlinds(): String { - return if (cgSmallBlind == null) "--" else "${cgSmallBlind?.toCurrency()}/${cgBigBlind?.round()}" + return if (cgSmallBlind == null) NULL_TEXT else "${cgSmallBlind?.toCurrency()}/${cgBigBlind?.round()}" } /** @@ -228,7 +228,7 @@ open class Session : RealmObject(), SessionInterface, Savable, if (game != null) { gameTitle += game?.name } - return if (gameTitle.isNotBlank()) gameTitle else "--" + return if (gameTitle.isNotBlank()) gameTitle else NULL_TEXT } @@ -383,23 +383,23 @@ open class Session : RealmObject(), SessionInterface, Savable, override fun stringForRow(row: RowRepresentable, context: Context): String { return when (row) { - SessionRow.BANKROLL -> bankroll?.name ?: "--" + SessionRow.BANKROLL -> bankroll?.name ?: NULL_TEXT SessionRow.BLINDS -> getBlinds() - SessionRow.BREAK_TIME -> timeFrame?.breakDuration?.toMinutes() ?: "--" + SessionRow.BREAK_TIME -> timeFrame?.breakDuration?.toMinutes() ?: NULL_TEXT SessionRow.BUY_IN -> buyin.toCurrency() - SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> result?.cashout?.toCurrency() ?: "--" - SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--" - SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: "--" else "--" + SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> result?.cashout?.toCurrency() ?: NULL_TEXT + SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else NULL_TEXT + SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: NULL_TEXT else NULL_TEXT SessionRow.GAME -> getGameTitle() - SessionRow.INITIAL_BUY_IN -> tournamentEntryFee?.toCurrency() ?: "--" - SessionRow.LOCATION -> location?.name ?: "--" - SessionRow.PLAYERS -> tournamentNumberOfPlayers?.toString() ?: "--" - SessionRow.POSITION -> result?.tournamentFinalPosition?.toString() ?: "--" - SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: "--" else "--" - SessionRow.TABLE_SIZE -> this.tableSize?.let { TableSize(it).localizedTitle(context) } ?: "--" - SessionRow.TIPS -> result?.tips?.toCurrency() ?: "--" - SessionRow.TOURNAMENT_TYPE -> tournamentType?.name ?: "--" - else -> "--" + SessionRow.INITIAL_BUY_IN -> tournamentEntryFee?.toCurrency() ?: NULL_TEXT + SessionRow.LOCATION -> location?.name ?: NULL_TEXT + SessionRow.PLAYERS -> tournamentNumberOfPlayers?.toString() ?: NULL_TEXT + SessionRow.POSITION -> result?.tournamentFinalPosition?.toString() ?: NULL_TEXT + SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: NULL_TEXT else NULL_TEXT + SessionRow.TABLE_SIZE -> this.tableSize?.let { TableSize(it).localizedTitle(context) } ?: NULL_TEXT + SessionRow.TIPS -> result?.tips?.toCurrency() ?: NULL_TEXT + SessionRow.TOURNAMENT_TYPE -> tournamentType?.name ?: NULL_TEXT + else -> NULL_TEXT } } From 5bc8f2a54c67708be85d93914d5acfd843531513 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:13:40 +0100 Subject: [PATCH 3/7] Move SUPPORT_EMAIL --- app/src/main/java/net/pokeranalytics/android/util/Global.kt | 3 --- .../java/net/pokeranalytics/android/util/UIExtensions.kt | 4 ++-- app/src/main/java/net/pokeranalytics/android/util/URL.kt | 6 +++++- 3 files changed, 7 insertions(+), 6 deletions(-) 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 6cf24b35..978e6109 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Global.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Global.kt @@ -1,6 +1,3 @@ package net.pokeranalytics.android.util val NULL_TEXT: String = "--" - -// Support -const val SUPPORT_EMAIL = "support@pokeranalytics.net" diff --git a/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt b/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt index 75c6e355..149449c1 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt @@ -57,8 +57,8 @@ fun PokerAnalyticsActivity.openPlayStorePage() { fun PokerAnalyticsActivity.openContactMail() { val info = "v${BuildConfig.VERSION_NAME}(${BuildConfig.VERSION_CODE}), Android ${android.os.Build.VERSION.SDK_INT}" val intent = Intent(Intent.ACTION_SENDTO) - intent.data = Uri.parse("mailto:$SUPPORT_EMAIL") - intent.putExtra(Intent.EXTRA_EMAIL, SUPPORT_EMAIL) + intent.data = Uri.parse("mailto:${URL.SUPPORT_EMAIL.value}") + intent.putExtra(Intent.EXTRA_EMAIL, URL.SUPPORT_EMAIL.value) intent.putExtra(Intent.EXTRA_TEXT, "\n\n$info") startActivity(Intent.createChooser(intent, getString(R.string.contact))) } diff --git a/app/src/main/java/net/pokeranalytics/android/util/URL.kt b/app/src/main/java/net/pokeranalytics/android/util/URL.kt index bf2f8f01..9e46339c 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/URL.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/URL.kt @@ -13,7 +13,11 @@ enum class URL(var value: String) { BLOG("https://medium.com/poker-analytics"), INSTAGRAM("https://www.instagram.com/pokeranalytics"), TWITTER("https://twitter.com/paapptweet"), - FACEBOOK("https://www.facebook.com/171053452998758") + FACEBOOK("https://www.facebook.com/171053452998758"), + + // Support + SUPPORT_EMAIL("support@pokeranalytics.net") + } From 6bba7b510d471965692a3104444c032150f8eb8c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:22:05 +0100 Subject: [PATCH 4/7] Fix switch management for classic row --- .../android/ui/view/RowViewType.kt | 22 ++++++++++++++----- app/src/main/res/layout/row_title_switch.xml | 16 +++++++------- 2 files changed, 25 insertions(+), 13 deletions(-) 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 8c8b909f..71a51568 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 @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView +import androidx.appcompat.widget.SwitchCompat import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.row_history_session.view.* @@ -15,6 +16,7 @@ import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable +import timber.log.Timber /** * An interface used to factor the configuration of RecyclerView.ViewHolder @@ -64,9 +66,7 @@ enum class RowViewType(private var layoutRes: Int) { return when (this) { // Header Row View Holder - HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG -> { - HeaderViewHolder(layout) - } + HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG -> HeaderViewHolder(layout) // Row View Holder TITLE, TITLE_VALUE, TITLE_ARROW, TITLE_GRID, TITLE_SWITCH, DATA, BOTTOM_SHEET_DATA -> RowViewHolder(layout) @@ -141,9 +141,22 @@ enum class RowViewType(private var layoutRes: Int) { it.text = adapter.dataSource.stringForRow(row, itemView.context) } + // Switch + itemView.findViewById(R.id.switchView)?.let { + it.isChecked = adapter.dataSource.boolForRow(row) + it.setOnCheckedChangeListener { _, isChecked -> + Timber.d("Manage switch: $isChecked") + adapter.delegate?.onRowValueChanged(isChecked, row) + } + } + // Listener val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) + itemView.findViewById(R.id.switchView)?.let { + it.isChecked = !it.isChecked + } ?: run { + adapter.delegate?.onRowSelected(position, row) + } } itemView.findViewById(R.id.container)?.let { @@ -216,7 +229,6 @@ enum class RowViewType(private var layoutRes: Int) { } } - /** * Display a separator */ diff --git a/app/src/main/res/layout/row_title_switch.xml b/app/src/main/res/layout/row_title_switch.xml index c22b36aa..96292579 100644 --- a/app/src/main/res/layout/row_title_switch.xml +++ b/app/src/main/res/layout/row_title_switch.xml @@ -22,6 +22,14 @@ app:layout_constraintVertical_bias="0.0" tools:text="Data Type Title" /> + + - - \ No newline at end of file From 71f06f74c068908849d8e85eb3d8b6f5fb275af1 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:48:28 +0100 Subject: [PATCH 5/7] Refactor Stat management for Header Row --- .../android/model/realm/Session.kt | 17 +++++++++++------ .../android/ui/view/RowViewType.kt | 19 ++++++------------- .../HeaderRowRepresentable.kt | 13 ++++++++----- 3 files changed, 25 insertions(+), 24 deletions(-) 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 eaea5c5e..0b2e9e8b 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 @@ -9,7 +9,9 @@ import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import io.realm.kotlin.where import net.pokeranalytics.android.R +import net.pokeranalytics.android.calculus.ComputedStat import net.pokeranalytics.android.calculus.SessionInterface +import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.TableSize @@ -345,14 +347,15 @@ open class Session : RealmObject(), SessionInterface, Savable, rows.add( HeaderRowRepresentable( RowViewType.HEADER_TITLE_AMOUNT_BIG, - title = getDuration(), value = result?.net.toString() + title = getDuration(), + computedStat = ComputedStat(Stat.NETRESULT, result?.net ?: 0.0) ) ) rows.add( HeaderRowRepresentable( RowViewType.HEADER_TITLE_AMOUNT, resId = R.string.hour_rate_without_pauses, - value = this.sessionSet?.hourlyRate.toString() + computedStat = ComputedStat(Stat.NETRESULT, this.sessionSet?.hourlyRate ?: 0.0) ) ) @@ -361,7 +364,7 @@ open class Session : RealmObject(), SessionInterface, Savable, HeaderRowRepresentable( RowViewType.HEADER_TITLE_VALUE, resId = R.string.bankroll_variation, - value = result?.net.toString() + computedStat = ComputedStat(Stat.HOURLY_RATE, 0.0) ) ) } @@ -389,13 +392,15 @@ open class Session : RealmObject(), SessionInterface, Savable, SessionRow.BUY_IN -> buyin.toCurrency() SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> result?.cashout?.toCurrency() ?: NULL_TEXT SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else NULL_TEXT - SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() ?: NULL_TEXT else NULL_TEXT + SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.shortDateTime() + ?: NULL_TEXT else NULL_TEXT SessionRow.GAME -> getGameTitle() SessionRow.INITIAL_BUY_IN -> tournamentEntryFee?.toCurrency() ?: NULL_TEXT SessionRow.LOCATION -> location?.name ?: NULL_TEXT SessionRow.PLAYERS -> tournamentNumberOfPlayers?.toString() ?: NULL_TEXT SessionRow.POSITION -> result?.tournamentFinalPosition?.toString() ?: NULL_TEXT - SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() ?: NULL_TEXT else NULL_TEXT + SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.shortDateTime() + ?: NULL_TEXT else NULL_TEXT SessionRow.TABLE_SIZE -> this.tableSize?.let { TableSize(it).localizedTitle(context) } ?: NULL_TEXT SessionRow.TIPS -> result?.tips?.toCurrency() ?: NULL_TEXT SessionRow.TOURNAMENT_TYPE -> tournamentType?.name ?: NULL_TEXT @@ -578,7 +583,7 @@ open class Session : RealmObject(), SessionInterface, Savable, if (value == null) { localResult.cashout = null } else { - localResult.cashout = (value as String).toDouble() + localResult.cashout = (value as String).toDouble() val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java) timeFrameToUpdate.setEnd(Date()) 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 71a51568..1e5bba6d 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 @@ -11,12 +11,9 @@ import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.row_history_session.view.* import kotlinx.android.synthetic.main.row_stats_title_value.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.calculus.ComputedStat -import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable -import timber.log.Timber /** * An interface used to factor the configuration of RecyclerView.ViewHolder @@ -106,16 +103,13 @@ enum class RowViewType(private var layoutRes: Int) { // Value itemView.findViewById(R.id.value)?.let { - val value = try { - row.value?.toDouble() ?: 0.0 - } catch (e: Exception) { - 0.0 + if (row.computedStat != null) { + val format = row.computedStat!!.format(itemView.context) + it.setTextColor(format.getColor(itemView.context)) + it.text = format.text + } else if (row.value != null) { + it.text = row.value } - - //TODO: Manage multiple stat type - val stat = ComputedStat(Stat.NETRESULT, value) - it.textFormat = stat.format(itemView.context) - //it.text = adapter.dataSource.stringForRow(row, itemView.context) } } } @@ -145,7 +139,6 @@ enum class RowViewType(private var layoutRes: Int) { itemView.findViewById(R.id.switchView)?.let { it.isChecked = adapter.dataSource.boolForRow(row) it.setOnCheckedChangeListener { _, isChecked -> - Timber.d("Manage switch: $isChecked") adapter.delegate?.onRowValueChanged(isChecked, row) } } 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 62f34061..94e274a5 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 @@ -1,6 +1,7 @@ package net.pokeranalytics.android.ui.view.rowrepresentable import android.content.Context +import net.pokeranalytics.android.calculus.ComputedStat import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType @@ -8,11 +9,12 @@ import net.pokeranalytics.android.ui.view.RowViewType * A class to display headers as row representable */ class HeaderRowRepresentable( - var customViewType: RowViewType? = RowViewType.HEADER_TITLE, - override var resId: Int? = null, - var title: String? = null, - var value: String? = null -) : RowRepresentable { + var customViewType: RowViewType? = RowViewType.HEADER_TITLE, + override var resId: Int? = null, + var title: String? = null, + var value: String? = null, + var computedStat: ComputedStat? = null + ) : RowRepresentable { override fun localizedTitle(context: Context): String { @@ -26,6 +28,7 @@ class HeaderRowRepresentable( } + override val viewType: Int = customViewType?.ordinal ?: RowViewType.HEADER_TITLE.ordinal } From 7715d421f6b5a82f6542b0ba11003bded2c938e8 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 10:53:03 +0100 Subject: [PATCH 6/7] Remove unnecessary FormattedTextView & clean code --- .../android/ui/view/FormattedTextView.kt | 47 ------------------- .../android/ui/view/RowViewType.kt | 4 +- .../android/ui/view/SessionRowView.kt | 5 +- .../res/layout/row_header_title_amount.xml | 2 +- .../layout/row_header_title_amount_big.xml | 2 +- .../res/layout/row_header_title_value.xml | 2 +- app/src/main/res/layout/row_session_view.xml | 7 ++- app/src/main/res/values/attrs.xml | 7 --- 8 files changed, 11 insertions(+), 65 deletions(-) delete mode 100644 app/src/main/java/net/pokeranalytics/android/ui/view/FormattedTextView.kt delete mode 100644 app/src/main/res/values/attrs.xml diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/FormattedTextView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/FormattedTextView.kt deleted file mode 100644 index 831fd19b..00000000 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/FormattedTextView.kt +++ /dev/null @@ -1,47 +0,0 @@ -package net.pokeranalytics.android.ui.view - -import android.content.Context -import android.util.AttributeSet -import androidx.appcompat.widget.AppCompatTextView -import net.pokeranalytics.android.calculus.TextFormat - -/** - * Extended TextView to display a TextFormat object - */ -class FormattedTextView: AppCompatTextView { - - var textFormat: TextFormat? = null - set(value) { - field = value - updateUI() - } - - constructor(context: Context?) : super(context) { - init(null) - } - - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { - init(attrs) - } - - constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { - init(attrs) - } - - /** - * Init class - */ - private fun init(attrs: AttributeSet?) { - } - - /** - * Update the UI to manage currency format & color management - */ - private fun updateUI() { - textFormat?.let { - setTextColor(it.getColor(context)) - text = it.text - } - } - -} \ No newline at end of file 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 1e5bba6d..179cd30a 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 @@ -83,7 +83,7 @@ enum class RowViewType(private var layoutRes: Int) { // Separator SEPARATOR -> SeparatorViewHolder(layout) - else -> throw Exception("Undefined rowViewType's holder") + //else -> throw Exception("Undefined rowViewType's holder") } } @@ -102,7 +102,7 @@ enum class RowViewType(private var layoutRes: Int) { } // Value - itemView.findViewById(R.id.value)?.let { + itemView.findViewById(R.id.value)?.let { if (row.computedStat != null) { val format = row.computedStat!!.format(itemView.context) it.setTextColor(format.getColor(itemView.context)) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt index f3b84f00..65549184 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt @@ -134,8 +134,9 @@ class SessionRowView : FrameLayout { rowHistorySession.infoTitle.isVisible = false val result = session.result?.net ?: 0.0 - val stat = ComputedStat(Stat.NETRESULT, result) - rowHistorySession.gameResult.textFormat = stat.format(context) + val formattedStat = ComputedStat(Stat.NETRESULT, result).format(context) + rowHistorySession.gameResult.setTextColor(formattedStat.getColor(context)) + rowHistorySession.gameResult.text = formattedStat.text } } diff --git a/app/src/main/res/layout/row_header_title_amount.xml b/app/src/main/res/layout/row_header_title_amount.xml index 34e505c7..59326e1f 100644 --- a/app/src/main/res/layout/row_header_title_amount.xml +++ b/app/src/main/res/layout/row_header_title_amount.xml @@ -24,7 +24,7 @@ app:layout_constraintTop_toTopOf="parent" tools:text="Title" /> - - - - + tools:visibility="visible" + tools:text="$ 1000"/> - - - - - - \ No newline at end of file From 13ce34a3bd89b641c32e18e1bfa6a01cd239e08a Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Wed, 6 Mar 2019 11:10:56 +0100 Subject: [PATCH 7/7] Comment bankroll variation (for v2) --- .../java/net/pokeranalytics/android/model/realm/Session.kt | 3 +++ 1 file changed, 3 insertions(+) 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 0b2e9e8b..59bf055e 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 @@ -359,6 +359,8 @@ open class Session : RealmObject(), SessionInterface, Savable, ) ) + //TODO V2: Add Bankroll variation + /* if (!isTournament()) { rows.add( HeaderRowRepresentable( @@ -368,6 +370,7 @@ open class Session : RealmObject(), SessionInterface, Savable, ) ) } + */ rows.add(SeparatorRowRepresentable()) }