diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt index f10d9c01..c74088a5 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt @@ -21,7 +21,6 @@ import net.pokeranalytics.android.model.Criteria import net.pokeranalytics.android.model.combined import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.realm.ComputableResult -import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.activity.CalendarDetailsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate @@ -29,6 +28,7 @@ import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.extensions.hideWithAnimation import net.pokeranalytics.android.ui.extensions.showWithAnimation import net.pokeranalytics.android.ui.fragment.components.RealmFragment +import net.pokeranalytics.android.ui.interfaces.FragmentVisibility import net.pokeranalytics.android.ui.view.CalendarTabs import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType @@ -39,8 +39,8 @@ import java.util.* import kotlin.coroutines.CoroutineContext -class CalendarFragment : RealmFragment(), CoroutineScope, StaticRowRepresentableDataSource, - RowRepresentableDelegate { +class CalendarFragmentVisibility : RealmFragment(), CoroutineScope, StaticRowRepresentableDataSource, + RowRepresentableDelegate, FragmentVisibility { enum class TimeFilter { MONTH, YEAR @@ -51,8 +51,8 @@ class CalendarFragment : RealmFragment(), CoroutineScope, StaticRowRepresentable /** * Create new instance */ - fun newInstance(): CalendarFragment { - val fragment = CalendarFragment() + fun newInstance(): CalendarFragmentVisibility { + val fragment = CalendarFragmentVisibility() val bundle = Bundle() fragment.arguments = bundle return fragment diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt index f671ed67..5987e632 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt @@ -36,15 +36,15 @@ import java.text.SimpleDateFormat import java.util.* -class FeedFragment : FilterableFragment(), RowRepresentableDelegate { +class FeedFragmentVisibility : FilterableFragment(), RowRepresentableDelegate { companion object { const val REQUEST_CODE_MENU = 100 const val REQUEST_CODE_TRANSACTION_DETAILS = 101 - fun newInstance(): FeedFragment { - val fragment = FeedFragment() + fun newInstance(): FeedFragmentVisibility { + val fragment = FeedFragmentVisibility() val bundle = Bundle() fragment.arguments = bundle return fragment @@ -103,7 +103,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { super.setUserVisibleHint(isVisibleToUser) if (isVisibleToUser && view != null) { if (FilterHandler.filterWasUpdated) { - this.initData() + applyFilter() FilterHandler.filterWasUpdated = false } } @@ -204,7 +204,6 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { val pendingSessions = sessionFilter?.let { getRealm().where().alwaysFalse().findAll() } ?: run { getRealm().where().isNull("year").isNull("month").findAll().sort("startDate", Sort.DESCENDING) } val distinctDateSessions = sessionFilter?.results("year", "month") ?: run { getRealm().where().distinct("year", "month").findAll() }.sort("startDate", Sort.DESCENDING) this.feedSessionAdapter = FeedSessionRowRepresentableAdapter(this, realmSessions, pendingSessions, distinctDateSessions) - recyclerView.adapter = feedSessionAdapter } private fun loadTransactions(filter : Filter? = null) { @@ -304,6 +303,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { override fun removeFilter() { super.removeFilter() + Timber.d("removeFilter") this.loadSessions() this.loadTransactions() if (currentFilterable== FilterableType.SESSION) { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt index 997ff82c..8347253a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt @@ -13,18 +13,19 @@ 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.interfaces.FragmentVisibility import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.MoreTabRow -class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { +class MoreFragmentVisibility : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate, FragmentVisibility { companion object { /** * Create new instance */ - fun newInstance(): MoreFragment { - val fragment = MoreFragment() + fun newInstance(): MoreFragmentVisibility { + val fragment = MoreFragmentVisibility() val bundle = Bundle() fragment.arguments = bundle return fragment diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt index 00594ac2..d03df6f3 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -29,6 +29,7 @@ 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.DeletableItemFragment +import net.pokeranalytics.android.ui.interfaces.FragmentVisibility import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable @@ -36,7 +37,7 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.ReportRow import timber.log.Timber import java.util.* -class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { +class ReportsFragmentVisibility : DeletableItemFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate, FragmentVisibility { // private lateinit var dataListAdapter: RowRepresentableAdapter private lateinit var reportSetups: RealmResults @@ -51,8 +52,8 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc /** * Create new instance */ - fun newInstance(): ReportsFragment { - val fragment = ReportsFragment() + fun newInstance(): ReportsFragmentVisibility { + val fragment = ReportsFragmentVisibility() val bundle = Bundle() fragment.arguments = bundle return fragment @@ -198,7 +199,7 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc launch(Dispatchers.Main) { if (!isDetached) { hideLoader() - ReportActivity.newInstanceForResult(this@ReportsFragment, report, reportName) + ReportActivity.newInstanceForResult(this@ReportsFragmentVisibility, report, reportName) } } realm.close() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt index be8ef52c..7948e1f5 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt @@ -31,7 +31,7 @@ import timber.log.Timber import java.util.* import kotlin.coroutines.CoroutineContext -class StatisticsFragment : FilterableFragment(), FilterHandler { +class StatisticsFragmentVisibility : FilterableFragment(), FilterHandler { val coroutineContext: CoroutineContext get() = Dispatchers.Main @@ -43,8 +43,8 @@ class StatisticsFragment : FilterableFragment(), FilterHandler { /** * Create new instance */ - fun newInstance(): StatisticsFragment { - val fragment = StatisticsFragment() + fun newInstance(): StatisticsFragmentVisibility { + val fragment = StatisticsFragmentVisibility() val bundle = Bundle() fragment.arguments = bundle return fragment @@ -64,15 +64,17 @@ class StatisticsFragment : FilterableFragment(), FilterHandler { launchStatComputation() } + /* override fun setUserVisibleHint(isVisibleToUser: Boolean) { super.setUserVisibleHint(isVisibleToUser) - if (isVisibleToUser) { + if (isVisibleToUser && view != null) { if (FilterHandler.filterWasUpdated) { - this.launchStatComputation() + applyFilter() FilterHandler.filterWasUpdated = false } } } + */ private fun initUI() { val fragmentTransaction = requireFragmentManager().beginTransaction() @@ -110,14 +112,16 @@ class StatisticsFragment : FilterableFragment(), FilterHandler { // Filter Handler override fun createFilter() { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun applyFilter() { + super.applyFilter() this.entitiesChanged() } override fun removeFilter() { + super.removeFilter() + Timber.d("removeFilter") this.entitiesChanged() }