From 951dd479db46110eab06e96aa96416194bd1509b Mon Sep 17 00:00:00 2001 From: PatelVatsalB21 Date: Fri, 5 Mar 2021 20:30:41 +0530 Subject: [PATCH] fix #1759: FAB behaviour rectified in Accounts --- .../ui/fragments/ClientAccountsFragment.kt | 26 +++++++++++ .../mifos/mobile/utils/ScrollFabBehavior.kt | 45 ------------------- .../res/layout/fragment_client_accounts.xml | 1 - 3 files changed, 26 insertions(+), 46 deletions(-) delete mode 100644 app/src/main/java/org/mifos/mobile/utils/ScrollFabBehavior.kt diff --git a/app/src/main/java/org/mifos/mobile/ui/fragments/ClientAccountsFragment.kt b/app/src/main/java/org/mifos/mobile/ui/fragments/ClientAccountsFragment.kt index c6bc15151d..47264f204b 100644 --- a/app/src/main/java/org/mifos/mobile/ui/fragments/ClientAccountsFragment.kt +++ b/app/src/main/java/org/mifos/mobile/ui/fragments/ClientAccountsFragment.kt @@ -124,6 +124,16 @@ import javax.inject.Inject } else { fabCreateLoan?.hide() } + if (position != 2) { + viewPager?.getChildAt(position)?.findViewById(R.id.rv_accounts)?.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + fabCreateLoan?.show() + } else fabCreateLoan?.hide() + } + }) + } } override fun onPageScrollStateChanged(state: Int) {} @@ -164,6 +174,14 @@ import javax.inject.Inject ?.showLoanAccounts(loanAccounts) (childFragmentManager.findFragmentByTag(getFragmentTag(1)) as AccountsView?) ?.hideProgress() + viewPager?.getChildAt(1)?.findViewById(R.id.rv_accounts)?.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + fabCreateLoan?.show() + } else fabCreateLoan?.hide() + } + }) } /** @@ -178,6 +196,14 @@ import javax.inject.Inject ?.showSavingsAccounts(savingAccounts) (childFragmentManager.findFragmentByTag(getFragmentTag(0)) as AccountsView?) ?.hideProgress() + viewPager?.getChildAt(0)?.findViewById(R.id.rv_accounts)?.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + fabCreateLoan?.show() + } else fabCreateLoan?.hide() + } + }) } @OnClick(R.id.fab_create_loan) diff --git a/app/src/main/java/org/mifos/mobile/utils/ScrollFabBehavior.kt b/app/src/main/java/org/mifos/mobile/utils/ScrollFabBehavior.kt deleted file mode 100644 index 222746b2cd..0000000000 --- a/app/src/main/java/org/mifos/mobile/utils/ScrollFabBehavior.kt +++ /dev/null @@ -1,45 +0,0 @@ -package org.mifos.mobile.utils - -import android.content.Context -import android.util.AttributeSet -import android.view.View -import androidx.coordinatorlayout.widget.CoordinatorLayout -import androidx.core.view.ViewCompat -import com.google.android.material.floatingactionbutton.FloatingActionButton -import com.google.android.material.floatingactionbutton.FloatingActionButton.OnVisibilityChangedListener - -/** - * Created by dilpreet on 23/8/17. - */ -class ScrollFabBehavior(context: Context?, attrs: AttributeSet?) : FloatingActionButton.Behavior() { - override fun onStartNestedScroll( - coordinatorLayout: CoordinatorLayout, - child: FloatingActionButton, directTargetChild: View, - target: View, nestedScrollAxes: Int - ): Boolean { - return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL || - super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, - nestedScrollAxes) - } - - override fun onNestedScroll( - coordinatorLayout: CoordinatorLayout, child: FloatingActionButton, - target: View, dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, - dyUnconsumed: Int - ) { - super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, - dyUnconsumed) - if (dyConsumed > 0 && child.visibility == View.VISIBLE) { - // Reason to set fab visiblity as INVISIBLE : - // https://stackoverflow.com/a/41386278/4672688 - child.hide(object : OnVisibilityChangedListener() { - override fun onHidden(fab: FloatingActionButton) { - super.onHidden(fab) - fab.visibility = View.INVISIBLE - } - }) - } else if (dyConsumed < 0 && child.visibility != View.VISIBLE) { - child.show() - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_client_accounts.xml b/app/src/main/res/layout/fragment_client_accounts.xml index 5b7c813c7f..c82ac20f05 100644 --- a/app/src/main/res/layout/fragment_client_accounts.xml +++ b/app/src/main/res/layout/fragment_client_accounts.xml @@ -33,7 +33,6 @@ android:layout_height="wrap_content" android:layout_margin="@dimen/margin_16dp" android:layout_width="wrap_content" - app:layout_behavior="org.mifos.mobile.utils.ScrollFabBehavior" app:srcCompat="@drawable/ic_add_white_24dp"/>