diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt index 712fcf89..2ce2f4b8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt @@ -28,6 +28,7 @@ enum class BottomSheetType { LIST_STATIC, LIST_GAME, DOUBLE_LIST, + MULTI_SELECTION, GRID, EDIT_TEXT, EDIT_TEXT_MULTI_LINES, @@ -59,6 +60,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { BottomSheetType.LIST -> BottomSheetListFragment() BottomSheetType.LIST_GAME -> BottomSheetListGameFragment() BottomSheetType.LIST_STATIC -> BottomSheetStaticListFragment() + BottomSheetType.MULTI_SELECTION -> BottomSheetMultiSelectionFragment() BottomSheetType.GRID -> BottomSheetTableSizeGridFragment() BottomSheetType.DOUBLE_LIST -> BottomSheetListGameFragment() BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt new file mode 100644 index 00000000..cee4e158 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt @@ -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 = 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) + } + +} \ No newline at end of file