Add BottomSheetMultiSelection

feature/top10
Aurelien Hubert 7 years ago
parent c29572f79e
commit ede2c8e706
  1. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt
  2. 55
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt

@ -28,6 +28,7 @@ enum class BottomSheetType {
LIST_STATIC, LIST_STATIC,
LIST_GAME, LIST_GAME,
DOUBLE_LIST, DOUBLE_LIST,
MULTI_SELECTION,
GRID, GRID,
EDIT_TEXT, EDIT_TEXT,
EDIT_TEXT_MULTI_LINES, EDIT_TEXT_MULTI_LINES,
@ -59,6 +60,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
BottomSheetType.LIST -> BottomSheetListFragment() BottomSheetType.LIST -> BottomSheetListFragment()
BottomSheetType.LIST_GAME -> BottomSheetListGameFragment() BottomSheetType.LIST_GAME -> BottomSheetListGameFragment()
BottomSheetType.LIST_STATIC -> BottomSheetStaticListFragment() BottomSheetType.LIST_STATIC -> BottomSheetStaticListFragment()
BottomSheetType.MULTI_SELECTION -> BottomSheetMultiSelectionFragment()
BottomSheetType.GRID -> BottomSheetTableSizeGridFragment() BottomSheetType.GRID -> BottomSheetTableSizeGridFragment()
BottomSheetType.DOUBLE_LIST -> BottomSheetListGameFragment() BottomSheetType.DOUBLE_LIST -> BottomSheetListGameFragment()
BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment() BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment()

@ -0,0 +1,55 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle
import android.view.View
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
/**
* Manage multiple items selection in a bottom sheet list
*/
open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() {
private val selectedRows: ArrayList<RowRepresentable> = ArrayList()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
}
override fun viewTypeForPosition(position: Int): Int {
return RowViewType.TITLE_CHECK.ordinal
}
//TODO: Set the correct values
override fun getValue(): Any? {
return selectedRows
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
if (selectedRows.contains(row)) {
selectedRows.remove(row)
} else {
selectedRows.add(row)
}
dataAdapter.refreshRow(row)
/*
realmData?.let {
val selectedData = it[position]
selectedData?.let {data ->
this.delegate.onRowValueChanged(data, this.row)
dismiss()
}
}
*/
}
override fun isSelected(row: RowRepresentable): Boolean {
return selectedRows.contains(row)
}
}
Loading…
Cancel
Save