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.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
}
}

@ -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<RecyclerView.ViewHolder>() {
class DataListAdapter(var delegate: DisplayableDelegate, layout: Int? = null) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
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<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 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<DynamicRowInterface> {
val array = ArrayList<DynamicRowInterface>()
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
}
}

Loading…
Cancel
Save