|
|
|
|
@ -2,8 +2,10 @@ package net.pokeranalytics.android.ui.fragment.components.bottomsheet |
|
|
|
|
|
|
|
|
|
import android.os.Bundle |
|
|
|
|
import android.view.View |
|
|
|
|
import io.realm.RealmList |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
|
import timber.log.Timber |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Manage multiple items selection in a bottom sheet list |
|
|
|
|
@ -12,12 +14,6 @@ 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 |
|
|
|
|
} |
|
|
|
|
@ -28,13 +24,11 @@ open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { |
|
|
|
|
|
|
|
|
|
if (selectedRows.contains(row)) { |
|
|
|
|
selectedRows.remove(row) |
|
|
|
|
} else { |
|
|
|
|
selectedRows.add(row) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dataAdapter.refreshRow(row) |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
@ -52,4 +46,14 @@ open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() { |
|
|
|
|
return selectedRows.contains(row) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun initData() { |
|
|
|
|
super.initData() |
|
|
|
|
getData().first().defaultValue?.let { |
|
|
|
|
|
|
|
|
|
(it as RealmList<*>).forEach{row -> |
|
|
|
|
selectedRows.add(row as RowRepresentable) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |