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

@ -211,18 +211,21 @@ open class HandHistory : RealmObject(), Deletable, RowRepresentable, Filterable,
this.actions.clear()
this.blindValues.forEachIndexed { index, blind ->
val action = when(index) {
0 -> Action.Type.POST_SB
1 -> Action.Type.POST_BB
else -> Action.Type.STRADDLE
val blindValues = this.blindValues
if (blindValues.isNotEmpty()) {
blindValues.forEachIndexed { index, blind ->
val action = when(index) {
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
val positions = Position.positionsPerPlayers(this.numberOfPlayers)

@ -1,16 +1,19 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.content.Context
import android.os.Bundle
import android.text.InputType
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import androidx.core.widget.addTextChangedListener
import net.pokeranalytics.android.databinding.BottomSheetStakesBinding
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
class BottomSheetStakesFragment : BottomSheetFragment() {
private var _binding: BottomSheetStakesBinding? = null
@ -36,9 +39,17 @@ class BottomSheetStakesFragment : BottomSheetFragment() {
super.onStart()
// 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
}
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
*/
@ -59,47 +79,66 @@ class BottomSheetStakesFragment : BottomSheetFragment() {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
}
data[0].hintResId?.let { binding.editText.hint = getString(it) }
binding.editText.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[0].hintResId?.let { binding.anteEditText.hint = getString(it) }
binding.anteEditText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
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.inputType = InputType.TYPE_NULL
// binding.editText2.setTextIsSelectable(false)
// editText.setTextIsSelectable(true)
binding.editText2.setRawInputType(InputType.TYPE_CLASS_TEXT)
binding.editText2.setTextIsSelectable(true)
binding.editText2.showSoftInputOnFocus = false
// binding.editText2.isFocusableInTouchMode = false
binding.blindsEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER)
// 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
} ?: throw PAIllegalStateException("No connection for editText")
if (this.model.valueAsHint) {
this.model.stringValue?.let {
if (it.isNotBlank()) {
binding.editText.hint = it
binding.anteEditText.hint = it
}
}
this.model.secondStringValue?.let {
if (it.isNotBlank()) {
binding.editText2.hint = it
binding.blindsEditText.hint = it
}
}
// if (this.viewModel.stringValue?.isNotBlank()) { editText.hint = values[0] }
// if (values[1].isNotBlank()) { editText2.hint = values[1] }
} else {
binding.editText.setText(this.model.stringValue)
binding.editText2.setText(this.model.secondStringValue)
binding.anteEditText.setText(this.model.stringValue)
binding.blindsEditText.setText(this.model.secondStringValue)
}
binding.editText.addTextChangedListener {
binding.anteEditText.addTextChangedListener {
this.model.stringValue = it?.toString()
}
binding.editText2.addTextChangedListener {
binding.blindsEditText.addTextChangedListener {
this.model.secondStringValue = it?.toString()
}

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

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

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

@ -386,6 +386,32 @@
<item name="backgroundTint">@color/kaki_darker</item>
</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">
<!-- <item name="android:backgroundTint">@color/kaki_light</item>-->
<!-- <item name="android:background">@drawable/circle</item>-->

Loading…
Cancel
Save