parent
3f9c0cfb11
commit
d888798044
@ -0,0 +1,74 @@ |
|||||||
|
package net.pokeranalytics.android.ui.fragment.components.bottomsheet |
||||||
|
|
||||||
|
import android.os.Bundle |
||||||
|
import android.view.LayoutInflater |
||||||
|
import android.view.View |
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager |
||||||
|
import io.realm.RealmResults |
||||||
|
import kotlinx.android.synthetic.main.bottom_sheet_list.* |
||||||
|
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* |
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.model.TournamentKind |
||||||
|
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource |
||||||
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
||||||
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
||||||
|
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource |
||||||
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||||
|
import net.pokeranalytics.android.ui.view.RowViewType |
||||||
|
|
||||||
|
class BottomSheetStaticListFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, |
||||||
|
RowRepresentableDelegate { |
||||||
|
|
||||||
|
private var staticRows: List<RowRepresentable> = emptyList() |
||||||
|
private lateinit var dataAdapter: RowRepresentableAdapter |
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
||||||
|
super.onViewCreated(view, savedInstanceState) |
||||||
|
initData() |
||||||
|
initUI() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onResume() { |
||||||
|
super.onResume() |
||||||
|
dataAdapter.notifyDataSetChanged() |
||||||
|
} |
||||||
|
|
||||||
|
override fun adapterRows(): List<RowRepresentable>? { |
||||||
|
return this.staticRows |
||||||
|
} |
||||||
|
|
||||||
|
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { |
||||||
|
this.delegate.onRowValueChanged((row as TournamentKind).ordinal, this.row) |
||||||
|
dismiss() |
||||||
|
super.onRowSelected(position, row, fromAction) |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Init data |
||||||
|
*/ |
||||||
|
private fun initData() { |
||||||
|
val bottomSheetData = this.getData() |
||||||
|
if (bottomSheetData.isNotEmpty() && bottomSheetData.first().staticData != null) { |
||||||
|
this.staticRows = bottomSheetData.first().staticData as List<RowRepresentable> |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Init UI |
||||||
|
*/ |
||||||
|
private fun initUI() { |
||||||
|
|
||||||
|
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) |
||||||
|
|
||||||
|
val viewManager = LinearLayoutManager(requireContext()) |
||||||
|
dataAdapter = RowRepresentableAdapter(this, this) |
||||||
|
|
||||||
|
reyclerView.apply { |
||||||
|
setHasFixedSize(true) |
||||||
|
layoutManager = viewManager |
||||||
|
adapter = dataAdapter |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue