|
|
|
|
@ -4,22 +4,24 @@ import android.os.Bundle |
|
|
|
|
import android.view.LayoutInflater |
|
|
|
|
import android.view.View |
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
import com.google.android.material.chip.Chip |
|
|
|
|
import io.realm.RealmResults |
|
|
|
|
import kotlinx.android.synthetic.main.bottom_sheet_game_list.* |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.LimitTypesAdapter |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableAdapter |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDelegate |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
|
import timber.log.Timber |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataSource, RowRepresentableDelegate { |
|
|
|
|
|
|
|
|
|
private var realmData: RealmResults<*>? = null |
|
|
|
|
private lateinit var dataAdapter: RowRepresentableAdapter |
|
|
|
|
private val values = ArrayList<Any?>() |
|
|
|
|
|
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
|
|
|
|
super.onViewCreated(view, savedInstanceState) |
|
|
|
|
@ -32,6 +34,9 @@ class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataS |
|
|
|
|
dataAdapter.notifyDataSetChanged() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun getValue(): Any? { |
|
|
|
|
return values |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun rowRepresentableForPosition(position: Int): RowRepresentable { |
|
|
|
|
realmData?.let { |
|
|
|
|
@ -61,8 +66,9 @@ class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataS |
|
|
|
|
override fun onIndexSelected(position: Int) { |
|
|
|
|
realmData?.let { |
|
|
|
|
val selectedData = it[position] |
|
|
|
|
selectedData?.let {data -> |
|
|
|
|
bottomSheetDelegate.setValue(data, row) |
|
|
|
|
selectedData?.let { data -> |
|
|
|
|
values[1] = data |
|
|
|
|
bottomSheetDelegate.setValue(values, row) |
|
|
|
|
dismiss() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -86,18 +92,23 @@ class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataS |
|
|
|
|
|
|
|
|
|
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true) |
|
|
|
|
|
|
|
|
|
values.add(0, null) |
|
|
|
|
values.add(1, null) |
|
|
|
|
|
|
|
|
|
val limits = ArrayList<String>() |
|
|
|
|
limits.addAll(resources.getStringArray(R.array.limit_short_name)) |
|
|
|
|
|
|
|
|
|
chipGroup.removeAllViews() |
|
|
|
|
for ((index, limit) in limits.withIndex()) { |
|
|
|
|
val chip = Chip(requireContext()) |
|
|
|
|
chip.text = limit |
|
|
|
|
chip.id = index |
|
|
|
|
chipGroup.addView(chip) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val viewManager1 = LinearLayoutManager(requireContext()) |
|
|
|
|
val gameDataAdapter1 = LimitTypesAdapter(limits) |
|
|
|
|
|
|
|
|
|
recyclerView1.apply { |
|
|
|
|
setHasFixedSize(true) |
|
|
|
|
layoutManager = viewManager1 |
|
|
|
|
adapter = gameDataAdapter1 |
|
|
|
|
isNestedScrollingEnabled = false |
|
|
|
|
chipGroup.setOnCheckedChangeListener { chipGroup, i -> |
|
|
|
|
Timber.d("Chip selected: $i") |
|
|
|
|
values[0] = i |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|