Refactor toolbar management for filterable data

dev
Aurelien Hubert 7 years ago
parent 995c0c931d
commit eff635a474
  1. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDetailsFragment.kt
  2. 8
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt
  3. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt
  4. 18
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt
  5. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt
  6. 14
      app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
  7. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt
  8. 8
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt
  9. 8
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FiltersFragment.kt
  10. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  11. 18
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  12. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
  13. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt
  14. 72
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/FilterableFragment.kt
  15. 47
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/PokerAnalyticsFragment.kt
  16. 16
      app/src/main/java/net/pokeranalytics/android/ui/fragment/data/EditableDataFragment.kt
  17. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/data/LocationDataFragment.kt
  18. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt
  19. 15
      app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt
  20. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt
  21. 17
      app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt

@ -13,7 +13,6 @@ import net.pokeranalytics.android.calculus.bankroll.BankrollReport
import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
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
@ -38,7 +37,6 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
}
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var bankrollAdapter: RowRepresentableAdapter
private lateinit var bankrollReport: BankrollReport
@ -129,14 +127,8 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
setDisplayHomeAsUpEnabled(true)
// Avoid a bug during setting the titleResId
toolbar.title = ""
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
updateMenuUI()
bankrollAdapter = RowRepresentableAdapter(this, this)
@ -154,13 +146,12 @@ class BankrollDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
* Update menu UI
*/
private fun updateMenuUI() {
if (bankrollReport.setup.virtualBankroll) {
toolbar.title = getString(R.string.total)
collapsingToolbar.title = getString(R.string.total)
setToolbarTitle(getString(R.string.total))
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = false
} else {
toolbar.title = bankrollReport.setup.bankroll?.name
collapsingToolbar.title = bankrollReport.setup.bankroll?.name
setToolbarTitle(bankrollReport.setup.bankroll?.name)
bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = true
}

@ -28,7 +28,6 @@ import net.pokeranalytics.android.ui.activity.BankrollDetailsActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.GraphActivity
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
@ -59,7 +58,6 @@ class BankrollFragment : DeletableItemFragment(), StaticRowRepresentableDataSour
}
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var bankrollAdapter: RowRepresentableAdapter
private var rows: ArrayList<RowRepresentable> = ArrayList()
@ -179,11 +177,7 @@ class BankrollFragment : DeletableItemFragment(), StaticRowRepresentableDataSour
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
bankrollAdapter = RowRepresentableAdapter(this, this)

@ -21,7 +21,6 @@ import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.model.filter.Query
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.ui.activity.ProgressReportActivity
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
@ -44,7 +43,6 @@ class CalendarDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
}
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var statsAdapter: RowRepresentableAdapter
private var title: String? = ""
@ -80,14 +78,7 @@ class CalendarDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the titleResId
toolbar.title = ""
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
var tabIndexToSelect = 0
sessionTypeCondition?.let {
@ -134,11 +125,7 @@ class CalendarDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable
* Display data
*/
private fun displayData() {
title?.let {
toolbar.title = it
}
setToolbarTitle(title)
}
// StaticRowRepresentableDataSource

@ -6,7 +6,6 @@ import kotlinx.android.synthetic.main.fragment_comparison_chart.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.BankrollActivity
import net.pokeranalytics.android.ui.activity.SettingsActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.ComparisonChartPagerAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
@ -37,7 +36,6 @@ class ComparisonChartFragment : PokerAnalyticsFragment(), StaticRowRepresentable
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var viewPagerAdapter: ComparisonChartPagerAdapter
private var comparisonChartMenu: Menu? = null
@ -94,21 +92,17 @@ class ComparisonChartFragment : PokerAnalyticsFragment(), StaticRowRepresentable
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
setDisplayHomeAsUpEnabled(true)
toolbar.title = ""
//TODO: Localize title
setToolbarTitle("Comparison chart")
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
toolbar.title = "Comparison chart"
viewPagerAdapter = ComparisonChartPagerAdapter(requireContext(), parentActivity.supportFragmentManager)
parentActivity?.let {
viewPagerAdapter = ComparisonChartPagerAdapter(requireContext(), it.supportFragmentManager)
viewPager.adapter = viewPagerAdapter
viewPager.offscreenPageLimit = 2
tabs.setupWithViewPager(viewPager)
}
}

@ -10,7 +10,6 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_data_list.*
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.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
@ -26,7 +25,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
const val INTENT_CURRENCY_CODE = "INTENT_CURRENCY_CODE"
val rowRepresentation : List<RowRepresentable> by lazy {
val rowRepresentation: List<RowRepresentable> by lazy {
val rows = ArrayList<RowRepresentable>()
rows.addAll(mostUsedCurrencies)
rows.add(SeparatorRow())
@ -48,7 +47,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
private val availableCurrencies = this.systemCurrencies.filter {
!mostUsedCurrencyCodes.contains(it.currencyCode)
}.filter {
Locale.getAvailableLocales().filter {locale ->
Locale.getAvailableLocales().filter { locale ->
try {
Currency.getInstance(locale).currencyCode == it.currencyCode
} catch (e: Exception) {
@ -62,7 +61,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
}
}
private class CurrencyRow(var currency:Currency) : RowRepresentable {
private class CurrencyRow(var currency: Currency) : RowRepresentable {
override fun getDisplayName(context: Context): String {
return currency.getDisplayName(Locale.getDefault()).capitalize()
@ -114,14 +113,8 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
*/
private fun initUI() {
val activity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the titleResId
toolbar.title = this.getString( R.string.currency)
activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
setToolbarTitle(getString(R.string.currency))
val viewManager = LinearLayoutManager(requireContext())
val dataListAdapter = RowRepresentableAdapter(this, this)

@ -21,7 +21,6 @@ import net.pokeranalytics.android.model.realm.Filter
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.FiltersActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
@ -46,8 +45,8 @@ class DataListFragment : DeletableItemFragment(), LiveRowRepresentableDataSource
*/
fun setData(dataType: Int) {
this.dataType = LiveData.values()[dataType]
this.toolbar.title = this.dataType.localizedTitle(requireContext())
this.dataType?.let {
setToolbarTitle(this.dataType.localizedTitle(requireContext()))
this.dataType.let {
this.items = it.items(getRealm())
}
}
@ -68,14 +67,7 @@ class DataListFragment : DeletableItemFragment(), LiveRowRepresentableDataSource
*/
private fun initUI() {
val activity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the titleResId
toolbar.title = ""
activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
val viewManager = LinearLayoutManager(requireContext())
dataListAdapter = RowRepresentableAdapter(this, this)

@ -28,7 +28,6 @@ import net.pokeranalytics.android.ui.adapter.FeedTransactionRowRepresentableAdap
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.fragment.components.RealmFragment
import net.pokeranalytics.android.ui.interfaces.FilterActivityRequestCode
import net.pokeranalytics.android.ui.interfaces.FilterHandler
import net.pokeranalytics.android.ui.interfaces.FilterableType
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager
@ -37,7 +36,7 @@ import java.text.SimpleDateFormat
import java.util.*
class FeedFragment : RealmFragment(), RowRepresentableDelegate, FilterHandler {
class FeedFragment : RealmFragment(), RowRepresentableDelegate {
companion object {
@ -69,6 +68,7 @@ class FeedFragment : RealmFragment(), RowRepresentableDelegate, FilterHandler {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setFilterable(true)
initUI()
initData()
}
@ -162,7 +162,6 @@ class FeedFragment : RealmFragment(), RowRepresentableDelegate, FilterHandler {
*/
private fun initData() {
val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault())
betaLimitDate = sdf.parse("17/7/2019 10:00")

@ -14,7 +14,6 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.realm.Filter
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
@ -36,7 +35,6 @@ import kotlin.collections.ArrayList
open class FilterDetailsFragment : RealmFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
lateinit var parentActivity: PokerAnalyticsActivity
lateinit var rowRepresentableAdapter: RowRepresentableAdapter
private lateinit var primaryKey: String
private lateinit var filterCategoryRow: FilterCategoryRow
@ -155,10 +153,8 @@ open class FilterDetailsFragment : RealmFragment(), StaticRowRepresentableDataS
* Init UI
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
this.appBar.toolbar.title = getString(R.string.filter)

@ -13,7 +13,6 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Filter
import net.pokeranalytics.android.ui.activity.FilterDetailsActivity
import net.pokeranalytics.android.ui.activity.FiltersActivity
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
@ -30,7 +29,6 @@ open class FiltersFragment : RealmFragment(), StaticRowRepresentableDataSource,
const val REQUEST_CODE_FILTER_DETAILS = 100
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var rowRepresentableAdapter: RowRepresentableAdapter
private var currentFilter: Filter? = null
@ -127,10 +125,8 @@ open class FiltersFragment : RealmFragment(), StaticRowRepresentableDataSource,
* Init UI
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
this.appBar.toolbar.title = getString(R.string.filter)

@ -14,7 +14,6 @@ import com.github.mikephil.charting.listener.OnChartValueSelectedListener
import kotlinx.android.synthetic.main.fragment_graph.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.components.RealmFragment
import net.pokeranalytics.android.ui.graph.AxisFormatting
import net.pokeranalytics.android.ui.graph.GraphUnderlyingEntry
@ -49,8 +48,6 @@ class GraphFragment : RealmFragment(), OnChartValueSelectedListener {
}
private lateinit var parentActivity: PokerAnalyticsActivity
private var style: Style = Style.LINE
private lateinit var legendView: LegendView
@ -101,8 +98,6 @@ class GraphFragment : RealmFragment(), OnChartValueSelectedListener {
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
this.legendView = when (this.style) {
Style.MULTILINE -> MultiLineLegendView(requireContext())
else -> LegendView(requireContext())

@ -19,7 +19,6 @@ import net.pokeranalytics.android.model.realm.Location
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.utils.FavoriteSessionFinder
import net.pokeranalytics.android.ui.activity.EditableDataActivity
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.fragment.components.RealmFragment
@ -41,7 +40,6 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
const val REQUEST_CODE_NEW_CUSTOM_FIELD = 1000
}
private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var currentSession: Session
private lateinit var sessionAdapter: RowRepresentableAdapter
@ -150,14 +148,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the titleResId
toolbar.title = ""
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
val viewManager = SmoothScrollLinearLayoutManager(requireContext())
recyclerView.apply {
@ -334,7 +325,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
realm.commitTransaction()
// Find the nearest location around the user
parentActivity.findNearestLocation {
parentActivity?.findNearestLocation {
it?.let { location ->
realm.beginTransaction()
val realmLocation = realm.where<Location>().equalTo("id", location.id).findFirst()
@ -348,9 +339,8 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate {
sessionHasBeenCustomized = false
}
toolbar.title =
if (currentSession.isTournament()) getString(R.string.tournament) else getString(R.string.cash_game)
toolbar.title = if (currentSession.isTournament()) getString(R.string.tournament) else getString(R.string.cash_game)
collapsingToolbar.title = toolbar.title
sessionAdapter = RowRepresentableAdapter(currentSession, this)
recyclerView.adapter = sessionAdapter

@ -16,7 +16,6 @@ import net.pokeranalytics.android.ui.activity.BillingActivity
import net.pokeranalytics.android.ui.activity.CurrenciesActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.GDPRActivity
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
@ -58,7 +57,6 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
}
private lateinit var settingsAdapterRow: RowRepresentableAdapter
private lateinit var parentActivity: PokerAnalyticsActivity
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_settings, container, false)
@ -106,20 +104,20 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
BillingActivity.newInstance(requireContext())
}
}
SettingRow.RATE_APP -> parentActivity.openPlayStorePage()
SettingRow.CONTACT_US -> parentActivity.openContactMail(R.string.contact)
SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject, Realm.getDefaultInstance().path)
SettingRow.RATE_APP -> parentActivity?.openPlayStorePage()
SettingRow.CONTACT_US -> parentActivity?.openContactMail(R.string.contact)
SettingRow.BUG_REPORT -> parentActivity?.openContactMail(R.string.bug_report_subject, Realm.getDefaultInstance().path)
SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, REQUEST_CODE_CURRENCY)
SettingRow.FOLLOW_US -> {
when (position) {
0 -> parentActivity.openUrl(URL.BLOG.value)
1 -> parentActivity.openUrl(URL.INSTAGRAM.value)
2 -> parentActivity.openUrl(URL.TWITTER.value)
3 -> parentActivity.openUrl(URL.FACEBOOK.value)
0 -> parentActivity?.openUrl(URL.BLOG.value)
1 -> parentActivity?.openUrl(URL.INSTAGRAM.value)
2 -> parentActivity?.openUrl(URL.TWITTER.value)
3 -> parentActivity?.openUrl(URL.FACEBOOK.value)
}
}
SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL.PRIVACY_POLICY.value)
SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL.TERMS.value)
SettingRow.PRIVACY_POLICY -> parentActivity?.openUrl(URL.PRIVACY_POLICY.value)
SettingRow.TERMS_OF_USE -> parentActivity?.openUrl(URL.TERMS.value)
SettingRow.GDPR -> openGDPRActivity()
}
@ -133,11 +131,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
setDisplayHomeAsUpEnabled(true)
val viewManager = LinearLayoutManager(requireContext())
settingsAdapterRow = RowRepresentableAdapter(

@ -58,6 +58,7 @@ class StatisticsFragment : ResultsObserverFragment(), FilterHandler {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setFilterable(true)
initUI()
launchStatComputation()
}

@ -0,0 +1,72 @@
package net.pokeranalytics.android.ui.fragment.components
import android.os.Bundle
import android.view.*
import androidx.appcompat.widget.Toolbar
import androidx.fragment.app.Fragment
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.interfaces.FilterHandler
import net.pokeranalytics.android.ui.interfaces.FilterableType
import timber.log.Timber
/**
* A class which define the fragment as Filterable
* - Add an filter icon menu
* - Access to the filters actions (new, select, modify, remove)
* - ...
*/
open class FilterableFragment: Fragment(), FilterHandler {
override var currentFilterable: FilterableType = FilterableType.ALL
private var filterMenuItem: MenuItem? = null
private var displayFilter: Boolean = false
set(value) {
field = value
filterMenuItem?.isVisible = displayFilter
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
setHasOptionsMenu(true)
return super.onCreateView(inflater, container, savedInstanceState)
}
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
super.onCreateOptionsMenu(menu, inflater)
Timber.d("onCreateOptionsMenu")
view?.findViewById<Toolbar>(R.id.toolbar)?.let { toolbar ->
Timber.d("toolbar menu ${toolbar.menu}")
toolbar.menu.removeItem(R.id.menu_item_filter)
filterMenuItem = toolbar.menu?.add(0, R.id.menu_item_filter, 0, R.string.filter)
filterMenuItem?.setIcon(R.drawable.ic_outline_filter_list)
filterMenuItem?.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
filterMenuItem?.isVisible = displayFilter
}
}
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when(item?.itemId) {
R.id.menu_item_filter -> {
manageFilters(this)
}
}
return super.onOptionsItemSelected(item)
}
override fun createFilter() {
}
override fun applyFilter() {
}
override fun removeFilter() {
}
/**
* Set the current fragment as filterable
*/
fun setFilterable(filterable: Boolean) {
this.displayFilter = filterable
}
}

@ -1,18 +1,28 @@
package net.pokeranalytics.android.ui.fragment.components
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.View
import androidx.appcompat.widget.Toolbar
import com.crashlytics.android.Crashlytics
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.interfaces.FilterHandler
open class PokerAnalyticsFragment: Fragment() {
open class PokerAnalyticsFragment : FilterableFragment(), FilterHandler {
private var loaderDialogFragment: LoaderDialogFragment? = null
var parentActivity: PokerAnalyticsActivity? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Crashlytics.log("$this.localClassName onCreate")
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initUI()
}
override fun onResume() {
super.onResume()
Crashlytics.log("$this.localClassName onResume")
@ -33,6 +43,22 @@ open class PokerAnalyticsFragment: Fragment() {
*/
open fun onBackPressed() {}
/**
* Init UI
*/
private fun initUI() {
setHasOptionsMenu(true)
parentActivity = activity as PokerAnalyticsActivity
// Set the toolbar to the parent activity
view?.findViewById<Toolbar>(R.id.toolbar)?.let { toolbar ->
parentActivity?.setSupportActionBar(toolbar)
}
}
/**
* Show the loader
*/
@ -51,4 +77,21 @@ open class PokerAnalyticsFragment: Fragment() {
loaderDialogFragment = null
}
/**
* Set the toolbar title
*/
fun setToolbarTitle(title: String?) {
view?.findViewById<Toolbar>(R.id.toolbar)?.let { toolbar ->
toolbar.title = title
}
parentActivity?.supportActionBar?.title = title
}
/**
* Display or not the back arrow icon
*/
fun setDisplayHomeAsUpEnabled(enabled: Boolean) {
parentActivity?.supportActionBar?.setDisplayHomeAsUpEnabled(enabled)
}
}

@ -8,7 +8,6 @@ import androidx.appcompat.app.AlertDialog
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.RealmObject
import kotlinx.android.synthetic.main.fragment_editable_data.*
import kotlinx.android.synthetic.main.fragment_editable_data.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.ConfigurationException
import net.pokeranalytics.android.model.LiveData
@ -18,7 +17,6 @@ import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
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
@ -29,7 +27,6 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
open class EditableDataFragment : RealmFragment(), RowRepresentableDelegate {
lateinit var parentActivity: PokerAnalyticsActivity
lateinit var item: RealmObject
lateinit var liveDataType: LiveData
lateinit var rowRepresentableAdapter: RowRepresentableAdapter
@ -85,13 +82,10 @@ open class EditableDataFragment : RealmFragment(), RowRepresentableDelegate {
* Init UI
*/
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
val viewManager = LinearLayoutManager(requireContext())
setDisplayHomeAsUpEnabled(true)
val viewManager = LinearLayoutManager(requireContext())
recyclerView.apply {
setHasFixedSize(true)
layoutManager = viewManager
@ -113,11 +107,13 @@ open class EditableDataFragment : RealmFragment(), RowRepresentableDelegate {
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()}"
//this.appBar.toolbar.title = "Update ${this.liveDataType.localizedTitle(requireContext()).toLowerCase().capitalize()}"
setToolbarTitle("Update ${this.liveDataType.localizedTitle(requireContext()).toLowerCase().capitalize()}")
isUpdating = true
} ?: run {
//TODO: Localize
this.appBar.toolbar.title = this.liveDataType.newEntityLocalizedTitle(requireContext())
//this.appBar.toolbar.title = this.liveDataType.newEntityLocalizedTitle(requireContext())
setToolbarTitle(this.liveDataType.newEntityLocalizedTitle(requireContext()))
}
this.item = this.liveDataType.updateOrCreate(this.getRealm(), primaryKey)

@ -38,7 +38,7 @@ class LocationDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
super.onViewCreated(view, savedInstanceState)
shouldOpenKeyboard = false
locationActivated = parentActivity.hasLocationPermissionGranted()
locationActivated = parentActivity?.hasLocationPermissionGranted() ?: false
if (isUpdating) {
@ -168,11 +168,11 @@ class LocationDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
val maxResults = 5
parentActivity.askForPlacesRequest { success, places ->
parentActivity?.askForPlacesRequest { success, places ->
if (success) {
// Try to get the location of the user
parentActivity.findCurrentLocation {currentLocation ->
parentActivity?.findCurrentLocation {currentLocation ->
currentLocation?.let {
location.latitude = currentLocation.latitude
location.longitude = currentLocation.longitude

@ -1,13 +1,10 @@
package net.pokeranalytics.android.ui.fragment.report
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.components.RealmFragment
abstract class AbstractReportFragment : RealmFragment() {
@ -17,7 +14,6 @@ abstract class AbstractReportFragment : RealmFragment() {
protected var reportTitle: String? = null
private var editableMenu: Menu? = null
protected lateinit var parentActivity: PokerAnalyticsActivity
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
menu?.clear()
@ -34,11 +30,6 @@ abstract class AbstractReportFragment : RealmFragment() {
return true
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
parentActivity = activity as PokerAnalyticsActivity
}
/**
* Update menu UI
*/
@ -50,7 +41,6 @@ abstract class AbstractReportFragment : RealmFragment() {
}
private fun saveReportRequest() {
}
private fun saveReport(name: String) {

@ -5,7 +5,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.fragment_progress_report.toolbar
import kotlinx.android.synthetic.main.fragment_report_details.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Report
@ -53,18 +52,14 @@ class ComparisonReportFragment : AbstractReportFragment() {
*/
private fun initUI() {
// Avoid a bug during setting the titleResId
toolbar.title = ""
setDisplayHomeAsUpEnabled(true)
setToolbarTitle(reportTitle)
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
toolbar.title = reportTitle
val reportPagerAdapter = ReportPagerAdapter(requireContext(), parentActivity.supportFragmentManager, selectedReport)
parentActivity?.let {
val reportPagerAdapter = ReportPagerAdapter(requireContext(), it.supportFragmentManager, selectedReport)
viewPager.adapter = reportPagerAdapter
viewPager.offscreenPageLimit = 3
}
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {

@ -80,19 +80,15 @@ class ProgressReportFragment : AbstractReportFragment() {
*/
private fun initUI() {
// Avoid a bug during setting the titleResId
toolbar.title = ""
setDisplayHomeAsUpEnabled(true)
setToolbarTitle(this.reportTitle ?: stat.localizedTitle(requireContext()))
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
val fragmentManager = parentActivity.supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
val fragmentManager = parentActivity?.supportFragmentManager
val fragmentTransaction = fragmentManager?.beginTransaction()
graphFragment = GraphFragment()
fragmentTransaction.add(R.id.graphContainer, graphFragment)
fragmentTransaction.commit()
fragmentTransaction?.add(R.id.graphContainer, graphFragment)
fragmentTransaction?.commit()
stat.aggregationTypes.firstOrNull()?.let { aggregationType ->
reports[aggregationType]?.let { report ->
@ -100,7 +96,6 @@ class ProgressReportFragment : AbstractReportFragment() {
}
}
toolbar.title = this.reportTitle ?: stat.localizedTitle(requireContext())
val aggregationTypes = stat.aggregationTypes
aggregationTypes.forEachIndexed { index, type ->

@ -4,7 +4,6 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.fragment_progress_report.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Report
@ -41,19 +40,13 @@ class TableReportFragment : AbstractReportFragment() {
private fun initUI() {
// Avoid a bug during setting the titleResId
toolbar.title = ""
setDisplayHomeAsUpEnabled(true)
setToolbarTitle(reportTitle)
parentActivity.setSupportActionBar(toolbar)
parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
toolbar.title = reportTitle
val fragmentTransaction = parentActivity.supportFragmentManager.beginTransaction()
val fragmentTransaction = parentActivity?.supportFragmentManager?.beginTransaction()
val fragment = ComposableTableReportFragment.newInstance(this.selectedReport)
fragmentTransaction.add(R.id.tableReportContainer, fragment)
fragmentTransaction.commit()
fragmentTransaction?.add(R.id.tableReportContainer, fragment)
fragmentTransaction?.commit()
this.tableReportFragment = fragment

Loading…
Cancel
Save