From b794b303460bfc2ed35e22cf5aebf9f41fe31f56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Mon, 30 Mar 2020 23:16:35 +0200 Subject: [PATCH] [UI] Fix disabling pull to refresh when changing page using tab layout. --- .../edziennik/ui/modules/base/lazypager/LazyViewPager.kt | 5 ++++- .../edziennik/ui/modules/homework/HomeworkListFragment.kt | 1 + .../edziennik/ui/modules/template/TemplateListFragment.kt | 1 + .../ui/modules/template/TemplateListPageFragment.kt | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/base/lazypager/LazyViewPager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/base/lazypager/LazyViewPager.kt index 7f7c4334..45337990 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/base/lazypager/LazyViewPager.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/base/lazypager/LazyViewPager.kt @@ -13,10 +13,12 @@ class LazyViewPager @JvmOverloads constructor( ) : ViewPager(context, attrs) { private var pageSelection = -1 + private var scrollState = 0 init { addOnPageChangeListener(object : OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) { + scrollState = state (adapter as? LazyPagerAdapter)?.let { it.swipeRefreshLayout?.isEnabled = state == SCROLL_STATE_IDLE && it.enabledList[pageSelection, true] } @@ -28,7 +30,8 @@ class LazyViewPager @JvmOverloads constructor( override fun onPageSelected(position: Int) { pageSelection = position - if (adapter is LazyPagerAdapter) { + (adapter as? LazyPagerAdapter)?.let { + it.swipeRefreshLayout?.isEnabled = scrollState == SCROLL_STATE_IDLE && it.enabledList[pageSelection, true] val fragment = adapter?.instantiateItem(this@LazyViewPager, position) val lazyFragment = fragment as? LazyFragment lazyFragment?.createPage() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/homework/HomeworkListFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/homework/HomeworkListFragment.kt index 38586593..0cbba646 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/homework/HomeworkListFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/homework/HomeworkListFragment.kt @@ -93,6 +93,7 @@ class HomeworkListFragment : LazyFragment(), CoroutineScope { } } adapter.notifyDataSetChanged() + setSwipeToRefresh(false) // TODO // show/hide relevant views b.progressBar.isVisible = false diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListFragment.kt index fb3b1084..e2d6c220 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListFragment.kt @@ -64,6 +64,7 @@ class TemplateListFragment : Fragment(), CoroutineScope { } } adapter.notifyDataSetChanged() + b.refreshLayout.isEnabled = false // TODO // show/hide relevant views b.progressBar.isVisible = false diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListPageFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListPageFragment.kt index 6908b30e..ce5c5001 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListPageFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/template/TemplateListPageFragment.kt @@ -64,6 +64,7 @@ class TemplateListPageFragment : LazyFragment(), CoroutineScope { } } adapter.notifyDataSetChanged() + setSwipeToRefresh(false) // TODO // show/hide relevant views b.progressBar.isVisible = false