Merge branch 'kmm' of gitlab.com:stax-river/poker-analytics into kmm

kmm
Laurent 5 years ago
commit 7e25914c70
  1. 59
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt
  2. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt
  3. 22
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextMultiLinesFragment.kt
  4. 24
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt
  5. 22
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  6. 23
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt
  7. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt
  8. 23
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt
  9. 24
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStaticListFragment.kt
  10. 29
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt
  11. 24
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt

@ -4,29 +4,41 @@ 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.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_double_edit_text.* import net.pokeranalytics.android.databinding.BottomSheetDoubleEditTextBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
import net.pokeranalytics.android.util.extensions.round import net.pokeranalytics.android.util.extensions.round
class BottomSheetDoubleEditTextFragment : BottomSheetFragment() { class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
private var _binding: BottomSheetDoubleEditTextBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetDoubleEditTextBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initData() initData()
initUI() initUI()
} }
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
if (this.model.isEditingBlinds) { if (this.model.isEditingBlinds) {
editText2.requestFocus() binding.editText2.requestFocus()
} else { } else {
editText.requestFocus() binding.editText.requestFocus()
} }
} }
@ -47,56 +59,47 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
// values.add(0, "") data[0].hintResId?.let { binding.editText.hint = getString(it) }
// values.add(1, "") 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) }
LayoutInflater.from(requireContext()) binding.editText2.inputType = data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
.inflate(R.layout.bottom_sheet_double_edit_text, view?.bottomSheetContainer, true)
// values[0] = (data[0].defaultValue ?: "").toString()
// values[1] = (data[1].defaultValue ?: "").toString()
data[0].hintResId?.let { editText.hint = getString(it) }
editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
data[1].hintResId?.let { editText2.hint = getString(it) }
editText2.inputType = data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
if (this.model.valueAsHint) { if (this.model.valueAsHint) {
this.model.stringValue?.let { this.model.stringValue?.let {
if (it.isNotBlank()) { if (it.isNotBlank()) {
editText.hint = it binding.editText.hint = it
} }
} }
this.model.secondStringValue?.let { this.model.secondStringValue?.let {
if (it.isNotBlank()) { if (it.isNotBlank()) {
editText2.hint = it binding.editText2.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 {
editText.setText(this.model.stringValue) binding.editText.setText(this.model.stringValue)
editText2.setText(this.model.secondStringValue) binding.editText2.setText(this.model.secondStringValue)
} }
editText.addTextChangedListener { binding.editText.addTextChangedListener {
this.model.stringValue = it?.toString() this.model.stringValue = it?.toString()
} }
editText2.addTextChangedListener { binding.editText2.addTextChangedListener {
this.model.secondStringValue = it?.toString() this.model.secondStringValue = it?.toString()
if (this.model.isEditingBlinds) { if (this.model.isEditingBlinds) {
try { try {
val bigBlind = this.model.secondStringValue?.toDouble() ?: 0.0 val bigBlind = this.model.secondStringValue?.toDouble() ?: 0.0
editText.setText((bigBlind / 2.0).round()) binding.editText.setText((bigBlind / 2.0).round())
} catch (e: Exception) { } catch (e: Exception) {
editText.setText("") binding.editText.setText("")
} }
} }
} }
editText2.setOnEditorActionListener { _, actionId, _ -> binding.editText2.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) { if (actionId == EditorInfo.IME_ACTION_DONE) {
this.onRowValueChanged() this.onRowValueChanged()
// this.delegate.onRowValueChanged(values, row) // this.delegate.onRowValueChanged(values, row)

@ -4,38 +4,48 @@ 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.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_edit_text.* import net.pokeranalytics.android.databinding.BottomSheetEditTextBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
class BottomSheetEditTextFragment : BottomSheetFragment() { class BottomSheetEditTextFragment : BottomSheetFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { private var _binding: BottomSheetEditTextBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetEditTextBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
} }
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
editText.requestFocus() binding.editText.requestFocus()
} }
/** /**
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
val editText = binding.editText
val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found for $this") val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found for $this")
if (data.size != 1) { if (data.size != 1) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_edit_text, view?.bottomSheetContainer, true)
data[0].hintResId?.let { editText.hint = getString(it) } data[0].hintResId?.let { editText.hint = getString(it) }
editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText.addTextChangedListener { editText.addTextChangedListener {

@ -4,14 +4,27 @@ 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 androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_edit_text_multi_lines.* import net.pokeranalytics.android.databinding.BottomSheetEditTextMultiLinesBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
class BottomSheetEditTextMultiLinesFragment : BottomSheetFragment() { class BottomSheetEditTextMultiLinesFragment : BottomSheetFragment() {
private var _binding: BottomSheetEditTextMultiLinesBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetEditTextMultiLinesBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
@ -19,20 +32,19 @@ class BottomSheetEditTextMultiLinesFragment : BottomSheetFragment() {
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
editText.requestFocus() binding.editText.requestFocus()
} }
/** /**
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
val editText = binding.editText
val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found")
if (data.size != 1) { if (data.size != 1) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
LayoutInflater.from(requireContext()).inflate(net.pokeranalytics.android.R.layout.bottom_sheet_edit_text_multi_lines, view?.bottomSheetContainer, true)
data[0].hintResId?.let { editText.hint = getString(it) } data[0].hintResId?.let { editText.hint = getString(it) }
editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText.addTextChangedListener { this.model.stringValue = it?.toString() } editText.addTextChangedListener { this.model.stringValue = it?.toString() }

@ -9,11 +9,10 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import androidx.appcompat.view.ContextThemeWrapper
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.fragment_bottom_sheet.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.databinding.FragmentBottomSheetBinding
import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.ui.activity.components.BaseActivity import net.pokeranalytics.android.ui.activity.components.BaseActivity
@ -46,6 +45,9 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
protected lateinit var dataAdapter: RowRepresentableAdapter protected lateinit var dataAdapter: RowRepresentableAdapter
private var _binding: FragmentBottomSheetBinding? = null
private val binding get() = _binding!!
companion object { companion object {
private var config: BottomSheetConfig? = null private var config: BottomSheetConfig? = null
@ -91,11 +93,22 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
//TODO: When dependency 'com.google.android.material:material:1.1.0' will be available in stable version, upgrade and remove that //TODO: When dependency 'com.google.android.material:material:1.1.0' will be available in stable version, upgrade and remove that
val contextThemeWrapper = ContextThemeWrapper(activity, R.style.PokerAnalyticsTheme) activity?.setTheme(R.style.PokerAnalyticsTheme)
return inflater.cloneInContext(contextThemeWrapper).inflate(R.layout.fragment_bottom_sheet, container, false) _binding = FragmentBottomSheetBinding.inflate(inflater, container, false)
binding.bottomSheetContainer.addView(getChildView(inflater, binding.root))
return binding.root
} }
private fun initModel() { open fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
return null
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
private fun initModel() {
val row = config?.row val row = config?.row
?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable ?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable
@ -174,6 +187,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
private fun initUI() { private fun initUI() {
val row = this.model.row val row = this.model.row
val bottomSheetToolbar = binding.bottomSheetToolbar
bottomSheetToolbar.title = row.localizedTitle(requireContext()) bottomSheetToolbar.title = row.localizedTitle(requireContext())
bottomSheetToolbar.inflateMenu(R.menu.toolbar_bottom_sheet) bottomSheetToolbar.inflateMenu(R.menu.toolbar_bottom_sheet)
bottomSheetToolbar.setOnMenuItemClickListener { bottomSheetToolbar.setOnMenuItemClickListener {

@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.bottom_sheet_list.* import net.pokeranalytics.android.databinding.BottomSheetListBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
@ -16,6 +15,19 @@ import net.pokeranalytics.android.ui.view.RowViewType
open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate { open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate {
private var _binding: BottomSheetListBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetListBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun adapterRows(): List<RowRepresentable>? { override fun adapterRows(): List<RowRepresentable>? {
return this.model.realmData return this.model.realmData
} }
@ -82,13 +94,11 @@ open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentable
* Init UI * Init UI
*/ */
open fun initUI() { open fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true)
val viewManager = LinearLayoutManager(requireContext()) val viewManager = LinearLayoutManager(requireContext())
val dataAdapter = RowRepresentableAdapter(this, this) val dataAdapter = RowRepresentableAdapter(this, this)
this.dataAdapter = dataAdapter this.dataAdapter = dataAdapter
recyclerView.apply { binding.recyclerView.apply {
setHasFixedSize(true) setHasFixedSize(true)
layoutManager = viewManager layoutManager = viewManager
adapter = dataAdapter adapter = dataAdapter

@ -3,12 +3,11 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.core.view.get import androidx.core.view.get
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.chip.Chip import com.google.android.material.chip.Chip
import kotlinx.android.synthetic.main.bottom_sheet_game_list.* import net.pokeranalytics.android.databinding.BottomSheetGameListBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.Limit
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.extensions.px import net.pokeranalytics.android.ui.extensions.px
@ -20,6 +19,19 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
*/ */
class BottomSheetListGameFragment : BottomSheetListFragment() { class BottomSheetListGameFragment : BottomSheetListFragment() {
private var _binding: BottomSheetGameListBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetGameListBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
@ -41,8 +53,7 @@ class BottomSheetListGameFragment : BottomSheetListFragment() {
* Init UI * Init UI
*/ */
override fun initUI() { override fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true) val chipGroup = binding.chipGroup
val limit = this.model.limit val limit = this.model.limit
this.model.someValues.add(0, limit) this.model.someValues.add(0, limit)
@ -71,7 +82,7 @@ class BottomSheetListGameFragment : BottomSheetListFragment() {
val dataAdapter = RowRepresentableAdapter(this, this) val dataAdapter = RowRepresentableAdapter(this, this)
this.dataAdapter = dataAdapter this.dataAdapter = dataAdapter
recyclerView2.apply { binding.recyclerView2.apply {
setHasFixedSize(true) setHasFixedSize(true)
layoutManager = viewManager2 layoutManager = viewManager2
adapter = dataAdapter adapter = dataAdapter

@ -2,7 +2,11 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import io.realm.RealmModel import io.realm.RealmModel
import net.pokeranalytics.android.databinding.BottomSheetDoubleEditTextBinding
import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.ui.modules.data.EditableDataActivity import net.pokeranalytics.android.ui.modules.data.EditableDataActivity
import net.pokeranalytics.android.ui.activity.components.BaseActivity import net.pokeranalytics.android.ui.activity.components.BaseActivity
@ -14,6 +18,19 @@ import net.pokeranalytics.android.ui.view.RowViewType
*/ */
open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() { open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() {
private var _binding: BottomSheetDoubleEditTextBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetDoubleEditTextBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun viewTypeForPosition(position: Int): Int { override fun viewTypeForPosition(position: Int): Int {
return RowViewType.TITLE_CHECK.ordinal return RowViewType.TITLE_CHECK.ordinal
} }

@ -4,17 +4,29 @@ 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.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_edit_text.* import net.pokeranalytics.android.databinding.BottomSheetEditTextBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
import java.text.NumberFormat import java.text.NumberFormat
class BottomSheetNumericTextFragment : BottomSheetFragment() { class BottomSheetNumericTextFragment : BottomSheetFragment() {
private var _binding: BottomSheetEditTextBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetEditTextBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
@ -22,20 +34,19 @@ class BottomSheetNumericTextFragment : BottomSheetFragment() {
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
editText.requestFocus() binding.editText.requestFocus()
} }
/** /**
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
val editText = binding.editText
val data = getDescriptors()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") val data = getDescriptors()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found")
if (data.size != 1) { if (data.size != 1) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_edit_text, view?.bottomSheetContainer, true)
data[0].hintResId?.let { editText.hint = getString(it) } data[0].hintResId?.let { editText.hint = getString(it) }
editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES

@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.bottom_sheet_list.* import net.pokeranalytics.android.databinding.BottomSheetListBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
@ -15,10 +14,20 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresentableDataSource,
RowRepresentableDelegate { RowRepresentableDelegate {
// private var staticRows: List<RowRepresentable> = emptyList() private var _binding: BottomSheetListBinding? = null
// private lateinit var dataAdapter: RowRepresentableAdapter private val binding get() = _binding!!
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetListBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
} }
@ -45,13 +54,12 @@ class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresenta
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true)
val viewManager = LinearLayoutManager(requireContext()) val viewManager = LinearLayoutManager(requireContext())
val dataAdapter = RowRepresentableAdapter(this, this) val dataAdapter = RowRepresentableAdapter(this, this)
this.dataAdapter = dataAdapter this.dataAdapter = dataAdapter
recyclerView.apply { binding.recyclerView.apply {
setHasFixedSize(true) setHasFixedSize(true)
layoutManager = viewManager layoutManager = viewManager
adapter = dataAdapter adapter = dataAdapter

@ -4,11 +4,10 @@ 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.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_sum.* import net.pokeranalytics.android.databinding.BottomSheetSumBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
import net.pokeranalytics.android.util.extensions.round import net.pokeranalytics.android.util.extensions.round
import net.pokeranalytics.android.util.extensions.toCurrency import net.pokeranalytics.android.util.extensions.toCurrency
@ -17,14 +16,27 @@ import java.text.NumberFormat
class BottomSheetSumFragment : BottomSheetFragment() { class BottomSheetSumFragment : BottomSheetFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { private var _binding: BottomSheetSumBinding? = null
private val binding get() = _binding!!
override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetSumBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
} }
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
editText.requestFocus() binding.editText.requestFocus()
} }
@ -32,11 +44,16 @@ class BottomSheetSumFragment : BottomSheetFragment() {
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
val currentValue = binding.currentValue
val editText = binding.editText
val editText2 = binding.editText2
val button1 = binding.button1
val button2 = binding.button2
val data = getDescriptors()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") val data = getDescriptors()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found")
if (data.size != 5) { if (data.size != 5) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
} }
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_sum, view?.bottomSheetContainer, true)
if (data.size == 5) { if (data.size == 5) {

@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import kotlinx.android.synthetic.main.bottom_sheet_grid.* import net.pokeranalytics.android.databinding.BottomSheetGridBinding
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.TableSize import net.pokeranalytics.android.model.TableSize
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
@ -17,9 +16,20 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
// private lateinit var dataAdapter: RowRepresentableAdapter private var _binding: BottomSheetGridBinding? = null
private val binding get() = _binding!!
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun getChildView(inflater: LayoutInflater, container: ViewGroup): View? {
_binding = BottomSheetGridBinding.inflate(inflater, container, true)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
} }
@ -34,8 +44,6 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowReprese
* Init UI * Init UI
*/ */
private fun initUI() { private fun initUI() {
LayoutInflater.from(requireContext())
.inflate(R.layout.bottom_sheet_grid, view?.bottomSheetContainer, true)
val viewManager = GridLayoutManager(requireContext(), 3) val viewManager = GridLayoutManager(requireContext(), 3)
val dataAdapter = RowRepresentableAdapter(this, this) val dataAdapter = RowRepresentableAdapter(this, this)
@ -45,7 +53,7 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowReprese
val spacing = 2.px val spacing = 2.px
val includeEdge = false val includeEdge = false
recyclerView.apply { binding.recyclerView.apply {
setHasFixedSize(true) setHasFixedSize(true)
layoutManager = viewManager layoutManager = viewManager
adapter = dataAdapter adapter = dataAdapter

Loading…
Cancel
Save