From 025378ac7a63d7f0ec3d0ac70e0a83c23f095fec Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 19 Jun 2019 18:48:03 +0200 Subject: [PATCH] Refactored BottomSheet instantiation to hopefully fix a crash --- .../BottomSheetDoubleEditTextFragment.kt | 3 +- .../BottomSheetEditTextFragment.kt | 3 +- .../BottomSheetEditTextMultiLinesFragment.kt | 3 +- .../bottomsheet/BottomSheetFragment.kt | 8 +++--- .../bottomsheet/BottomSheetListFragment.kt | 2 +- .../BottomSheetListGameFragment.kt | 2 +- .../BottomSheetMultiSelectionFragment.kt | 2 +- .../BottomSheetNumericTextFragment.kt | 3 +- .../BottomSheetStaticListFragment.kt | 2 +- .../bottomsheet/BottomSheetSumFragment.kt | 3 +- .../BottomSheetTableSizeGridFragment.kt | 4 +-- .../components/bottomsheet/BottomSheetType.kt | 28 ++++++++++--------- 12 files changed, 35 insertions(+), 28 deletions(-) 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 e16ab1b6..af8e4b90 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 @@ -10,11 +10,12 @@ 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.exceptions.RowRepresentableEditDescriptorException +import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow import net.pokeranalytics.android.util.extensions.round -class BottomSheetDoubleEditTextFragment : BottomSheetFragment() { +class BottomSheetDoubleEditTextFragment(row: RowRepresentable) : BottomSheetFragment(row) { private val values = ArrayList() private var isEditingBlinds: Boolean = false 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 a93c3e6c..c45674cc 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 @@ -10,9 +10,10 @@ 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.exceptions.RowRepresentableEditDescriptorException +import net.pokeranalytics.android.ui.view.RowRepresentable -class BottomSheetEditTextFragment : BottomSheetFragment() { +class BottomSheetEditTextFragment(row: RowRepresentable) : BottomSheetFragment(row) { private var value: String? = null 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 22f450be..b325c18d 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 @@ -8,9 +8,10 @@ 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.exceptions.RowRepresentableEditDescriptorException +import net.pokeranalytics.android.ui.view.RowRepresentable -class BottomSheetEditTextMultiLinesFragment : BottomSheetFragment() { +class BottomSheetEditTextMultiLinesFragment(row: RowRepresentable) : BottomSheetFragment(row) { private var value: String? = null 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 0d437430..57ac596f 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 @@ -26,9 +26,9 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow import net.pokeranalytics.android.ui.view.rowrepresentable.TransactionRow import java.util.* -open class BottomSheetFragment : BottomSheetDialogFragment() { +open class BottomSheetFragment(val row: RowRepresentable) : BottomSheetDialogFragment() { - lateinit var row: RowRepresentable +// lateinit var row: RowRepresentable lateinit var delegate: RowRepresentableDelegate var currentCurrency: Currency? = null var valueHasPlaceholder: Boolean = false @@ -51,9 +51,9 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { isDeletable: Boolean? = false, valueHasPlaceholder: Boolean? = null ): BottomSheetFragment { - val bottomSheetFragment = row.bottomSheetType.newInstance() + val bottomSheetFragment = row.bottomSheetType.newInstance(row) bottomSheetFragment.show(fragmentManager, "bottomSheet") - bottomSheetFragment.row = row +// bottomSheetFragment.row = row bottomSheetFragment.delegate = delegate bottomSheetFragment.rowRepresentableEditDescriptors = rowRepresentableEditDescriptors bottomSheetFragment.isClearable = isClearable ?: true 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 fa5997f7..30fd0b76 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 @@ -16,7 +16,7 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType -open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate { +open class BottomSheetListFragment(row: RowRepresentable) : BottomSheetFragment(row), LiveRowRepresentableDataSource, RowRepresentableDelegate { lateinit var dataAdapter: RowRepresentableAdapter var realmData: RealmResults? = null 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 9c3b7ca8..edcfdc9b 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 @@ -19,7 +19,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable * Bottom Sheet List Game Fragment * Display a list of game + chips to choose the game limit */ -class BottomSheetListGameFragment : BottomSheetListFragment() { +class BottomSheetListGameFragment(row: RowRepresentable) : BottomSheetListFragment(row) { private var limit: Int? = 0 private val values = ArrayList() 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 7bbe3c9e..a07c8ce5 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 @@ -14,7 +14,7 @@ import net.pokeranalytics.android.ui.view.RowViewType /** * Manage multiple items selection in a bottom sheet list */ -open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() { +open class BottomSheetMultiSelectionFragment(row: RowRepresentable) : BottomSheetListFragment(row) { private val selectedRows: ArrayList = ArrayList() 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 610e701c..8d2f87a9 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 @@ -10,10 +10,11 @@ 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.exceptions.RowRepresentableEditDescriptorException +import net.pokeranalytics.android.ui.view.RowRepresentable import java.text.NumberFormat -class BottomSheetNumericTextFragment : BottomSheetFragment() { +class BottomSheetNumericTextFragment(row: RowRepresentable) : BottomSheetFragment(row) { private var value: Double? = null 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 7af3f1da..86544ec5 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 @@ -13,7 +13,7 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.view.RowRepresentable -class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, +class BottomSheetStaticListFragment(row: RowRepresentable) : BottomSheetFragment(row), StaticRowRepresentableDataSource, RowRepresentableDelegate { private var staticRows: List = emptyList() 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 8f96c818..eb2f6e6a 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 @@ -10,12 +10,13 @@ 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.exceptions.RowRepresentableEditDescriptorException +import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.util.extensions.round import net.pokeranalytics.android.util.extensions.toCurrency import java.text.NumberFormat -class BottomSheetSumFragment : BottomSheetFragment() { +class BottomSheetSumFragment(row: RowRepresentable) : BottomSheetFragment(row) { private var value = 0.0 private var currentDefaultValue = 0.0 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 7c199c09..3614e6f2 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 @@ -11,11 +11,11 @@ import net.pokeranalytics.android.model.TableSize import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource +import net.pokeranalytics.android.ui.extensions.px import net.pokeranalytics.android.ui.view.GridSpacingItemDecoration import net.pokeranalytics.android.ui.view.RowRepresentable -import net.pokeranalytics.android.ui.extensions.px -class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { +class BottomSheetTableSizeGridFragment(row: RowRepresentable) : BottomSheetFragment(row), StaticRowRepresentableDataSource, RowRepresentableDelegate { private lateinit var dataAdapter: RowRepresentableAdapter private var defaultSize: Int? = null diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetType.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetType.kt index 447453b0..a8d52486 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetType.kt @@ -1,5 +1,7 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet +import net.pokeranalytics.android.ui.view.RowRepresentable + enum class BottomSheetType { NONE, LIST, @@ -14,20 +16,20 @@ enum class BottomSheetType { NUMERIC_TEXT, SUM; - fun newInstance(): BottomSheetFragment { + fun newInstance(row: RowRepresentable): BottomSheetFragment { return when (this) { - NONE -> BottomSheetFragment() - LIST -> BottomSheetListFragment() - LIST_STATIC -> BottomSheetStaticListFragment() - LIST_GAME -> BottomSheetListGameFragment() - DOUBLE_LIST -> BottomSheetListGameFragment() - MULTI_SELECTION -> BottomSheetMultiSelectionFragment() - GRID -> BottomSheetTableSizeGridFragment() - EDIT_TEXT -> BottomSheetEditTextFragment() - EDIT_TEXT_MULTI_LINES -> BottomSheetEditTextMultiLinesFragment() - DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment() - NUMERIC_TEXT -> BottomSheetNumericTextFragment() - SUM -> BottomSheetSumFragment() + NONE -> BottomSheetFragment(row) + LIST -> BottomSheetListFragment(row) + LIST_STATIC -> BottomSheetStaticListFragment(row) + LIST_GAME -> BottomSheetListGameFragment(row) + DOUBLE_LIST -> BottomSheetListGameFragment(row) + MULTI_SELECTION -> BottomSheetMultiSelectionFragment(row) + GRID -> BottomSheetTableSizeGridFragment(row) + EDIT_TEXT -> BottomSheetEditTextFragment(row) + EDIT_TEXT_MULTI_LINES -> BottomSheetEditTextMultiLinesFragment(row) + DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment(row) + NUMERIC_TEXT -> BottomSheetNumericTextFragment(row) + SUM -> BottomSheetSumFragment(row) } }