|
|
|
@ -1,14 +1,16 @@ |
|
|
|
package net.pokeranalytics.android.ui.fragment |
|
|
|
package net.pokeranalytics.android.ui.fragment |
|
|
|
|
|
|
|
|
|
|
|
import android.app.Activity |
|
|
|
|
|
|
|
import android.app.Activity.RESULT_OK |
|
|
|
import android.app.Activity.RESULT_OK |
|
|
|
import android.content.Intent |
|
|
|
import android.content.Intent |
|
|
|
import android.os.Bundle |
|
|
|
import android.os.Bundle |
|
|
|
import android.view.* |
|
|
|
import android.view.* |
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
|
|
|
import com.google.android.material.chip.Chip |
|
|
|
import io.realm.kotlin.where |
|
|
|
import io.realm.kotlin.where |
|
|
|
import kotlinx.android.synthetic.main.fragment_editable_data.* |
|
|
|
import kotlinx.android.synthetic.main.fragment_editable_data.appBar |
|
|
|
import kotlinx.android.synthetic.main.fragment_filters.view.* |
|
|
|
import kotlinx.android.synthetic.main.fragment_editable_data.recyclerView |
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_filters.* |
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_filters.view.toolbar |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
import net.pokeranalytics.android.ui.activity.FilterDetailsActivity |
|
|
|
import net.pokeranalytics.android.ui.activity.FilterDetailsActivity |
|
|
|
@ -16,10 +18,13 @@ import net.pokeranalytics.android.ui.activity.FiltersActivity |
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate |
|
|
|
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource |
|
|
|
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.extensions.px |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.RealmFragment |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.RealmFragment |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterableType |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterableType |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterCategoryRow |
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterCategoryRow |
|
|
|
|
|
|
|
import net.pokeranalytics.android.util.Preferences |
|
|
|
|
|
|
|
import net.pokeranalytics.android.util.sorted |
|
|
|
import timber.log.Timber |
|
|
|
import timber.log.Timber |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -56,7 +61,7 @@ open class FiltersFragment : RealmFragment(), StaticRowRepresentableDataSource, |
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
|
|
|
super.onActivityResult(requestCode, resultCode, data) |
|
|
|
super.onActivityResult(requestCode, resultCode, data) |
|
|
|
|
|
|
|
|
|
|
|
if (requestCode == REQUEST_CODE_FILTER_DETAILS && resultCode == Activity.RESULT_OK) { |
|
|
|
if (requestCode == REQUEST_CODE_FILTER_DETAILS && resultCode == RESULT_OK) { |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
/* |
|
|
|
Timber.d("onActivityResult: $requestCode") |
|
|
|
Timber.d("onActivityResult: $requestCode") |
|
|
|
@ -136,6 +141,49 @@ open class FiltersFragment : RealmFragment(), StaticRowRepresentableDataSource, |
|
|
|
setHasFixedSize(true) |
|
|
|
setHasFixedSize(true) |
|
|
|
layoutManager = viewManager |
|
|
|
layoutManager = viewManager |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val filters = getRealm().sorted(Filter::class.java) |
|
|
|
|
|
|
|
val currentFilterId = Preferences.getActiveFilterId(requireContext()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mostUsedFilters.removeAllViews() |
|
|
|
|
|
|
|
filters.forEachIndexed { index, filter -> |
|
|
|
|
|
|
|
if (index < 5) { |
|
|
|
|
|
|
|
val chip = Chip(requireContext()) |
|
|
|
|
|
|
|
chip.id = View.generateViewId() |
|
|
|
|
|
|
|
chip.tag = filter.id |
|
|
|
|
|
|
|
chip.text = filter.getDisplayName(requireContext()) |
|
|
|
|
|
|
|
chip.chipStartPadding = 8f.px |
|
|
|
|
|
|
|
chip.chipEndPadding = 8f.px |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chip.isCloseIconVisible = true |
|
|
|
|
|
|
|
chip.isChecked = filter.id == currentFilterId |
|
|
|
|
|
|
|
chip.setOnCloseIconClickListener { |
|
|
|
|
|
|
|
Preferences.removeActiveFilterId(requireContext()) |
|
|
|
|
|
|
|
chip.isChecked = false |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
chip.setOnClickListener { |
|
|
|
|
|
|
|
deleteFilter(false) |
|
|
|
|
|
|
|
finishActivityWithResult(filter.id) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
mostUsedFilters.addView(chip) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
Limit.values().forEach { |
|
|
|
|
|
|
|
val chip = Chip(requireContext()) |
|
|
|
|
|
|
|
chip.id = it.ordinal |
|
|
|
|
|
|
|
chip.text = it.shortName |
|
|
|
|
|
|
|
chip.chipStartPadding = 8f.px |
|
|
|
|
|
|
|
chip.chipEndPadding = 8f.px |
|
|
|
|
|
|
|
chip.isChecked = false |
|
|
|
|
|
|
|
mostUsedFilters.addView(chip) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mostUsedFilters.setOnCheckedChangeListener { _, i -> |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -208,15 +256,17 @@ open class FiltersFragment : RealmFragment(), StaticRowRepresentableDataSource, |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Delete data |
|
|
|
* Delete data |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private fun deleteFilter() { |
|
|
|
private fun deleteFilter(closeActivity: Boolean = true) { |
|
|
|
Timber.d("Delete queryWith") |
|
|
|
Timber.d("Delete queryWith") |
|
|
|
val realm = getRealm() |
|
|
|
val realm = getRealm() |
|
|
|
realm.beginTransaction() |
|
|
|
realm.beginTransaction() |
|
|
|
currentFilter?.deleteFromRealm() |
|
|
|
currentFilter?.deleteFromRealm() |
|
|
|
realm.commitTransaction() |
|
|
|
realm.commitTransaction() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (closeActivity) { |
|
|
|
finishActivityWithResult("") |
|
|
|
finishActivityWithResult("") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Finish the activity with a result |
|
|
|
* Finish the activity with a result |
|
|
|
|