From 6f0137954ea7946e3ab41d9c5cedbdf2050fce23 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 08:12:48 +0100 Subject: [PATCH 1/3] Create BottomSheetDelegate --- .../android/ui/fragment/NewSessionFragment.kt | 4 ++-- .../ui/fragment/components/BottomSheetFragment.kt | 10 +++++++--- .../ui/fragment/components/PokerAnalyticsFragment.kt | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) 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 baf60064..ee76e43e 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 @@ -13,12 +13,12 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity 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.EditableDataDelegate +import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.BottomSheetType import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment -class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, EditableDataDelegate { +class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { private lateinit var newSession: Session 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 2604736d..b90807f3 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 @@ -11,7 +11,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.android.synthetic.main.fragment_bottom_sheet.* import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface -import net.pokeranalytics.android.ui.adapter.components.EditableDataDelegate enum class BottomSheetType { NONE, @@ -29,15 +28,20 @@ interface BottomSheetInterface { fun clickOnAdd() } +interface BottomSheetDelegate { + fun setValue(value: Any, row: DynamicRowInterface) +} + + open class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetInterface { lateinit var row: DynamicRowInterface - lateinit var valueDelegate: EditableDataDelegate + lateinit var valueDelegate: BottomSheetDelegate private var data: Any? = null companion object { - fun create( fragmentManager: FragmentManager?, row: DynamicRowInterface, valueDelegate: EditableDataDelegate, data: Any?): BottomSheetFragment { + fun create( fragmentManager: FragmentManager?, row: DynamicRowInterface, valueDelegate: BottomSheetDelegate, data: Any?): BottomSheetFragment { val bottomSheetFragment = when (row.bottomSheetType) { BottomSheetType.BLINDS -> BottomSheetBlindsFragment() 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 1c6365f5..399b449c 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 @@ -4,6 +4,7 @@ import android.os.Bundle import androidx.fragment.app.Fragment import io.realm.Realm import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface open class PokerAnalyticsFragment: Fragment() { From 541e388bc7ef315599cf4f22c02b56f23ad8233a Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 08:41:42 +0100 Subject: [PATCH 2/3] Working on BottomSheet --- .../android/model/realm/Game.kt | 7 ++++- .../ui/adapter/components/DataListAdapter.kt | 13 ++++++--- .../components/BottomSheetGameFragment.kt | 28 +++++++++++-------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt index 46b1285e..4bd8134e 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt @@ -2,9 +2,10 @@ package net.pokeranalytics.android.model.realm import io.realm.RealmObject import io.realm.annotations.PrimaryKey +import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource import java.util.* -open class Game : RealmObject() { +open class Game : RealmObject(), DisplayableDataSource { @PrimaryKey var id = UUID.randomUUID().toString() @@ -15,4 +16,8 @@ open class Game : RealmObject() { // A shorter name for the game var shortName: String? = null + override var title: String = "" + get() { + return name + } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt index 7ab9e23b..d5fb592e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt @@ -3,8 +3,8 @@ package net.pokeranalytics.android.ui.adapter.components import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.widget.AppCompatTextView import androidx.recyclerview.widget.RecyclerView -import kotlinx.android.synthetic.main.row_session.view.* import net.pokeranalytics.android.R interface DisplayableDelegate { @@ -17,12 +17,17 @@ interface DisplayableDataSource { var title: String } -class DataListAdapter(var delegate: DisplayableDelegate) : RecyclerView.Adapter() { +class DataListAdapter(var delegate: DisplayableDelegate, layout: Int? = null) : RecyclerView.Adapter() { inner class DataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bind(row: DisplayableDataSource, listener: View.OnClickListener) { - itemView.title.text = row.title - itemView.container.setOnClickListener(listener) + //itemView.title.text = row.title + //itemView.container.setOnClickListener(listener) + + itemView.findViewById(R.id.title).text = row.title + itemView.findViewById(R.id.title).text = row.title + + } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetGameFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetGameFragment.kt index f6cdec3c..bad25aef 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetGameFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetGameFragment.kt @@ -9,13 +9,13 @@ import kotlinx.android.synthetic.main.bottom_sheet_game.* 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.DynamicListAdapter -import net.pokeranalytics.android.ui.adapter.components.DynamicRowDelegate +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 BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate { +class BottomSheetGameFragment : BottomSheetFragment(), DisplayableDelegate { private var game: Game = Game() @@ -31,14 +31,18 @@ class BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate { dismiss() } - override fun adapterRows(): ArrayList { - val array = ArrayList() - array.add(TitleObject("Game 1")) - array.add(TitleObject("Game 2")) - array.add(TitleObject("Game 3")) - return array + override fun data(position: Int): DisplayableDataSource { + return game + } + + override fun onRowSelected(position: Int) { } + override fun size(): Int { + return 1 + } + + /** * Init data */ @@ -54,12 +58,12 @@ class BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate { LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game, view?.bottomSheetContainer, true) val viewManager = LinearLayoutManager(requireContext()) - val dataAdapter = DynamicListAdapter(this) + val dataAdapter = DataListAdapter(this) gameNameRecyclerView.apply { setHasFixedSize(true) layoutManager = viewManager - //adapter = dataAdapter + adapter = dataAdapter } } From faf15689a18167488304a2885284b2bed4702bc7 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Mon, 18 Feb 2019 08:50:04 +0100 Subject: [PATCH 3/3] Merge (update delegate interface) --- .../android/ui/fragment/EditableDataFragment.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 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 5c2443b1..f15c5ee7 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 @@ -8,16 +8,14 @@ import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import io.realm.Realm import io.realm.RealmObject -import io.realm.kotlin.createObject import kotlinx.android.synthetic.main.fragment_new_session.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.ui.adapter.components.* +import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment -import net.pokeranalytics.android.ui.fragment.components.BottomSheetType import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment -class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, EditableDataDelegate { +class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { private lateinit var item: RealmObject private var dataType: SettingRow = SettingRow.BANKROLL