diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt index bb110a7e..5283fbe9 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt @@ -4,29 +4,41 @@ 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 androidx.core.widget.addTextChangedListener -import kotlinx.android.synthetic.main.bottom_sheet_double_edit_text.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetDoubleEditTextBinding import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.util.extensions.round 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?) { super.onViewCreated(view, savedInstanceState) - initData() + initData() initUI() } override fun onStart() { super.onStart() if (this.model.isEditingBlinds) { - editText2.requestFocus() + binding.editText2.requestFocus() } else { - editText.requestFocus() + binding.editText.requestFocus() } } @@ -47,56 +59,47 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() { throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") } -// values.add(0, "") -// values.add(1, "") - - LayoutInflater.from(requireContext()) - .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 + 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) } + binding.editText2.inputType = data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES if (this.model.valueAsHint) { this.model.stringValue?.let { if (it.isNotBlank()) { - editText.hint = it + binding.editText.hint = it } } this.model.secondStringValue?.let { if (it.isNotBlank()) { - editText2.hint = it + binding.editText2.hint = it } } // if (this.viewModel.stringValue?.isNotBlank()) { editText.hint = values[0] } // if (values[1].isNotBlank()) { editText2.hint = values[1] } } else { - editText.setText(this.model.stringValue) - editText2.setText(this.model.secondStringValue) + binding.editText.setText(this.model.stringValue) + binding.editText2.setText(this.model.secondStringValue) } - editText.addTextChangedListener { + binding.editText.addTextChangedListener { this.model.stringValue = it?.toString() } - editText2.addTextChangedListener { + binding.editText2.addTextChangedListener { this.model.secondStringValue = it?.toString() if (this.model.isEditingBlinds) { try { val bigBlind = this.model.secondStringValue?.toDouble() ?: 0.0 - editText.setText((bigBlind / 2.0).round()) + binding.editText.setText((bigBlind / 2.0).round()) } catch (e: Exception) { - editText.setText("") + binding.editText.setText("") } } } - editText2.setOnEditorActionListener { _, actionId, _ -> + binding.editText2.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_DONE) { this.onRowValueChanged() // this.delegate.onRowValueChanged(values, row) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt index 51dab886..9ca5d970 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt @@ -4,38 +4,48 @@ 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 androidx.core.widget.addTextChangedListener -import kotlinx.android.synthetic.main.bottom_sheet_edit_text.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetEditTextBinding import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException 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) initUI() } override fun onStart() { super.onStart() - editText.requestFocus() + binding.editText.requestFocus() } /** * Init UI */ private fun initUI() { - + val editText = binding.editText val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found for $this") if (data.size != 1) { 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) } editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES editText.addTextChangedListener { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextMultiLinesFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextMultiLinesFragment.kt index 09f82155..fd1f5f29 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextMultiLinesFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextMultiLinesFragment.kt @@ -4,14 +4,27 @@ import android.os.Bundle import android.text.InputType import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import androidx.core.widget.addTextChangedListener -import kotlinx.android.synthetic.main.bottom_sheet_edit_text_multi_lines.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* +import net.pokeranalytics.android.databinding.BottomSheetEditTextMultiLinesBinding import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException 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?) { super.onViewCreated(view, savedInstanceState) initUI() @@ -19,20 +32,19 @@ class BottomSheetEditTextMultiLinesFragment : BottomSheetFragment() { override fun onStart() { super.onStart() - editText.requestFocus() + binding.editText.requestFocus() } /** * Init UI */ private fun initUI() { + val editText = binding.editText val data = getDescriptors() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") if (data.size != 1) { 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) } 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() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt index 03ad3792..b206aaa8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt @@ -9,11 +9,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowManager -import androidx.appcompat.view.ContextThemeWrapper import androidx.lifecycle.ViewModelProvider import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import kotlinx.android.synthetic.main.fragment_bottom_sheet.* import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.FragmentBottomSheetBinding import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.ui.activity.components.BaseActivity @@ -46,6 +45,9 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { protected lateinit var dataAdapter: RowRepresentableAdapter + private var _binding: FragmentBottomSheetBinding? = null + private val binding get() = _binding!! + companion object { private var config: BottomSheetConfig? = null @@ -91,11 +93,22 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { 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 - val contextThemeWrapper = ContextThemeWrapper(activity, R.style.PokerAnalyticsTheme) - return inflater.cloneInContext(contextThemeWrapper).inflate(R.layout.fragment_bottom_sheet, container, false) + activity?.setTheme(R.style.PokerAnalyticsTheme) + _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 ?: (requireActivity() as? BaseActivity)?.bottomSheetViewModel?.rowRepresentable @@ -174,6 +187,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { private fun initUI() { val row = this.model.row + val bottomSheetToolbar = binding.bottomSheetToolbar bottomSheetToolbar.title = row.localizedTitle(requireContext()) bottomSheetToolbar.inflateMenu(R.menu.toolbar_bottom_sheet) bottomSheetToolbar.setOnMenuItemClickListener { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt index 2ef7d60c..3a529e3c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt @@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager -import kotlinx.android.synthetic.main.bottom_sheet_list.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetListBinding import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter @@ -16,6 +15,19 @@ import net.pokeranalytics.android.ui.view.RowViewType 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? { return this.model.realmData } @@ -82,13 +94,11 @@ open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentable * Init UI */ open fun initUI() { - LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) - val viewManager = LinearLayoutManager(requireContext()) val dataAdapter = RowRepresentableAdapter(this, this) this.dataAdapter = dataAdapter - recyclerView.apply { + binding.recyclerView.apply { setHasFixedSize(true) layoutManager = viewManager adapter = dataAdapter diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt index 5e63e815..a504c182 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt @@ -3,12 +3,11 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import androidx.core.view.get import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.chip.Chip -import kotlinx.android.synthetic.main.bottom_sheet_game_list.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetGameListBinding import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.extensions.px @@ -20,6 +19,19 @@ import net.pokeranalytics.android.ui.view.RowRepresentable */ 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?) { super.onViewCreated(view, savedInstanceState) initUI() @@ -41,8 +53,7 @@ class BottomSheetListGameFragment : BottomSheetListFragment() { * Init UI */ 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 this.model.someValues.add(0, limit) @@ -71,7 +82,7 @@ class BottomSheetListGameFragment : BottomSheetListFragment() { val dataAdapter = RowRepresentableAdapter(this, this) this.dataAdapter = dataAdapter - recyclerView2.apply { + binding.recyclerView2.apply { setHasFixedSize(true) layoutManager = viewManager2 adapter = dataAdapter diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt index d951fa82..e471782d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt @@ -2,7 +2,11 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet import android.app.Activity import android.content.Intent +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import io.realm.RealmModel +import net.pokeranalytics.android.databinding.BottomSheetDoubleEditTextBinding import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.ui.modules.data.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.BaseActivity @@ -14,6 +18,19 @@ import net.pokeranalytics.android.ui.view.RowViewType */ 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 { return RowViewType.TITLE_CHECK.ordinal } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt index 94fc9f7b..fff1a184 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt @@ -4,17 +4,29 @@ 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 androidx.core.widget.addTextChangedListener -import kotlinx.android.synthetic.main.bottom_sheet_edit_text.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetEditTextBinding import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import java.text.NumberFormat 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?) { super.onViewCreated(view, savedInstanceState) initUI() @@ -22,20 +34,19 @@ class BottomSheetNumericTextFragment : BottomSheetFragment() { override fun onStart() { super.onStart() - editText.requestFocus() + binding.editText.requestFocus() } /** * Init UI */ private fun initUI() { + val editText = binding.editText val data = getDescriptors()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") if (data.size != 1) { 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) } editText.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStaticListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStaticListFragment.kt index 95984fc6..50044cdb 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStaticListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetStaticListFragment.kt @@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager -import kotlinx.android.synthetic.main.bottom_sheet_list.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetListBinding import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource @@ -15,10 +14,20 @@ import net.pokeranalytics.android.ui.view.RowRepresentable class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { -// private var staticRows: List = emptyList() -// private lateinit var dataAdapter: RowRepresentableAdapter + private var _binding: BottomSheetListBinding? = null + 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) initUI() } @@ -45,13 +54,12 @@ class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresenta * Init UI */ private fun initUI() { - LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) val viewManager = LinearLayoutManager(requireContext()) val dataAdapter = RowRepresentableAdapter(this, this) this.dataAdapter = dataAdapter - recyclerView.apply { + binding.recyclerView.apply { setHasFixedSize(true) layoutManager = viewManager adapter = dataAdapter diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt index ba8c431b..6dfb301a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt @@ -4,11 +4,10 @@ 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 androidx.core.widget.addTextChangedListener -import kotlinx.android.synthetic.main.bottom_sheet_sum.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetSumBinding import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.util.extensions.round import net.pokeranalytics.android.util.extensions.toCurrency @@ -17,14 +16,27 @@ import java.text.NumberFormat 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) initUI() } override fun onStart() { super.onStart() - editText.requestFocus() + binding.editText.requestFocus() } @@ -32,11 +44,16 @@ class BottomSheetSumFragment : BottomSheetFragment() { * Init UI */ 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") if (data.size != 5) { throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") } - LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_sum, view?.bottomSheetContainer, true) if (data.size == 5) { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt index e8a73c4b..a38bb4c6 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt @@ -3,10 +3,9 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager -import kotlinx.android.synthetic.main.bottom_sheet_grid.* -import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* -import net.pokeranalytics.android.R +import net.pokeranalytics.android.databinding.BottomSheetGridBinding import net.pokeranalytics.android.model.TableSize import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate @@ -17,9 +16,20 @@ import net.pokeranalytics.android.ui.view.RowRepresentable 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) initUI() } @@ -34,8 +44,6 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowReprese * Init UI */ private fun initUI() { - LayoutInflater.from(requireContext()) - .inflate(R.layout.bottom_sheet_grid, view?.bottomSheetContainer, true) val viewManager = GridLayoutManager(requireContext(), 3) val dataAdapter = RowRepresentableAdapter(this, this) @@ -45,7 +53,7 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowReprese val spacing = 2.px val includeEdge = false - recyclerView.apply { + binding.recyclerView.apply { setHasFixedSize(true) layoutManager = viewManager adapter = dataAdapter