update the display / hide of the current filter related to the current filterable

dev
Razmig Sarkissian 7 years ago
parent 52b5aec140
commit 0f9427c71f
  1. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt
  2. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt
  3. 27
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/FilterableFragment.kt
  4. 1
      app/src/main/java/net/pokeranalytics/android/ui/interfaces/FilterHandler.kt

@ -199,6 +199,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault())
betaLimitDate = sdf.parse("17/7/2019 10:00")
this.currentFilterable = FilterableType.SESSION
val viewManager = SmoothScrollLinearLayoutManager(requireContext())
recyclerView.apply {
@ -325,10 +326,17 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
this.loadTransactions(filter)
filter?.let {
if (it.filterableType == FilterableType.SESSION) {
when (it.filterableType) {
FilterableType.SESSION -> {
recyclerView.adapter = feedSessionAdapter
} else {
tabs.getTabAt(0)?.select()
}
FilterableType.TRANSACTION -> {
recyclerView.adapter = feedTransactionAdapter
tabs.getTabAt(1)?.select()
}
else -> {
}
}
adapterHasBeenSet = true
}
@ -351,5 +359,4 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
}
}
override var currentFilterable: FilterableType = FilterableType.SESSION
}

@ -60,6 +60,7 @@ class StatisticsFragment : FilterableFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initUI()
this.currentFilterable = FilterableType.SESSION
applyFilter()
}
@ -98,8 +99,6 @@ class StatisticsFragment : FilterableFragment() {
}
// Filter Handler
override fun createFilter() {
}
override fun applyFilter() {
super.applyFilter()
@ -111,8 +110,6 @@ class StatisticsFragment : FilterableFragment() {
this.launchStatComputation()
}
override var currentFilterable: FilterableType = FilterableType.SESSION
// Business
/**

@ -13,6 +13,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Filter
import net.pokeranalytics.android.ui.interfaces.FilterHandler
import net.pokeranalytics.android.ui.interfaces.FilterHandler.Companion.INTENT_FILTER_UPDATE_FILTER_UI
import net.pokeranalytics.android.ui.interfaces.FilterableType
@ -29,6 +30,16 @@ import timber.log.Timber
open class FilterableFragment : RealmFragment(), FilterHandler {
override var currentFilterable: FilterableType = FilterableType.ALL
set(value) {
field = value
this.currentFilter(this.requireContext(), getRealm())?.let {
if (this.shouldHideCurrentFilter(it)) {
hideSelectedFilter()
} else {
displaySelectedFilter()
}
}
}
private var filterMenuItem: MenuItem? = null
@ -78,9 +89,6 @@ open class FilterableFragment : RealmFragment(), FilterHandler {
return super.onOptionsItemSelected(item)
}
override fun createFilter() {
}
override fun applyFilter() {
updateFilterUI()
}
@ -106,6 +114,9 @@ open class FilterableFragment : RealmFragment(), FilterHandler {
private fun displaySelectedFilter() {
currentFilter(requireContext(), getRealm())?.let { filter ->
if (this.shouldHideCurrentFilter(filter)) {
return
}
view?.findViewById<ViewGroup>(R.id.selectedFilter)?.let { viewGroup ->
val layoutCurrentFilter = LayoutInflater.from(requireContext()).inflate(R.layout.view_selected_filter, viewGroup, false)
@ -135,4 +146,14 @@ open class FilterableFragment : RealmFragment(), FilterHandler {
}
}
}
/**
* Check if the current filter's header should be displayed
*/
private fun shouldHideCurrentFilter(currentFilter: Filter? = null): Boolean {
currentFilter?.let {
return it.filterableType != this.currentFilterable
}
return false
}
}

@ -29,7 +29,6 @@ interface FilterHandler {
const val INTENT_FILTER_UPDATE_FILTER_UI = "net.pokeranalytics.android.UPDATE_FILTER_UI"
}
fun createFilter()
fun applyFilter()
fun removeFilter()

Loading…
Cancel
Save