diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt index c7e91057..936cb56f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt @@ -38,6 +38,11 @@ open class PokerAnalyticsFragment : Fragment() { Crashlytics.log("$this.localClassName onDestroy") } + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + Crashlytics.log("$this.localClassName onActivityCreated") + } + /** * Method called when the activity override onBackPressed and send the information to the fragment */ 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 debea4b7..b083cb87 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 @@ -42,6 +42,23 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { const val REQUEST_CODE_ADD_NEW_OBJECT = 100 + private fun newInstance(bottomSheetType: BottomSheetType): BottomSheetFragment { + return when (bottomSheetType) { + BottomSheetType.NONE -> BottomSheetFragment() + BottomSheetType.LIST -> BottomSheetListFragment() + BottomSheetType.LIST_STATIC -> BottomSheetStaticListFragment() + BottomSheetType.LIST_GAME -> BottomSheetListGameFragment() + BottomSheetType.DOUBLE_LIST -> BottomSheetListGameFragment() + BottomSheetType.MULTI_SELECTION -> BottomSheetMultiSelectionFragment() + BottomSheetType.GRID -> BottomSheetTableSizeGridFragment() + BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment() + BottomSheetType.EDIT_TEXT_MULTI_LINES -> BottomSheetEditTextMultiLinesFragment() + BottomSheetType.DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment() + BottomSheetType.NUMERIC_TEXT -> BottomSheetNumericTextFragment() + BottomSheetType.SUM -> BottomSheetSumFragment() + } + } + fun create( fragmentManager: FragmentManager?, row: RowRepresentable, @@ -52,7 +69,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { isDeletable: Boolean? = false, valueHasPlaceholder: Boolean? = null ): BottomSheetFragment { - val bottomSheetFragment = row.bottomSheetType.newInstance() + val bottomSheetFragment = newInstance(row.bottomSheetType) bottomSheetFragment.show(fragmentManager, "bottomSheet") bottomSheetFragment.row = row bottomSheetFragment.delegate = delegate @@ -76,7 +93,6 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { initUI() } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) @@ -103,57 +119,57 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { * Init UI */ private fun initUI() { - row.let { - bottomSheetToolbar.title = row.localizedTitle(requireContext()) - bottomSheetToolbar.inflateMenu(R.menu.toolbar_bottom_sheet) - bottomSheetToolbar.setOnMenuItemClickListener { - false - } - bottomSheetToolbar.menu.findItem(R.id.actionCheck).isVisible = row.bottomSheetType.validationRequired - bottomSheetToolbar.menu.findItem(R.id.actionClear).isVisible = row.bottomSheetType.clearRequired - bottomSheetToolbar.menu.findItem(R.id.actionAdd).isVisible = row.bottomSheetType.addRequired - - // Menu - bottomSheetToolbar.menu.findItem(R.id.actionClear).setOnMenuItemClickListener { - delegate.onRowValueChanged(null, row) - dismiss() - true - } - bottomSheetToolbar.menu.findItem(R.id.actionDelete).setOnMenuItemClickListener { - delegate.onRowDeleted(row) - dismiss() - true - } + bottomSheetToolbar.title = row.localizedTitle(requireContext()) + bottomSheetToolbar.inflateMenu(R.menu.toolbar_bottom_sheet) + bottomSheetToolbar.setOnMenuItemClickListener { + false + } + bottomSheetToolbar.menu.findItem(R.id.actionCheck).isVisible = row.bottomSheetType.validationRequired + bottomSheetToolbar.menu.findItem(R.id.actionClear).isVisible = row.bottomSheetType.clearRequired + bottomSheetToolbar.menu.findItem(R.id.actionAdd).isVisible = row.bottomSheetType.addRequired - bottomSheetToolbar.menu.findItem(R.id.actionAdd).setOnMenuItemClickListener { - val liveData = when (row) { - SessionRow.GAME -> LiveData.GAME - SessionRow.BANKROLL, TransactionRow.BANKROLL -> LiveData.BANKROLL - SessionRow.LOCATION -> LiveData.LOCATION - SessionRow.TOURNAMENT_NAME -> LiveData.TOURNAMENT_NAME - SessionRow.TOURNAMENT_FEATURE -> LiveData.TOURNAMENT_FEATURE - TransactionRow.TYPE -> LiveData.TRANSACTION_TYPE - else -> throw PAIllegalStateException("row $row does not have an associated LiveData value") - } - - EditableDataActivity.newInstanceForResult( - this, - liveData, - requestCode = REQUEST_CODE_ADD_NEW_OBJECT - ) - - true - } - bottomSheetToolbar.menu.findItem(R.id.actionCheck).setOnMenuItemClickListener { - this.delegate.onRowValueChanged(getValue(), row) - dismiss() - true + // Menu + bottomSheetToolbar.menu.findItem(R.id.actionClear).setOnMenuItemClickListener { + delegate.onRowValueChanged(null, row) + dismiss() + true + } + + bottomSheetToolbar.menu.findItem(R.id.actionDelete).setOnMenuItemClickListener { + delegate.onRowDeleted(row) + dismiss() + true + } + + bottomSheetToolbar.menu.findItem(R.id.actionAdd).setOnMenuItemClickListener { + val liveData = when (row) { + SessionRow.GAME -> LiveData.GAME + SessionRow.BANKROLL, TransactionRow.BANKROLL -> LiveData.BANKROLL + SessionRow.LOCATION -> LiveData.LOCATION + SessionRow.TOURNAMENT_NAME -> LiveData.TOURNAMENT_NAME + SessionRow.TOURNAMENT_FEATURE -> LiveData.TOURNAMENT_FEATURE + TransactionRow.TYPE -> LiveData.TRANSACTION_TYPE + else -> throw PAIllegalStateException("row $row does not have an associated LiveData value") } - bottomSheetToolbar.menu.findItem(R.id.actionClear).isVisible = isClearable - bottomSheetToolbar.menu.findItem(R.id.actionDelete).isVisible = isDeletable + EditableDataActivity.newInstanceForResult( + this, + liveData, + requestCode = REQUEST_CODE_ADD_NEW_OBJECT + ) + + true + } + bottomSheetToolbar.menu.findItem(R.id.actionCheck).setOnMenuItemClickListener { + this.delegate.onRowValueChanged(getValue(), row) + dismiss() + true } + + bottomSheetToolbar.menu.findItem(R.id.actionClear).isVisible = isClearable + bottomSheetToolbar.menu.findItem(R.id.actionDelete).isVisible = isDeletable + } /** 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..9bcb2f54 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 @@ -14,23 +14,6 @@ enum class BottomSheetType { NUMERIC_TEXT, SUM; - fun newInstance(): 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() - } - } - val validationRequired: Boolean get() = when (this) { LIST, LIST_GAME, LIST_STATIC, GRID, DOUBLE_LIST -> false diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt index fa900fa2..763da698 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt @@ -8,6 +8,7 @@ import android.widget.EditText import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import kotlinx.android.synthetic.main.fragment_progress_report.* +import net.pokeranalytics.android.calculus.Calculator import net.pokeranalytics.android.calculus.Report import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.CustomFieldCriteria @@ -41,6 +42,15 @@ abstract class AbstractReportFragment : DataManagerFragment() { this.deleteButtonShouldAppear = (this.primaryKey != null) } + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + + if (!this::_selectedReport.isInitialized) { + this._selectedReport = Report(Calculator.Options()) + } + + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState)