Improve Stats display

feature/top10
Aurelien Hubert 7 years ago
parent 0c7c58a0db
commit 97922b3a48
  1. 20
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  2. 54
      app/src/main/res/layout/row_stats_title_value.xml
  3. 21
      app/src/main/res/values/styles.xml

@ -10,6 +10,7 @@ import kotlinx.android.synthetic.main.row_bottom_sheet_title.view.*
import kotlinx.android.synthetic.main.row_header_title_amount.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_header_title_value.view.*
import kotlinx.android.synthetic.main.row_history_session.view.* import kotlinx.android.synthetic.main.row_history_session.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.view.*
import kotlinx.android.synthetic.main.row_title_switch.view.* import kotlinx.android.synthetic.main.row_title_switch.view.*
import kotlinx.android.synthetic.main.row_title_value.view.* import kotlinx.android.synthetic.main.row_title_value.view.*
@ -127,9 +128,9 @@ enum class RowViewType {
parent, parent,
false) false)
) )
STAT -> TitleValueViewHolder( STAT -> StatsTitleValueViewHolder(
LayoutInflater.from(parent.context).inflate( LayoutInflater.from(parent.context).inflate(
R.layout.row_stat, R.layout.row_stats_title_value,
parent, parent,
false false
) )
@ -202,6 +203,21 @@ enum class RowViewType {
} }
} }
inner class StatsTitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView),
BindableHolder {
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) {
itemView.rowStatsTitleValue_title.text = row.localizedTitle(itemView.context)
adapter.dataSource?.let {
itemView.rowStatsTitleValue_value.text = it.stringForRow(row, itemView.context)
}
val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row)
}
itemView.rowStatsTitleValue_container.setOnClickListener(listener)
itemView.rowStatsTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE
}
}
inner class TitleGridSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { inner class TitleGridSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder {
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) {
itemView.title.text = row.localizedTitle(itemView.context) itemView.title.text = row.localizedTitle(itemView.context)

@ -2,10 +2,10 @@
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" <androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rowTitleValue.container" android:id="@+id/rowStatsTitleValue.container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -13,31 +13,41 @@
android:background="?selectableItemBackground"> android:background="?selectableItemBackground">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/rowTitleValue.title" android:id="@+id/rowStatsTitleValue.title"
style="@style/PokerAnalyticsTheme.TextView.RowTitle" style="@style/PokerAnalyticsTheme.TextView.RowStatsTitle"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="8dp"
android:layout_marginBottom="16dp" android:layout_marginEnd="8dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/nextArrow"
app:layout_constraintStart_toStartOf="@+id/guidelineStart" app:layout_constraintStart_toStartOf="@+id/guidelineStart"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="Title" /> tools:text="Title" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/rowTitleValue.value" android:id="@+id/rowStatsTitleValue.value"
style="@style/PokerAnalyticsTheme.TextView.RowValue" style="@style/PokerAnalyticsTheme.TextView.RowStatsValue"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginEnd="8dp"
android:ellipsize="end" android:layout_marginBottom="8dp"
android:gravity="end" android:paddingTop="-8dp"
android:maxLines="1" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/nextArrow"
app:layout_constraintEnd_toEndOf="@+id/guidelineEnd" app:layout_constraintStart_toStartOf="@+id/guidelineStart"
app:layout_constraintStart_toEndOf="@+id/rowTitleValue.title" app:layout_constraintTop_toBottomOf="@+id/rowStatsTitleValue.title"
app:layout_constraintTop_toTopOf="parent" tools:text="Value" />
tools:text="Value" app:layout_constraintHorizontal_bias="1.0"/>
<ImageView
android:id="@+id/nextArrow"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_arrow_right"
android:tint="@color/gray_light"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/guidelineEnd"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guidelineStart" android:id="@+id/guidelineStart"
@ -56,7 +66,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout <FrameLayout
android:id="@+id/rowTitleValue.separator" android:id="@+id/rowStatsTitleValue.separator"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="16dp" android:layout_height="16dp"
android:visibility="gone" android:visibility="gone"

@ -89,12 +89,33 @@
<item name="android:textSize">16sp</item> <item name="android:textSize">16sp</item>
<item name="android:textColor">@color/white</item> <item name="android:textColor">@color/white</item>
<item name="android:fontFamily">@font/roboto</item> <item name="android:fontFamily">@font/roboto</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
</style> </style>
<style name="PokerAnalyticsTheme.TextView.RowValue"> <style name="PokerAnalyticsTheme.TextView.RowValue">
<item name="android:textSize">16sp</item> <item name="android:textSize">16sp</item>
<item name="android:textColor">@color/kaki_lighter</item> <item name="android:textColor">@color/kaki_lighter</item>
<item name="android:fontFamily">@font/roboto</item> <item name="android:fontFamily">@font/roboto</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
</style>
<style name="PokerAnalyticsTheme.TextView.RowStatsTitle">
<item name="android:textSize">12sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:fontFamily">@font/roboto_light</item>
<item name="android:textAllCaps">true</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
</style>
<style name="PokerAnalyticsTheme.TextView.RowStatsValue">
<item name="android:textSize">24sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:fontFamily">@font/roboto_light</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
</style> </style>
<!-- Bottom Sheet --> <!-- Bottom Sheet -->

Loading…
Cancel
Save