diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e581fdd5..f3d02022 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,11 @@
android:launchMode="singleTop" />
+
+
FilterActivity.newInstance(this@HomeActivity)
+ 0 -> FiltersActivity.newInstance(this@HomeActivity)
}
}
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt
new file mode 100644
index 00000000..a6b90282
--- /dev/null
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt
@@ -0,0 +1,245 @@
+package net.pokeranalytics.android.ui.fragment
+
+import android.os.Bundle
+import android.view.*
+import androidx.recyclerview.widget.LinearLayoutManager
+import io.realm.RealmObject
+import kotlinx.android.synthetic.main.fragment_filter_details.*
+import kotlinx.android.synthetic.main.fragment_filter_details.view.*
+import net.pokeranalytics.android.R
+import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
+import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
+import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
+import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
+import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
+import net.pokeranalytics.android.ui.view.RowRepresentable
+import net.pokeranalytics.android.ui.view.RowViewType
+import net.pokeranalytics.android.ui.view.rowrepresentable.FilterCategoryRow
+import net.pokeranalytics.android.ui.view.rowrepresentable.FilterSubcategoryRow
+import timber.log.Timber
+
+
+open class FilterDetailsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
+
+ lateinit var parentActivity: PokerAnalyticsActivity
+ lateinit var item: RealmObject
+ lateinit var rowRepresentableAdapter: RowRepresentableAdapter
+
+
+ private var rows: ArrayList = ArrayList()
+ private var filterMenu: Menu? = null
+ private var filterCategory: FilterCategoryRow? = null
+
+ var isUpdating = false
+ var shouldOpenKeyboard = true
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ return inflater.inflate(R.layout.fragment_filter_details, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ initUI()
+ initData()
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
+ /*
+ inflater?.inflate(R.menu.editable_data, menu)
+ this.filterMenu = menu
+ */
+ updateMenuUI()
+ super.onCreateOptionsMenu(menu, inflater)
+ }
+
+
+ override fun onOptionsItemSelected(item: MenuItem?): Boolean {
+ when (item!!.itemId) {
+ R.id.save -> saveData()
+ R.id.delete -> deleteData()
+ }
+ return true
+ }
+
+ override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
+ super.onRowSelected(position, row, fromAction)
+
+
+ filterCategory?.let {
+ for (subcategory in it.getSubcategories()) {
+ if (subcategory.getFilterRows(getRealm()).contains(row)) {
+ if (subcategory.getType() == FilterSubcategoryRow.Type.SINGLE) {
+ for (filterRow in subcategory.getFilterRows(getRealm())) {
+ selectedRows.remove(filterRow)
+ }
+ }
+ }
+ }
+ }
+
+ if (selectedRows.contains(row)) {
+ selectedRows.remove(row)
+ } else {
+ selectedRows.add(row)
+ }
+
+ rowRepresentableAdapter.notifyDataSetChanged()
+ }
+
+ val selectedRows = ArrayList()
+
+ override fun isSelected(row: RowRepresentable): Boolean {
+ return selectedRows.contains(row)
+ }
+
+ override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
+ super.onRowValueChanged(value, row)
+ }
+
+ override fun adapterRows(): List? {
+ return rows
+ }
+
+ override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
+ return rows[position]
+ }
+
+ override fun numberOfRows(): Int {
+ return rows.size
+ }
+
+ override fun viewTypeForPosition(position: Int): Int {
+ val rowViewType = rowRepresentableForPosition(position)?.viewType ?: -1
+ return if (rowViewType != -1) rowViewType else RowViewType.TITLE_CHECK.ordinal
+ }
+
+ override fun indexForRow(row: RowRepresentable): Int {
+ return rows.indexOf(row)
+ }
+
+
+ /**
+ * Init UI
+ */
+ private fun initUI() {
+ parentActivity = activity as PokerAnalyticsActivity
+ parentActivity.setSupportActionBar(toolbar)
+ parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ setHasOptionsMenu(true)
+
+ val viewManager = LinearLayoutManager(requireContext())
+
+ recyclerView.apply {
+ setHasFixedSize(true)
+ layoutManager = viewManager
+ }
+ }
+
+ /**
+ * Init data
+ */
+ private fun initData() {
+
+ Timber.d("initData")
+
+ this.appBar.toolbar.title = getString(R.string.filter)
+
+ filterCategory?.let {
+
+ this.appBar.toolbar.title = it.localizedTitle(requireContext())
+
+ this.rows.clear()
+ for (subcategory in it.getSubcategories()) {
+ this.rows.add(subcategory)
+ this.rows.addAll(subcategory.getFilterRows(getRealm()))
+ }
+
+ this.rowRepresentableAdapter = RowRepresentableAdapter(this, this)
+ this.recyclerView.adapter = rowRepresentableAdapter
+ }
+
+ }
+
+ /**
+ * Update menu UI
+ */
+ private fun updateMenuUI() {
+ /*
+ editableMenu?.findItem(R.id.delete)?.isVisible = isUpdating
+ editableMenu?.findItem(R.id.save)?.isVisible = true
+ */
+ }
+
+ /**
+ * Save data
+ */
+ fun saveData() {
+ /*
+ if ((this.item as Savable).isValidForSave()) {
+ this.getRealm().executeTransaction {
+ val item = it.copyToRealmOrUpdate(this.item)
+
+ val uniqueIdentifier = if (item is Identifiable) {
+ item.id
+ } else ""
+
+ finishActivityWithResult(uniqueIdentifier)
+ }
+ } else {
+ val message = (this.item as Savable).getFailedSaveMessage()
+ val builder = AlertDialog.Builder(requireContext())
+ .setMessage(message)
+ .setNegativeButton(R.string.ok, null)
+ builder.show()
+ }
+ */
+ }
+
+ /**
+ * Delete data
+ */
+ private fun deleteData() {
+ /*
+ val builder = AlertDialog.Builder(requireContext())
+ builder.setTitle(R.string.warning)
+ .setMessage(R.string.are_you_sure_you_want_to_do_that_)
+ .setNegativeButton(R.string.no, null)
+ .setPositiveButton(R.string.yes) { _, _ ->
+ //TODO: Maybe update this code, does the object need to be managed?
+ this.getRealm().executeTransaction {
+ this.liveDataType.deleteData(it, (this.item as Manageable))
+ }
+ this.activity?.finish()
+ }
+ builder.show()
+ */
+ }
+
+ /**
+ * Finish the activity with a result
+ */
+ private fun finishActivityWithResult(uniqueIdentifier: String) {
+ /*
+ val intent = Intent()
+ intent.putExtra(EditableDataActivity.IntentKey.DATA_TYPE.keyName, dataType)
+ intent.putExtra(EditableDataActivity.IntentKey.PRIMARY_KEY.keyName, uniqueIdentifier)
+ activity?.setResult(RESULT_OK, intent)
+ */
+ activity?.finish()
+ }
+
+ /**
+ * Set fragment data
+ */
+ fun setData(filterCategory: Int) {
+
+ this.filterCategory = FilterCategoryRow.values()[filterCategory]
+
+ /*
+ this.dataType = dataType
+ this.liveDataType = LiveData.values()[dataType]
+ this.primaryKey = primaryKey
+ */
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FiltersFragment.kt
similarity index 79%
rename from app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDataFragment.kt
rename to app/src/main/java/net/pokeranalytics/android/ui/fragment/FiltersFragment.kt
index cc530abe..ed9186d9 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDataFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FiltersFragment.kt
@@ -5,24 +5,25 @@ import android.view.*
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.RealmObject
import kotlinx.android.synthetic.main.fragment_editable_data.*
-import kotlinx.android.synthetic.main.fragment_filter.view.*
+import kotlinx.android.synthetic.main.fragment_filters.view.*
import net.pokeranalytics.android.R
+import net.pokeranalytics.android.ui.activity.FilterDetailsActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
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.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
-import net.pokeranalytics.android.ui.view.rowrepresentable.FilterRow
+import net.pokeranalytics.android.ui.view.rowrepresentable.FilterCategoryRow
+import timber.log.Timber
-open class FilterDataFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
+open class FiltersFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
lateinit var parentActivity: PokerAnalyticsActivity
lateinit var item: RealmObject
lateinit var rowRepresentableAdapter: RowRepresentableAdapter
-
private var rows: ArrayList = ArrayList()
private var filterMenu: Menu? = null
private var dataType: Int? = null
@@ -32,7 +33,7 @@ open class FilterDataFragment : PokerAnalyticsFragment(), StaticRowRepresentable
var shouldOpenKeyboard = true
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.fragment_filter, container, false)
+ return inflater.inflate(R.layout.fragment_filters, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -65,6 +66,12 @@ open class FilterDataFragment : PokerAnalyticsFragment(), StaticRowRepresentable
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
super.onRowSelected(position, row, fromAction)
+
+ if (row is FilterCategoryRow) {
+ Timber.d("Subcategories: ${row.getSubcategories()}")
+ FilterDetailsActivity.newInstanceForResult(this, row.ordinal, 1000)
+ }
+
}
override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
@@ -95,37 +102,11 @@ open class FilterDataFragment : PokerAnalyticsFragment(), StaticRowRepresentable
this.appBar.toolbar.title = getString(R.string.filter)
- rows.addAll(FilterRow.values())
+ rows.addAll(FilterCategoryRow.values())
this.rowRepresentableAdapter = RowRepresentableAdapter(this, this)
this.recyclerView.adapter = rowRepresentableAdapter
- /*
- if (this.dataType != null) {
- val proxyItem: RealmObject? = this.liveDataType.getData(this.getRealm(), primaryKey)
- proxyItem?.let {
- //TODO: Localize
- this.appBar.toolbar.title = "Update ${this.liveDataType.localizedTitle(this.parentActivity).toLowerCase().capitalize()}"
- isUpdating = true
- } ?: run {
- //TODO: Localize
- this.appBar.toolbar.title = this.liveDataType.newEntityLocalizedTitle(requireContext())
- }
- this.item = this.liveDataType.updateOrCreate(this.getRealm(), primaryKey)
-
- val dataSource = getDataSource()
- this.rowRepresentableAdapter = RowRepresentableAdapter(getDataSource(), this)
- this.recyclerView.adapter = rowRepresentableAdapter
-
- // When creating an object, open automatically the keyboard for the first row
- if (!isUpdating && shouldOpenKeyboard) {
- val row = dataSource.adapterRows()?.firstOrNull()
- row?.let {
- onRowSelected(0, it)
- }
- }
- }
- */
}
/**
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
index 2a82aee7..b828c444 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
@@ -41,6 +41,7 @@ enum class RowViewType(private var layoutRes: Int) {
INFO(R.layout.row_info),
// Row
+ CLASSIC_HEADER_TITLE(R.layout.row_header_title),
TITLE(R.layout.row_title),
TITLE_ARROW(R.layout.row_title_arrow),
TITLE_VALUE(R.layout.row_title_value),
@@ -75,7 +76,7 @@ enum class RowViewType(private var layoutRes: Int) {
HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG, LOCATION_TITLE, INFO -> CustomizableRowViewHolder(layout)
// Row View Holder
- TITLE, TITLE_ARROW, TITLE_VALUE, TITLE_VALUE_ARROW, TITLE_GRID, TITLE_SWITCH, TITLE_CHECK, DATA, BOTTOM_SHEET_DATA, LOADER -> RowViewHolder(
+ CLASSIC_HEADER_TITLE, TITLE, TITLE_ARROW, TITLE_VALUE, TITLE_VALUE_ARROW, TITLE_GRID, TITLE_SWITCH, TITLE_CHECK, DATA, BOTTOM_SHEET_DATA, LOADER -> RowViewHolder(
layout
)
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt
new file mode 100644
index 00000000..af5d5f88
--- /dev/null
+++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt
@@ -0,0 +1,91 @@
+package net.pokeranalytics.android.ui.view.rowrepresentable
+
+import net.pokeranalytics.android.R
+import net.pokeranalytics.android.ui.view.RowRepresentable
+import net.pokeranalytics.android.ui.view.RowViewType
+
+enum class FilterCategoryRow : RowRepresentable {
+
+ GENERAL,
+ DATE,
+ DURATION,
+ SESSION,
+ CASH,
+ TOURNAMENT,
+ ONLINE,
+ RESULT,
+ TRANSACTION_TYPES,
+
+ // Title Custom fields
+ LOCATION,
+ BANKROLL,
+ PLAYERS;
+
+ override val resId: Int?
+ get() {
+ return when (this) {
+ GENERAL -> R.string.general
+ DATE -> R.string.date
+ DURATION -> R.string.duration
+ SESSION -> R.string.session
+ CASH -> R.string.cash
+ TOURNAMENT -> R.string.tournament
+ ONLINE -> R.string.online
+ RESULT -> R.string.result
+ TRANSACTION_TYPES -> R.string.operation_types
+ LOCATION -> R.string.location
+ BANKROLL -> R.string.bankroll
+ PLAYERS -> R.string.players
+ }
+ }
+
+ override val viewType: Int
+ get() {
+ return when (this) {
+ GENERAL, DATE, DURATION, SESSION, CASH, TOURNAMENT, ONLINE, RESULT, TRANSACTION_TYPES,
+ LOCATION, BANKROLL, PLAYERS -> RowViewType.TITLE_VALUE_ARROW.ordinal
+ }
+ }
+
+ /**
+ * Get subcategories of filters
+ */
+ fun getSubcategories(): ArrayList {
+ val subcategories = ArrayList()
+
+ when (this) {
+ GENERAL -> subcategories.addAll(
+ arrayListOf(
+ FilterSubcategoryRow.CASH_TOURNAMENT, FilterSubcategoryRow.LIVE_ONLINE, FilterSubcategoryRow.GAME,
+ FilterSubcategoryRow.LIMIT_TYPE, FilterSubcategoryRow.TABLE_SIZE
+ )
+ )
+ DATE -> subcategories.addAll(
+ arrayListOf(
+ FilterSubcategoryRow.DYNAMIC_DATE, FilterSubcategoryRow.FIXED_DATE, FilterSubcategoryRow.DURATION, FilterSubcategoryRow.YEAR,
+ FilterSubcategoryRow.WEEKDAYS_OR_WEEKEND, FilterSubcategoryRow.DAY_OF_WEEK, FilterSubcategoryRow.MONTH_OF_YEAR
+ )
+ )
+ DURATION -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.SESSION_DURATION, FilterSubcategoryRow.RANGE))
+ SESSION -> subcategories.addAll(arrayListOf())
+ CASH -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.BLINDS, FilterSubcategoryRow.CASH_RE_BUY_COUNT))
+ TOURNAMENT -> subcategories.addAll(
+ arrayListOf(
+ FilterSubcategoryRow.TOURNAMENT_TYPE, FilterSubcategoryRow.COMPLETION_PERCENTAGE, FilterSubcategoryRow.PLACE,
+ FilterSubcategoryRow.PLAYERS_COUNT, FilterSubcategoryRow.TOURNAMENT_RE_BUY_COUNT, FilterSubcategoryRow.BUY_IN
+ )
+ )
+ ONLINE -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.MULTI_TABLING))
+ RESULT -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.VALUE))
+ TRANSACTION_TYPES -> subcategories.addAll(arrayListOf())
+ LOCATION -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.LOCATION))
+ BANKROLL -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.BANKROLL))
+ PLAYERS -> subcategories.addAll(arrayListOf(FilterSubcategoryRow.NUMBER_OF_PLAYERS, FilterSubcategoryRow.MULTI_PLAYER))
+
+ }
+
+ return subcategories
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterRow.kt
index 0b5f2b7a..67ee210f 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterRow.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterRow.kt
@@ -6,45 +6,22 @@ import net.pokeranalytics.android.ui.view.RowViewType
enum class FilterRow : RowRepresentable {
- GENERAL,
- DATE,
- DURATION,
- SESSION,
- CASH,
+ // General
+ CASH_GAME,
TOURNAMENT,
- ONLINE,
- RESULT,
- TRANSACTION_TYPES,
-
- // Title Custom fields
- LOCATION,
- BANKROLL,
- PLAYERS;
+ LIVE,
+ ONLINE;
override val resId: Int?
get() {
return when (this) {
- GENERAL -> R.string.general
- DATE -> R.string.date
- DURATION -> R.string.duration
- SESSION -> R.string.session
- CASH -> R.string.cash
+ CASH_GAME -> R.string.cash_game
TOURNAMENT -> R.string.tournament
+ LIVE -> R.string.live
ONLINE -> R.string.online
- RESULT -> R.string.result
- TRANSACTION_TYPES -> R.string.operation_types
- LOCATION -> R.string.location
- BANKROLL -> R.string.bankroll
- PLAYERS -> R.string.players
}
}
- override val viewType: Int
- get() {
- return when (this) {
- GENERAL, DATE, DURATION, SESSION, CASH, TOURNAMENT, ONLINE, RESULT, TRANSACTION_TYPES,
- LOCATION, BANKROLL, PLAYERS -> RowViewType.TITLE_VALUE_ARROW.ordinal
- }
- }
+ override val viewType: Int = RowViewType.TITLE_CHECK.ordinal
}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSubcategoryRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSubcategoryRow.kt
new file mode 100644
index 00000000..a9a30dbc
--- /dev/null
+++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSubcategoryRow.kt
@@ -0,0 +1,146 @@
+package net.pokeranalytics.android.ui.view.rowrepresentable
+
+import io.realm.Realm
+import io.realm.RealmResults
+import net.pokeranalytics.android.R
+import net.pokeranalytics.android.model.Limit
+import net.pokeranalytics.android.model.LiveData
+import net.pokeranalytics.android.model.realm.Game
+import net.pokeranalytics.android.ui.view.RowRepresentable
+import net.pokeranalytics.android.ui.view.RowViewType
+
+enum class FilterSubcategoryRow : RowRepresentable {
+
+ // General
+ CASH_TOURNAMENT,
+ LIVE_ONLINE,
+ GAME,
+ LIMIT_TYPE,
+ TABLE_SIZE,
+
+ // Date
+ DYNAMIC_DATE,
+ FIXED_DATE,
+ DURATION,
+ YEAR,
+ WEEKDAYS_OR_WEEKEND,
+ DAY_OF_WEEK,
+ MONTH_OF_YEAR,
+
+ // Duration
+ SESSION_DURATION,
+ RANGE,
+
+ // Sessions
+ // -
+
+ // Cash
+ BLINDS,
+ CASH_RE_BUY_COUNT,
+
+ // Tournament
+ TOURNAMENT_TYPE,
+ COMPLETION_PERCENTAGE,
+ PLACE,
+ PLAYERS_COUNT,
+ TOURNAMENT_RE_BUY_COUNT,
+ BUY_IN,
+
+ // Online
+ MULTI_TABLING,
+
+ // Result
+ VALUE,
+
+ // Transaction types
+ // -
+
+ // Location
+ LOCATION,
+
+ // Bankroll
+ BANKROLL,
+
+ // Players
+ NUMBER_OF_PLAYERS,
+ MULTI_PLAYER;
+
+ enum class Type {
+ SINGLE,
+ MULTIPLE,
+ }
+
+ override val resId: Int?
+ get() {
+ return when(this) {
+ CASH_TOURNAMENT -> R.string.cash_or_tournament
+ LIVE_ONLINE -> R.string.live_or_online
+ GAME -> R.string.game
+ LIMIT_TYPE -> R.string.type_de_limite
+ TABLE_SIZE -> R.string.table_size
+
+ DYNAMIC_DATE -> R.string.dynamic_date
+ FIXED_DATE -> R.string.fixed_date
+ DURATION -> R.string.duration
+ YEAR -> R.string.year
+ WEEKDAYS_OR_WEEKEND -> R.string.weekdays_or_weekend
+ DAY_OF_WEEK -> R.string.day_of_the_week
+ MONTH_OF_YEAR -> R.string.month_of_the_year
+
+ SESSION_DURATION -> R.string.session_duration
+ RANGE -> R.string.hour_slot
+
+ BLINDS -> R.string.blinds
+ CASH_RE_BUY_COUNT -> R.string.rebuy_count
+
+ TOURNAMENT_TYPE -> R.string.tournament_type
+ COMPLETION_PERCENTAGE -> R.string.tournament_completion_percentage_interval
+ PLACE -> R.string.place
+ PLAYERS_COUNT -> R.string.players_count
+ TOURNAMENT_RE_BUY_COUNT -> R.string.rebuy_count
+ BUY_IN -> R.string.buyin
+
+ MULTI_TABLING -> R.string.multi_tabling
+
+ VALUE -> R.string.value
+
+ LOCATION -> R.string.location
+
+ BANKROLL -> R.string.bankroll
+
+ NUMBER_OF_PLAYERS -> R.string.number_of_players
+ MULTI_PLAYER -> R.string.multiplayer
+ }
+ }
+
+ override val viewType: Int = RowViewType.CLASSIC_HEADER_TITLE.ordinal
+
+ /**
+ * Return the type of the selection
+ */
+ fun getType() : Type {
+ return when(this) {
+ GAME -> Type.MULTIPLE
+ else -> Type.SINGLE
+ }
+ }
+
+ /**
+ * Returns the filter rows
+ */
+ fun getFilterRows(realm: Realm) : ArrayList {
+ val rows = ArrayList()
+ when(this) {
+ CASH_TOURNAMENT -> rows.addAll(arrayListOf(FilterRow.CASH_GAME, FilterRow.TOURNAMENT))
+ LIVE_ONLINE -> rows.addAll(arrayListOf(FilterRow.LIVE, FilterRow.ONLINE))
+ GAME -> {
+ val games = realm.copyFromRealm(LiveData.GAME.items(realm) as RealmResults)
+ rows.addAll(games)
+ }
+ LIMIT_TYPE -> rows.addAll(Limit.values())
+ else -> rows.addAll(arrayListOf())
+ }
+ return rows
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_filter.xml b/app/src/main/res/layout/activity_filter_details.xml
similarity index 100%
rename from app/src/main/res/layout/activity_filter.xml
rename to app/src/main/res/layout/activity_filter_details.xml
diff --git a/app/src/main/res/layout/activity_filters.xml b/app/src/main/res/layout/activity_filters.xml
new file mode 100644
index 00000000..70454fb9
--- /dev/null
+++ b/app/src/main/res/layout/activity_filters.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_filter.xml b/app/src/main/res/layout/fragment_filter_details.xml
similarity index 100%
rename from app/src/main/res/layout/fragment_filter.xml
rename to app/src/main/res/layout/fragment_filter_details.xml
diff --git a/app/src/main/res/layout/fragment_filters.xml b/app/src/main/res/layout/fragment_filters.xml
new file mode 100644
index 00000000..bab049a9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_filters.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file