From 8e2ed30b402cf42d5cf7857f8507e382506b6163 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 18:17:49 +0100 Subject: [PATCH] Improve bottom sheet & update SettingRow to DataList --- .../ui/fragment/EditableDataFragment.kt | 10 ++++-- .../android/ui/fragment/NewSessionFragment.kt | 31 +++++++------------ .../components/BottomSheetDateFragment.kt | 7 ----- .../BottomSheetDoubleEditTextFragment.kt | 6 ---- .../BottomSheetDoubleListFragment.kt | 7 ----- .../components/BottomSheetEditTextFragment.kt | 6 ---- .../components/BottomSheetFragment.kt | 12 ++----- .../components/BottomSheetListFragment.kt | 5 --- 8 files changed, 23 insertions(+), 61 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 8f99b8a2..0cffb39e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -11,10 +11,12 @@ import io.realm.RealmObject import kotlinx.android.synthetic.main.fragment_editable_data.* import kotlinx.android.synthetic.main.fragment_editable_data.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.model.realm.DataList import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity -import net.pokeranalytics.android.ui.adapter.components.* +import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter +import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback +import net.pokeranalytics.android.ui.adapter.components.DynamicRowDelegate +import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment @@ -48,6 +50,10 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto Toast.makeText(requireContext(), "Clear: $row", Toast.LENGTH_SHORT).show() } + override fun clickOnDone(row: DynamicRowInterface) { + Toast.makeText(requireContext(), "Done: $row", Toast.LENGTH_SHORT).show() + } + override fun setValue(value: Any, row: DynamicRowInterface) { Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 5dad5ae1..bb8fce4f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -8,17 +8,16 @@ import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_new_session.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.Bankroll -import net.pokeranalytics.android.model.realm.Game -import net.pokeranalytics.android.model.realm.Location -import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity -import net.pokeranalytics.android.ui.adapter.components.* +import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter +import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback +import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface +import net.pokeranalytics.android.ui.adapter.components.SessionRow import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment -import timber.log.Timber class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { @@ -41,14 +40,11 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS } override fun clickOnAdd(row: DynamicRowInterface) { - Toast.makeText(requireContext(), "Add new element: $row", Toast.LENGTH_SHORT).show() - when(row) { - SessionRow.GAME -> EditableDataActivity.newInstance(requireContext(), SettingRow.GAME.ordinal) - SessionRow.BANKROLL -> EditableDataActivity.newInstance(requireContext(), SettingRow.BANKROLL.ordinal) - SessionRow.LOCATION -> EditableDataActivity.newInstance(requireContext(), SettingRow.LOCATION.ordinal) + SessionRow.GAME -> EditableDataActivity.newInstance(requireContext(), DataList.GAME.ordinal) + SessionRow.BANKROLL -> EditableDataActivity.newInstance(requireContext(), DataList.BANKROLL.ordinal) + SessionRow.LOCATION -> EditableDataActivity.newInstance(requireContext(), DataList.LOCATION.ordinal) } - } override fun clickOnClear(row: DynamicRowInterface) { @@ -60,20 +56,17 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row)) } - override fun setValue(value: Any, row: DynamicRowInterface) { - Timber.d("Value: $value") - Timber.d("Row: $row") + override fun clickOnDone(row: DynamicRowInterface) { + Toast.makeText(requireContext(), "clickOnDone: $row", Toast.LENGTH_SHORT).show() + } + override fun setValue(value: Any, row: DynamicRowInterface) { when(row) { SessionRow.GAME -> if (value is Game) currentSession.game = value SessionRow.BANKROLL -> if (value is Bankroll) currentSession.bankroll = value SessionRow.LOCATION -> if (value is Location) currentSession.location = value } - sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row)) - Timber.d("Index: ${SessionRow.values().indexOf(row)}") - - Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() } private fun initData() { 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 3304b3ee..2b4a28b1 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 @@ -15,13 +15,6 @@ class BottomSheetDateFragment : BottomSheetFragment() { initUI() } - override fun clickOnCheck() { - super.clickOnCheck() - //TODO: Change that - bottomSheetDelegate.setValue("", row) - dismiss() - } - /** * Init data */ 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 index 392b9cf6..38847de0 100644 --- 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 @@ -17,12 +17,6 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() { initUI() } - override fun clickOnCheck() { - super.clickOnCheck() - bottomSheetDelegate.setValue("", row) - dismiss() - } - override fun onStart() { super.onStart() editText1.requestFocus() 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 76b9180b..7615da1f 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 @@ -22,13 +22,6 @@ class BottomSheetDoubleListFragment : BottomSheetFragment(), DisplayableDelegate initUI() } - override fun clickOnCheck() { - super.clickOnCheck() - //TODO: Change that - bottomSheetDelegate.setValue("", row) - dismiss() - } - override fun data(position: Int): DisplayableDataSource { //TODO: Change that return Game() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt index 03b54c58..2e66c999 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt @@ -16,12 +16,6 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { initUI() } - override fun clickOnCheck() { - super.clickOnCheck() - bottomSheetDelegate.setValue("", row) - dismiss() - } - override fun onStart() { super.onStart() editText1.requestFocus() 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 ee906132..7b93338e 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 @@ -21,18 +21,15 @@ enum class BottomSheetType { DOUBLE_EDIT_TEXT, } -interface BottomSheetInterface { - fun clickOnCheck() -} - interface BottomSheetDelegate { fun clickOnAdd(row: DynamicRowInterface) fun clickOnClear(row: DynamicRowInterface) + fun clickOnDone(row: DynamicRowInterface) fun setValue(value: Any, row: DynamicRowInterface) } -open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterface { +open class BottomSheetFragment : BottomSheetDialogFragment() { lateinit var row: DynamicRowInterface lateinit var bottomSheetDelegate: BottomSheetDelegate @@ -79,9 +76,6 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) } - override fun clickOnCheck() { - } - /** * Init UI */ @@ -105,7 +99,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterfa true } bottomSheetToolbar.menu.findItem(R.id.actionCheck).setOnMenuItemClickListener { - clickOnCheck() + bottomSheetDelegate.clickOnDone(row) dismiss() true } 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 ef323ecf..6b83b8ff 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 @@ -24,11 +24,6 @@ class BottomSheetListFragment : BottomSheetFragment(), DisplayableDelegate { initUI() } - override fun clickOnCheck() { - super.clickOnCheck() - bottomSheetDelegate.setValue("", row) - } - override fun onResume() { super.onResume() dataAdapter.notifyDataSetChanged()