Improvements

blinds
Laurent 3 years ago
parent f48683d683
commit 687423fb3e
  1. 3
      app/src/main/AndroidManifest.xml
  2. 21
      app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt
  3. 69
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStakesFragment.kt
  4. 3
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/views/RowHandHistoryViewHolder.kt
  5. 17
      app/src/main/res/layout/bottom_sheet_stakes.xml
  6. 77
      app/src/main/res/layout/view_keyboard_stakes.xml
  7. 26
      app/src/main/res/values/styles.xml

@ -60,8 +60,7 @@
<activity <activity
android:name="net.pokeranalytics.android.ui.modules.session.SessionActivity" android:name="net.pokeranalytics.android.ui.modules.session.SessionActivity"
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait" />
android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
<!-- No screenOrientation="portrait" to fix Oreo crash --> <!-- No screenOrientation="portrait" to fix Oreo crash -->
<activity <activity

@ -211,18 +211,21 @@ open class HandHistory : RealmObject(), Deletable, RowRepresentable, Filterable,
this.actions.clear() this.actions.clear()
this.blindValues.forEachIndexed { index, blind -> val blindValues = this.blindValues
val action = when(index) { if (blindValues.isNotEmpty()) {
0 -> Action.Type.POST_SB blindValues.forEachIndexed { index, blind ->
1 -> Action.Type.POST_BB val action = when(index) {
else -> Action.Type.STRADDLE 0 -> Action.Type.POST_SB
1 -> Action.Type.POST_BB
else -> Action.Type.STRADDLE
}
this.addAction(index, action, blind)
} }
this.addAction(index, action, blind) } else {
this.addAction(0, Action.Type.POST_SB, this.oldSmallBlind)
this.addAction(1, Action.Type.POST_BB, this.oldBigBlind)
} }
// this.addAction(0, Action.Type.POST_SB, this.smallBlind)
// this.addAction(1, Action.Type.POST_BB, this.bigBlind)
// var lastStraddler: Int? = null // var lastStraddler: Int? = null
val positions = Position.positionsPerPlayers(this.numberOfPlayers) val positions = Position.positionsPerPlayers(this.numberOfPlayers)

@ -1,16 +1,19 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.text.InputType import android.text.InputType
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import net.pokeranalytics.android.databinding.BottomSheetStakesBinding import net.pokeranalytics.android.databinding.BottomSheetStakesBinding
import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
class BottomSheetStakesFragment : BottomSheetFragment() { class BottomSheetStakesFragment : BottomSheetFragment() {
private var _binding: BottomSheetStakesBinding? = null private var _binding: BottomSheetStakesBinding? = null
@ -36,9 +39,17 @@ class BottomSheetStakesFragment : BottomSheetFragment() {
super.onStart() super.onStart()
// binding.editText2.setTextIsSelectable(true) // binding.editText2.setTextIsSelectable(true)
// binding.editText2.isFocusableInTouchMode = false
binding.editText2.requestFocus() // binding.editText2.isFocusableInTouchMode = true
// binding.editText2.requestFocus()
//
// val mgr: InputMethodManager? =
// requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager?
// mgr?.hideSoftInputFromWindow(binding.editText2.windowToken, InputMethodManager.SHOW_FORCED)
// binding.editText2.findFocus()
} }
@ -49,6 +60,15 @@ class BottomSheetStakesFragment : BottomSheetFragment() {
// this.viewModel.isEditingBlinds = this.viewModel.row == SessionRow.BLINDS // this.viewModel.isEditingBlinds = this.viewModel.row == SessionRow.BLINDS
} }
private fun focusBlindsAndHideKeyboard() {
binding.blindsEditText.requestFocus()
val mgr: InputMethodManager? =
requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager?
mgr?.hideSoftInputFromWindow(binding.blindsEditText.windowToken, InputMethodManager.SHOW_FORCED)
}
/** /**
* Init UI * Init UI
*/ */
@ -59,47 +79,66 @@ class BottomSheetStakesFragment : BottomSheetFragment() {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
data[0].hintResId?.let { binding.editText.hint = getString(it) } data[0].hintResId?.let { binding.anteEditText.hint = getString(it) }
binding.editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES binding.anteEditText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
data[1].hintResId?.let { binding.editText2.hint = getString(it) } data[1].hintResId?.let { binding.blindsEditText.hint = getString(it) }
// binding.editText2.setRawInputType(InputType.TYPE_CLASS_TEXT) //= InputType.TYPE_NULL // data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES // binding.editText2.setRawInputType(InputType.TYPE_CLASS_TEXT) //= InputType.TYPE_NULL // data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
// binding.editText2.inputType = InputType.TYPE_NULL // binding.editText2.inputType = InputType.TYPE_NULL
// binding.editText2.setTextIsSelectable(false) // binding.editText2.setTextIsSelectable(false)
// editText.setTextIsSelectable(true) // editText.setTextIsSelectable(true)
binding.editText2.setRawInputType(InputType.TYPE_CLASS_TEXT) // binding.editText2.isFocusableInTouchMode = false
binding.editText2.setTextIsSelectable(true) binding.blindsEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER)
binding.editText2.showSoftInputOnFocus = false // binding.editText2.setTextIsSelectable(true)
binding.blindsEditText.showSoftInputOnFocus = false
binding.blindsEditText.setOnTouchListener { view, motionEvent ->
this.focusBlindsAndHideKeyboard()
// binding.editText2.requestFocus()
//
// val mgr: InputMethodManager? =
// requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager?
// mgr?.hideSoftInputFromWindow(binding.editText2.windowToken, InputMethodManager.SHOW_FORCED)
return@setOnTouchListener true
binding.editText2.onCreateInputConnection(EditorInfo())?.let { }
// binding.editText2.requestFocus()
binding.blindsEditText.onCreateInputConnection(EditorInfo())?.let {
binding.stakesKeyboard.inputConnection = it binding.stakesKeyboard.inputConnection = it
} ?: throw PAIllegalStateException("No connection for editText") } ?: throw PAIllegalStateException("No connection for editText")
if (this.model.valueAsHint) { if (this.model.valueAsHint) {
this.model.stringValue?.let { this.model.stringValue?.let {
if (it.isNotBlank()) { if (it.isNotBlank()) {
binding.editText.hint = it binding.anteEditText.hint = it
} }
} }
this.model.secondStringValue?.let { this.model.secondStringValue?.let {
if (it.isNotBlank()) { if (it.isNotBlank()) {
binding.editText2.hint = it binding.blindsEditText.hint = it
} }
} }
// if (this.viewModel.stringValue?.isNotBlank()) { editText.hint = values[0] } // if (this.viewModel.stringValue?.isNotBlank()) { editText.hint = values[0] }
// if (values[1].isNotBlank()) { editText2.hint = values[1] } // if (values[1].isNotBlank()) { editText2.hint = values[1] }
} else { } else {
binding.editText.setText(this.model.stringValue) binding.anteEditText.setText(this.model.stringValue)
binding.editText2.setText(this.model.secondStringValue) binding.blindsEditText.setText(this.model.secondStringValue)
} }
binding.editText.addTextChangedListener { binding.anteEditText.addTextChangedListener {
this.model.stringValue = it?.toString() this.model.stringValue = it?.toString()
} }
binding.editText2.addTextChangedListener { binding.blindsEditText.addTextChangedListener {
this.model.secondStringValue = it?.toString() this.model.secondStringValue = it?.toString()
} }

@ -35,8 +35,7 @@ class RowHandHistoryViewHolder(itemView: View) : RecyclerView.ViewHolder(itemVie
val amount = itemView.findViewById<TextView>(R.id.amount) val amount = itemView.findViewById<TextView>(R.id.amount)
amount.text = handHistory.potSizeForStreet(Street.SUMMARY).formatted amount.text = handHistory.potSizeForStreet(Street.SUMMARY).formatted
val heroWins = handHistory.heroWins val colorId = when(handHistory.heroWins) {
val colorId = when(heroWins) {
true -> R.color.green true -> R.color.green
false -> R.color.red false -> R.color.red
else -> R.color.kaki_light else -> R.color.kaki_light

@ -16,7 +16,7 @@
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/editText" android:id="@+id/blindsEditText"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
@ -24,32 +24,33 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:gravity="center" android:gravity="center"
android:imeOptions="actionNext"
android:lines="1" android:lines="1"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/editText2" app:layout_constraintEnd_toStartOf="@id/anteEditText"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="10" /> app:layout_constraintVertical_bias="0.0"
tools:text="20" />
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/editText2" android:id="@+id/anteEditText"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:gravity="center" android:gravity="center"
android:imeOptions="actionNext"
android:lines="1" android:lines="1"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/editText" app:layout_constraintStart_toEndOf="@id/blindsEditText"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" tools:text="10" />
tools:text="20" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

@ -1,42 +1,43 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent"
android:layout_height="216dp" android:layout_height="216dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal" android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<!-- use 0dp and layout weight -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_1" android:id="@+id/value_1"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp" android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_4" android:id="@+id/value_4"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp" android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_7" android:id="@+id/value_7"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp" android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_decimal" android:id="@+id/value_decimal"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp" android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
@ -48,27 +49,35 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_2" android:id="@+id/value_2"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_5" android:id="@+id/value_5"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_8" android:id="@+id/value_8"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_0" android:id="@+id/value_0"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
@ -80,36 +89,46 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_3" android:id="@+id/value_3"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_6" android:id="@+id/value_6"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_9" android:id="@+id/value_9"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_back" android:id="@+id/value_back"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<com.google.android.material.button.MaterialButton <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/value_separator" android:id="@+id/value_separator"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.KeyboardHighlightedButton"
android:layout_marginVertical="2dp"
android:layout_marginHorizontal="2dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>

@ -386,6 +386,32 @@
<item name="backgroundTint">@color/kaki_darker</item> <item name="backgroundTint">@color/kaki_darker</item>
</style> </style>
<style name="PokerAnalyticsTheme.KeyboardButton" parent="Widget.MaterialComponents.Button">
<item name="iconPadding">0dp</item>
<item name="android:height">48dp</item>
<item name="android:letterSpacing">0</item>
<item name="android:fontFamily">@font/roboto_medium</item>
<item name="android:textColor">@color/white</item>
<item name="android:paddingStart">4dp</item>
<item name="android:paddingEnd">8dp</item>
<item name="android:textSize">16sp</item>
<item name="android:background">@color/kaki</item>
<item name="backgroundTint">@color/kaki</item>
</style>
<style name="PokerAnalyticsTheme.KeyboardHighlightedButton" parent="Widget.MaterialComponents.Button">
<item name="iconPadding">0dp</item>
<item name="android:height">48dp</item>
<item name="android:letterSpacing">0</item>
<item name="android:fontFamily">@font/roboto_medium</item>
<item name="android:textColor">@color/white</item>
<item name="android:paddingStart">4dp</item>
<item name="android:paddingEnd">8dp</item>
<item name="android:textSize">32sp</item>
<item name="android:background">@color/green</item>
<item name="backgroundTint">@color/green</item>
</style>
<style name="PokerAnalyticsTheme.PlayerButton"> <style name="PokerAnalyticsTheme.PlayerButton">
<!-- <item name="android:backgroundTint">@color/kaki_light</item>--> <!-- <item name="android:backgroundTint">@color/kaki_light</item>-->
<!-- <item name="android:background">@drawable/circle</item>--> <!-- <item name="android:background">@drawable/circle</item>-->

Loading…
Cancel
Save