From b33693488d819904b5838560589d6610e5019978 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 09:58:35 +0100 Subject: [PATCH] Refactor BottomSheet with type management --- .../adapter/components/DynamicRowInterface.kt | 2 +- .../components/BottomSheetDateFragment.kt | 7 +-- .../BottomSheetDoubleEditTextFragment.kt | 60 +++++++++++++++++++ .../BottomSheetDoubleListFragment.kt | 28 +++------ .../components/BottomSheetFragment.kt | 1 + .../components/BottomSheetListFragment.kt | 42 ++++++++----- ....xml => bottom_sheet_double_edit_text.xml} | 0 ..._game.xml => bottom_sheet_double_list.xml} | 0 app/src/main/res/layout/bottom_sheet_list.xml | 13 ++++ 9 files changed, 112 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt rename app/src/main/res/layout/{bottom_sheet_blinds.xml => bottom_sheet_double_edit_text.xml} (100%) rename app/src/main/res/layout/{bottom_sheet_game.xml => bottom_sheet_double_list.xml} (100%) create mode 100644 app/src/main/res/layout/bottom_sheet_list.xml diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt index c12a4886..3555cc90 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt @@ -54,7 +54,7 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { override var bottomSheetType: BottomSheetType = BottomSheetType.NONE get() { return when (this) { - BLINDS -> BottomSheetType.LIST + BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT GAME -> BottomSheetType.DOUBLE_LIST DATE -> BottomSheetType.DATE } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt index 06eab924..8933d705 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt @@ -6,12 +6,9 @@ import android.view.View import kotlinx.android.synthetic.main.bottom_sheet_date.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.TimeFrame class BottomSheetDateFragment : BottomSheetFragment() { - private var timeFrame: TimeFrame = TimeFrame() - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initData() @@ -20,7 +17,8 @@ class BottomSheetDateFragment : BottomSheetFragment() { override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue(timeFrame, row) + //TODO: Change that + valueDelegate.setValue("", row) dismiss() } @@ -29,7 +27,6 @@ class BottomSheetDateFragment : BottomSheetFragment() { */ private fun initData() { val data = getData() - timeFrame = if (data is TimeFrame) data else TimeFrame() } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt new file mode 100644 index 00000000..b9a07d76 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleEditTextFragment.kt @@ -0,0 +1,60 @@ +package net.pokeranalytics.android.ui.fragment.components + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +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.model.realm.Game +import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource +import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate + + +class BottomSheetDoubleEditTextFragment : BottomSheetFragment(), DisplayableDelegate { + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + override fun clickOnCheck() { + super.clickOnCheck() + valueDelegate.setValue("", row) + dismiss() + } + + override fun onStart() { + super.onStart() + smallBlind.requestFocus() + } + + override fun data(position: Int): DisplayableDataSource { + return Game() + } + + override fun onRowSelected(position: Int) { + } + + override fun size(): Int { + return 0 + } + + /** + * Init data + */ + private fun initData() { + val data = getData() + } + + /** + * Init UI + */ + private fun initUI() { + + LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_double_edit_text, view?.bottomSheetContainer, true) + + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt index a6ecf306..c4b400ab 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDoubleListFragment.kt @@ -1,23 +1,20 @@ package net.pokeranalytics.android.ui.fragment.components -import android.content.Context import android.os.Bundle import android.view.LayoutInflater import android.view.View import androidx.recyclerview.widget.LinearLayoutManager -import kotlinx.android.synthetic.main.bottom_sheet_game.* +import kotlinx.android.synthetic.main.bottom_sheet_double_list.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.ui.adapter.components.DataListAdapter import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate -import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate { - private var game: Game = Game() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -27,12 +24,14 @@ class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue(game, row) + //TODO: Change that + valueDelegate.setValue("", row) dismiss() } override fun data(position: Int): DisplayableDataSource { - return game + //TODO: Change that + return Game() } override fun onRowSelected(position: Int) { @@ -47,15 +46,15 @@ class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate */ private fun initData() { val data = getData() - game = if (data is Game) data else Game() - game.title = "Test" + //game = if (data is Game) data else Game() + //game.title = "Test" } /** * Init UI */ private fun initUI() { - LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game, view?.bottomSheetContainer, true) + LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_double_list, view?.bottomSheetContainer, true) val viewManager = LinearLayoutManager(requireContext()) val dataAdapter = DataListAdapter(this, R.layout.row_bottom_sheet_title) @@ -65,17 +64,6 @@ class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate layoutManager = viewManager adapter = dataAdapter } - - } - - - inner class TitleObject(var title: String) : DynamicRowInterface { - override fun localizedTitle(context: Context): String { - return title - } - - override var viewType: Int = 0 - override var bottomSheetType: BottomSheetType = BottomSheetType.NONE } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt index 6d76f8a3..a88045e3 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt @@ -52,6 +52,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa BottomSheetType.DATE -> BottomSheetDateFragment() BottomSheetType.LIST -> BottomSheetListFragment() BottomSheetType.DOUBLE_LIST -> BottomSheetDoubleListFragment() + BottomSheetType.DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment() else -> BottomSheetFragment() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt index acac6e0c..aaac5318 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetListFragment.kt @@ -3,15 +3,16 @@ package net.pokeranalytics.android.ui.fragment.components import android.os.Bundle import android.view.LayoutInflater import android.view.View -import android.view.inputmethod.EditorInfo -import kotlinx.android.synthetic.main.bottom_sheet_blinds.* +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.android.synthetic.main.bottom_sheet_double_list.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.model.realm.Game +import net.pokeranalytics.android.ui.adapter.components.DataListAdapter +import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource +import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate -class BottomSheetListFragment : BottomSheetFragment() { - - private var session: Session = Session() +class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -21,13 +22,23 @@ class BottomSheetListFragment : BottomSheetFragment() { override fun clickOnCheck() { super.clickOnCheck() - valueDelegate.setValue(session, row) + valueDelegate.setValue("", row) dismiss() } override fun onStart() { super.onStart() - smallBlind.requestFocus() + } + + override fun data(position: Int): DisplayableDataSource { + return Game() + } + + override fun onRowSelected(position: Int) { + } + + override fun size(): Int { + return 0 } /** @@ -35,7 +46,6 @@ class BottomSheetListFragment : BottomSheetFragment() { */ private fun initData() { val data = getData() - session = if (data is Session) data else Session() } /** @@ -43,13 +53,15 @@ class BottomSheetListFragment : BottomSheetFragment() { */ private fun initUI() { - LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_blinds, view?.bottomSheetContainer, true) + LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) + + val viewManager = LinearLayoutManager(requireContext()) + val dataAdapter = DataListAdapter(this, R.layout.row_bottom_sheet_title) - bigBlind.setOnEditorActionListener { v, actionId, event -> - if (actionId == EditorInfo.IME_ACTION_DONE) { - clickOnCheck() - } - true + gameNameRecyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + adapter = dataAdapter } } diff --git a/app/src/main/res/layout/bottom_sheet_blinds.xml b/app/src/main/res/layout/bottom_sheet_double_edit_text.xml similarity index 100% rename from app/src/main/res/layout/bottom_sheet_blinds.xml rename to app/src/main/res/layout/bottom_sheet_double_edit_text.xml diff --git a/app/src/main/res/layout/bottom_sheet_game.xml b/app/src/main/res/layout/bottom_sheet_double_list.xml similarity index 100% rename from app/src/main/res/layout/bottom_sheet_game.xml rename to app/src/main/res/layout/bottom_sheet_double_list.xml diff --git a/app/src/main/res/layout/bottom_sheet_list.xml b/app/src/main/res/layout/bottom_sheet_list.xml new file mode 100644 index 00000000..76f5da43 --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_list.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file