Working on BottomSheet

dev_raz_wip
Aurelien Hubert 7 years ago
parent 6f0137954e
commit 541e388bc7
  1. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  2. 13
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt
  3. 28
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetGameFragment.kt

@ -2,9 +2,10 @@ package net.pokeranalytics.android.model.realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.annotations.PrimaryKey import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource
import java.util.* import java.util.*
open class Game : RealmObject() { open class Game : RealmObject(), DisplayableDataSource {
@PrimaryKey @PrimaryKey
var id = UUID.randomUUID().toString() var id = UUID.randomUUID().toString()
@ -15,4 +16,8 @@ open class Game : RealmObject() {
// A shorter name for the game // A shorter name for the game
var shortName: String? = null var shortName: String? = null
override var title: String = ""
get() {
return name
}
} }

@ -3,8 +3,8 @@ package net.pokeranalytics.android.ui.adapter.components
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.row_session.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
interface DisplayableDelegate { interface DisplayableDelegate {
@ -17,12 +17,17 @@ interface DisplayableDataSource {
var title: String var title: String
} }
class DataListAdapter(var delegate: DisplayableDelegate) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { class DataListAdapter(var delegate: DisplayableDelegate, layout: Int? = null) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
inner class DataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class DataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(row: DisplayableDataSource, listener: View.OnClickListener) { fun bind(row: DisplayableDataSource, listener: View.OnClickListener) {
itemView.title.text = row.title //itemView.title.text = row.title
itemView.container.setOnClickListener(listener) //itemView.container.setOnClickListener(listener)
itemView.findViewById<AppCompatTextView>(R.id.title).text = row.title
itemView.findViewById<AppCompatTextView>(R.id.title).text = row.title
} }
} }

@ -9,13 +9,13 @@ import kotlinx.android.synthetic.main.bottom_sheet_game.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.model.realm.Game
import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter import net.pokeranalytics.android.ui.adapter.components.DataListAdapter
import net.pokeranalytics.android.ui.adapter.components.DynamicRowDelegate import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource
import net.pokeranalytics.android.ui.adapter.components.DisplayableDelegate
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface
class BottomSheetGameFragment : BottomSheetFragment(), DisplayableDelegate {
class BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate {
private var game: Game = Game() private var game: Game = Game()
@ -31,14 +31,18 @@ class BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate {
dismiss() dismiss()
} }
override fun adapterRows(): ArrayList<DynamicRowInterface> { override fun data(position: Int): DisplayableDataSource {
val array = ArrayList<DynamicRowInterface>() return game
array.add(TitleObject("Game 1")) }
array.add(TitleObject("Game 2"))
array.add(TitleObject("Game 3")) override fun onRowSelected(position: Int) {
return array
} }
override fun size(): Int {
return 1
}
/** /**
* Init data * Init data
*/ */
@ -54,12 +58,12 @@ class BottomSheetGameFragment : BottomSheetFragment(), DynamicRowDelegate {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game, view?.bottomSheetContainer, true) LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game, view?.bottomSheetContainer, true)
val viewManager = LinearLayoutManager(requireContext()) val viewManager = LinearLayoutManager(requireContext())
val dataAdapter = DynamicListAdapter(this) val dataAdapter = DataListAdapter(this)
gameNameRecyclerView.apply { gameNameRecyclerView.apply {
setHasFixedSize(true) setHasFixedSize(true)
layoutManager = viewManager layoutManager = viewManager
//adapter = dataAdapter adapter = dataAdapter
} }
} }

Loading…
Cancel
Save