Top 10 layout improvements

feature/top10
Laurent 6 years ago
parent f369dfd032
commit 9e1e2c1512
  1. 49
      app/src/main/java/net/pokeranalytics/android/ui/fragment/Top10Fragment.kt
  2. 18
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  3. 184
      app/src/main/res/layout/row_top_10.xml

@ -12,7 +12,6 @@ import io.realm.kotlin.where
import kotlinx.android.synthetic.main.fragment_feed.* import kotlinx.android.synthetic.main.fragment_feed.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.Transaction
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
@ -44,7 +43,7 @@ class Top10Fragment : RealmFragment(), RowRepresentableDataSource, RowRepresenta
private var currentTab: Tab = Tab.CASH_GAMES private var currentTab: Tab = Tab.CASH_GAMES
override val observedEntities: List<Class<out RealmModel>> = listOf(Session::class.java, Transaction::class.java) override val observedEntities: List<Class<out RealmModel>> = listOf(Session::class.java)
override fun entitiesChanged(clazz: Class<out RealmModel>) { override fun entitiesChanged(clazz: Class<out RealmModel>) {
super.entitiesChanged(clazz) super.entitiesChanged(clazz)
@ -66,6 +65,29 @@ class Top10Fragment : RealmFragment(), RowRepresentableDataSource, RowRepresenta
initData() initData()
} }
/**
* Init data
*/
private fun initData() {
this.realmCashGames = getRealm().where<Session>()
.equalTo("type", Session.Type.CASH_GAME.ordinal)
.greaterThanOrEqualTo("result.net", 0.0)
.sort("result.net", Sort.DESCENDING)
.limit(10)
.findAll()
this.realmTournaments = getRealm().where<Session>()
.equalTo("type", Session.Type.TOURNAMENT.ordinal)
.greaterThanOrEqualTo("result.net", 0.0)
.sort("result.net", Sort.DESCENDING)
.limit(10)
.findAll()
dataListAdapter = RowRepresentableAdapter(this, this)
recyclerView.adapter = dataListAdapter
}
override fun adapterRows(): List<RowRepresentable>? { override fun adapterRows(): List<RowRepresentable>? {
return when (currentTab) { return when (currentTab) {
Tab.CASH_GAMES -> realmCashGames Tab.CASH_GAMES -> realmCashGames
@ -128,27 +150,4 @@ class Top10Fragment : RealmFragment(), RowRepresentableDataSource, RowRepresenta
} }
/**
* Init data
*/
private fun initData() {
this.realmCashGames = getRealm().where<Session>()
.equalTo("type", Session.Type.CASH_GAME.ordinal)
.greaterThanOrEqualTo("result.net", 0.0)
.sort("result.net", Sort.DESCENDING)
.limit(10)
.findAll()
this.realmTournaments = getRealm().where<Session>()
.equalTo("type", Session.Type.TOURNAMENT.ordinal)
.greaterThanOrEqualTo("result.net", 0.0)
.sort("result.net", Sort.DESCENDING)
.limit(10)
.findAll()
dataListAdapter = RowRepresentableAdapter(this, this)
recyclerView.adapter = dataListAdapter
}
} }

@ -26,6 +26,7 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.ComputedStat import net.pokeranalytics.android.calculus.ComputedStat
import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.calculus.bankroll.BankrollReport import net.pokeranalytics.android.calculus.bankroll.BankrollReport
import net.pokeranalytics.android.model.TableSize
import net.pokeranalytics.android.model.extensions.getFormattedGameType import net.pokeranalytics.android.model.extensions.getFormattedGameType
import net.pokeranalytics.android.model.realm.CustomField import net.pokeranalytics.android.model.realm.CustomField
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
@ -116,7 +117,6 @@ enum class RowViewType(private var layoutRes: Int) {
// Row Transaction // Row Transaction
ROW_TOP_10 -> RowTop10ViewHolder(layout) ROW_TOP_10 -> RowTop10ViewHolder(layout)
// Row Button // Row Button
ROW_BUTTON -> RowButtonViewHolder(layout) ROW_BUTTON -> RowButtonViewHolder(layout)
@ -535,7 +535,7 @@ enum class RowViewType(private var layoutRes: Int) {
gameResult.setTextFormat(formattedStat, itemView.context) gameResult.setTextFormat(formattedStat, itemView.context)
} }
itemView.findViewById<AppCompatTextView>(R.id.top10ResultPart1)?.let { part1 -> itemView.findViewById<AppCompatTextView>(R.id.sessionGameType)?.let { part1 ->
part1.text = row.getFormattedGameType(itemView.context) part1.text = row.getFormattedGameType(itemView.context)
} }
@ -559,8 +559,20 @@ enum class RowViewType(private var layoutRes: Int) {
locationText?.isVisible = false locationText?.isVisible = false
} }
// Table Size
val tableSizeIcon = itemView.findViewById<AppCompatImageView?>(R.id.sessionInfoTableSizeIcon)
val tableSizeText = itemView.findViewById<AppCompatTextView?>(R.id.sessionInfoTableSize)
row.tableSize?.let {
tableSizeIcon?.isVisible = true
tableSizeText?.isVisible = true
tableSizeText?.text = TableSize(it).localizedTitle(itemView.context)
} ?: run {
tableSizeIcon?.isVisible = false
tableSizeText?.isVisible = false
}
itemView.findViewById<AppCompatTextView>(R.id.top10ResultPart3)?.let { part3 -> itemView.findViewById<AppCompatTextView>(R.id.sessionDate)?.let { part3 ->
part3.text = row.creationDate.longDate() part3.text = row.creationDate.longDate()
} }
} }

@ -21,121 +21,109 @@
tools:text="$ 1000" /> tools:text="$ 1000" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/top10ResultPart1" android:id="@+id/sessionDate"
style="@style/PokerAnalyticsTheme.TextView.Top10Row" style="@style/PokerAnalyticsTheme.TextView.Top10Row"
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="16dp"
android:layout_marginBottom="8dp"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@+id/gameResult"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:text="July 22th, 2019" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sessionGameType"
style="@style/PokerAnalyticsTheme.TextView.Top10Row"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:gravity="center" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/sessionDate"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gameResult" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="$300 NL Hold'em" /> tools:text="$300 NL Hold'em" />
<androidx.appcompat.widget.AppCompatImageView <LinearLayout
android:id="@+id/sessionInfoDurationIcon" android:layout_width="match_parent"
android:layout_width="20dp" android:layout_height="wrap_content"
android:layout_height="20dp" app:layout_constraintTop_toBottomOf="@+id/sessionGameType"
android:layout_marginStart="8dp"
android:src="@drawable/clock"
android:tint="@color/kaki_lighter"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sessionInfoDuration"
app:layout_constraintEnd_toStartOf="@+id/sessionInfoDuration"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/sessionInfoDuration" app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" /> android:gravity="center">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sessionInfoDuration" android:id="@+id/sessionInfoDurationIcon"
style="@style/PokerAnalyticsTheme.TextView.Top10Row" android:layout_width="20dp"
android:layout_width="wrap_content" android:layout_height="20dp"
android:layout_height="wrap_content" android:layout_marginStart="8dp"
android:layout_marginStart="8dp" android:src="@drawable/clock"
android:ellipsize="end" android:tint="@color/kaki_lighter"
android:maxLines="1" android:visibility="gone"
android:textColor="@color/kaki_lighter" tools:visibility="visible" />
app:layout_constraintBottom_toTopOf="@+id/top10ResultPart3"
app:layout_constraintEnd_toStartOf="@+id/sessionInfoLocationIcon"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toEndOf="@+id/sessionInfoDurationIcon"
app:layout_constraintTop_toBottomOf="@+id/top10ResultPart1"
tools:text="4:21"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sessionInfoLocationIcon" android:id="@+id/sessionInfoDuration"
android:layout_width="20dp" style="@style/PokerAnalyticsTheme.TextView.Top10Row"
android:layout_height="20dp" android:layout_width="wrap_content"
android:layout_marginStart="8dp" android:layout_height="wrap_content"
android:src="@drawable/pin" android:layout_marginStart="8dp"
android:tint="@color/kaki_lighter" android:ellipsize="end"
android:visibility="gone" android:maxLines="1"
app:layout_constraintBottom_toBottomOf="@+id/sessionInfoDuration" android:textColor="@color/kaki_lighter"
app:layout_constraintEnd_toStartOf="@+id/sessionInfoLocation" tools:text="4:21"
app:layout_constraintHorizontal_bias="0.5" tools:visibility="visible" />
app:layout_constraintStart_toEndOf="@+id/sessionInfoDuration"
app:layout_constraintTop_toTopOf="@+id/sessionInfoDuration"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sessionInfoLocationIcon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="8dp"
android:src="@drawable/pin"
android:tint="@color/kaki_lighter"
android:visibility="gone"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sessionInfoLocation" android:id="@+id/sessionInfoLocation"
style="@style/PokerAnalyticsTheme.TextView.Top10Row" style="@style/PokerAnalyticsTheme.TextView.Top10Row"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:textColor="@color/kaki_lighter" android:textColor="@color/kaki_lighter"
app:layout_constraintBottom_toTopOf="@+id/top10ResultPart3" tools:text="Rennes, France"
app:layout_constraintEnd_toEndOf="parent" tools:visibility="visible" />
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toEndOf="@+id/sessionInfoLocationIcon"
app:layout_constraintTop_toBottomOf="@+id/top10ResultPart1"
tools:text="Rennes, France"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sessionInfoTableSizeIcon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="8dp"
android:src="@drawable/info"
android:tint="@color/kaki_lighter"
android:visibility="gone"
tools:visibility="visible" />
<!-- <androidx.appcompat.widget.AppCompatTextView
<androidx.appcompat.widget.AppCompatTextView android:id="@+id/sessionInfoTableSize"
android:id="@+id/top10ResultPart2" style="@style/PokerAnalyticsTheme.TextView.Top10Row"
style="@style/PokerAnalyticsTheme.TextView.Top10Row" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_marginStart="8dp"
android:layout_marginStart="16dp" android:layout_marginEnd="8dp"
android:layout_marginEnd="16dp" android:ellipsize="end"
android:gravity="center" android:maxLines="1"
app:layout_constraintEnd_toEndOf="parent" android:textColor="@color/kaki_lighter"
app:layout_constraintHorizontal_bias="0.5" tools:text="Rennes, France"
app:layout_constraintStart_toStartOf="parent" tools:visibility="visible" />
app:layout_constraintTop_toBottomOf="@+id/top10ResultPart1"
app:layout_constraintVertical_chainStyle="packed"
tools:text="10:30 - Hollywood Park" /> -->
<androidx.appcompat.widget.AppCompatTextView </LinearLayout>
android:id="@+id/top10ResultPart3"
style="@style/PokerAnalyticsTheme.TextView.Top10Row"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/top10ResultPart2"
app:layout_constraintVertical_chainStyle="packed"
tools:text="July 22th, 2019" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save