Merge branch 'dev' of gitlab.com:stax-river/poker-analytics into dev

dev
Laurent 7 years ago
commit 4075ee941d
  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
  5. 6
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt

@ -199,6 +199,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault()) val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault())
betaLimitDate = sdf.parse("17/7/2019 10:00") betaLimitDate = sdf.parse("17/7/2019 10:00")
this.currentFilterable = FilterableType.SESSION
val viewManager = SmoothScrollLinearLayoutManager(requireContext()) val viewManager = SmoothScrollLinearLayoutManager(requireContext())
recyclerView.apply { recyclerView.apply {
@ -325,10 +326,17 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
this.loadTransactions(filter) this.loadTransactions(filter)
filter?.let { filter?.let {
if (it.filterableType == FilterableType.SESSION) { when (it.filterableType) {
FilterableType.SESSION -> {
recyclerView.adapter = feedSessionAdapter recyclerView.adapter = feedSessionAdapter
} else { tabs.getTabAt(0)?.select()
}
FilterableType.TRANSACTION -> {
recyclerView.adapter = feedTransactionAdapter recyclerView.adapter = feedTransactionAdapter
tabs.getTabAt(1)?.select()
}
else -> {
}
} }
adapterHasBeenSet = true 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?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
initUI() initUI()
this.currentFilterable = FilterableType.SESSION
applyFilter() applyFilter()
} }
@ -98,8 +99,6 @@ class StatisticsFragment : FilterableFragment() {
} }
// Filter Handler // Filter Handler
override fun createFilter() {
}
override fun applyFilter() { override fun applyFilter() {
super.applyFilter() super.applyFilter()
@ -111,8 +110,6 @@ class StatisticsFragment : FilterableFragment() {
this.launchStatComputation() this.launchStatComputation()
} }
override var currentFilterable: FilterableType = FilterableType.SESSION
// Business // Business
/** /**

@ -13,6 +13,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import net.pokeranalytics.android.R 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
import net.pokeranalytics.android.ui.interfaces.FilterHandler.Companion.INTENT_FILTER_UPDATE_FILTER_UI import net.pokeranalytics.android.ui.interfaces.FilterHandler.Companion.INTENT_FILTER_UPDATE_FILTER_UI
import net.pokeranalytics.android.ui.interfaces.FilterableType import net.pokeranalytics.android.ui.interfaces.FilterableType
@ -29,6 +30,16 @@ import timber.log.Timber
open class FilterableFragment : RealmFragment(), FilterHandler { open class FilterableFragment : RealmFragment(), FilterHandler {
override var currentFilterable: FilterableType = FilterableType.ALL 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 private var filterMenuItem: MenuItem? = null
@ -78,9 +89,6 @@ open class FilterableFragment : RealmFragment(), FilterHandler {
return super.onOptionsItemSelected(item) return super.onOptionsItemSelected(item)
} }
override fun createFilter() {
}
override fun applyFilter() { override fun applyFilter() {
updateFilterUI() updateFilterUI()
} }
@ -106,6 +114,9 @@ open class FilterableFragment : RealmFragment(), FilterHandler {
private fun displaySelectedFilter() { private fun displaySelectedFilter() {
currentFilter(requireContext(), getRealm())?.let { filter -> currentFilter(requireContext(), getRealm())?.let { filter ->
if (this.shouldHideCurrentFilter(filter)) {
return
}
view?.findViewById<ViewGroup>(R.id.selectedFilter)?.let { viewGroup -> view?.findViewById<ViewGroup>(R.id.selectedFilter)?.let { viewGroup ->
val layoutCurrentFilter = LayoutInflater.from(requireContext()).inflate(R.layout.view_selected_filter, viewGroup, false) 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" const val INTENT_FILTER_UPDATE_FILTER_UI = "net.pokeranalytics.android.UPDATE_FILTER_UI"
} }
fun createFilter()
fun applyFilter() fun applyFilter()
fun removeFilter() fun removeFilter()

@ -16,7 +16,7 @@ enum class FilterCategoryRow(override val resId: Int?, override val viewType: In
//Sessions(R.string.sessions), //Sessions(R.string.sessions),
CASH(R.string.cash), CASH(R.string.cash),
TOURNAMENT(R.string.tournament), TOURNAMENT(R.string.tournament),
ONLINE(R.string.online), //ONLINE(R.string.online),
RESULT(R.string.result), RESULT(R.string.result),
TRANSACTION_TYPES(R.string.operation_types), TRANSACTION_TYPES(R.string.operation_types),
LOCATIONS(R.string.locations), LOCATIONS(R.string.locations),
@ -105,9 +105,7 @@ enum class FilterCategoryRow(override val resId: Int?, override val viewType: In
TournamentNumberOfPlayer, TournamentNumberOfPlayer,
TournamentFinalPosition TournamentFinalPosition
) )
ONLINE -> arrayListOf( //ONLINE -> arrayListOf(MultiTabling)
MultiTabling
)
LOCATIONS -> arrayListOf( LOCATIONS -> arrayListOf(
Location Location
) )

Loading…
Cancel
Save