From ec4eb8b7ccd2094ad3e6a31a115aae46e721b13b Mon Sep 17 00:00:00 2001 From: ksog66 Date: Fri, 5 Mar 2021 18:08:53 +0530 Subject: [PATCH 1/2] Fix: Issue#216 SwipeRefreshLayout spinning endlessly on accounts section --- .../cn/ui/mifos/accounts/AccountsFragment.kt | 65 ++++++++++++++----- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt b/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt index 66d67927..4d1235df 100644 --- a/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt +++ b/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt @@ -1,14 +1,15 @@ package org.mifos.mobile.cn.ui.mifos.accounts import android.os.Bundle -import android.util.Log import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.github.therajanmaurya.sweeterror.SweetUIErrorHandler import kotlinx.android.synthetic.main.fragment_accounts.* +import kotlinx.android.synthetic.main.layout_exception_handler.* import org.mifos.mobile.cn.R import org.mifos.mobile.cn.data.models.accounts.deposit.DepositAccount import org.mifos.mobile.cn.data.models.accounts.loan.LoanAccount @@ -19,7 +20,7 @@ import org.mifos.mobile.cn.ui.base.MifosBaseFragment import org.mifos.mobile.cn.ui.utils.ConstantKeys import org.mifos.mobile.cn.ui.utils.Network import javax.inject.Inject -import kotlinx.android.synthetic.main.layout_sweet_exception_handler.* +//import kotlinx.android.synthetic.main.layout_sweet_exception_handler.* import org.mifos.mobile.cn.data.models.CheckboxStatus import org.mifos.mobile.cn.ui.base.OnItemClickListener import org.mifos.mobile.cn.ui.mifos.customerDepositDetails.CustomerDepositDetailsFragment @@ -28,10 +29,11 @@ import org.mifos.mobile.cn.ui.utils.RxBus import org.mifos.mobile.cn.ui.utils.RxEvent -class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClickListener { +class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClickListener, SwipeRefreshLayout.OnRefreshListener { private lateinit var accountType: String + private lateinit var loanAccounts: List private lateinit var depositAccounts: List var currentFilterList: List? = null @@ -113,12 +115,33 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick super.onViewCreated(view, savedInstanceState) val layoutManager = LinearLayoutManager(activity) layoutManager.orientation = LinearLayoutManager.VERTICAL - rv_accounts.layoutManager = layoutManager - rv_accounts.setHasFixedSize(true) - rv_accounts.addItemDecoration(DividerItemDecoration(activity, +// rv_accounts.layoutManager = layoutManager +// rv_accounts.setHasFixedSize(true) +// rv_accounts.addItemDecoration(DividerItemDecoration(activity, +// layoutManager.orientation)) + rv_accounts.apply{ + this.layoutManager=layoutManager + setHasFixedSize(true) + addItemDecoration(DividerItemDecoration(activity, layoutManager.orientation)) + } btn_try_again.setOnClickListener { retry() } + swipe_container.setOnRefreshListener(this) + loadApdaterData() + when (accountType) { + ConstantKeys.LOAN_ACCOUNTS -> { + rv_accounts.adapter = loanAccountsListAdapter + loanAccountsListAdapter.setOnItemClickListener(this) + } + ConstantKeys.DEPOSIT_ACCOUNTS -> { + rv_accounts.adapter = depositAccountListAdapter + depositAccountListAdapter.setOnItemClickListener(this) + } + } + } + + private fun loadApdaterData() { when (accountType) { ConstantKeys.LOAN_ACCOUNTS -> { rv_accounts.adapter = loanAccountsListAdapter @@ -135,15 +158,15 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick when (accountType) { ConstantKeys.LOAN_ACCOUNTS -> { (activity as MifosBaseActivity).replaceFragment( - CustomerLoanDetailsFragment.newInstance( - loanAccounts[position].productIdentifier!!, - loanAccounts[position].identifier!!), true, R.id.container) + CustomerLoanDetailsFragment.newInstance( + loanAccounts[position].productIdentifier!!, + loanAccounts[position].identifier!!), true, R.id.container) } ConstantKeys.DEPOSIT_ACCOUNTS -> { (activity as MifosBaseActivity).replaceFragment( - CustomerDepositDetailsFragment.newInstance( - depositAccounts[position].accountIdentifier!!),true,R.id.container - ) + CustomerDepositDetailsFragment.newInstance( + depositAccounts[position].accountIdentifier!!),true,R.id.container + ) } } } @@ -163,6 +186,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick /** * Shows [List] of [LoanAccount] fetched from server using * [LoanAccountListAdapter] + * @param loanAccounts [List] of [LoanAccount] */ override fun showLoanAccounts(loanAccounts: List) { @@ -178,12 +202,12 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick when (feature) { getString(R.string.loan) -> { errorHandler.showSweetEmptyUI(feature, R.drawable.ic_payment_black_24dp, rv_accounts, - layout_error) + layout_error) } getString(R.string.deposit) -> errorHandler.showSweetEmptyUI(feature, R.drawable.ic_monetization_on_black_24dp, - rv_accounts, layout_error) + rv_accounts, layout_error) } } @@ -211,7 +235,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick val filteredLoans = java.util.ArrayList() for (status in accountsPresenter.getCheckedStatus(statusModelList)) { filteredLoans.addAll(accountsPresenter.getFilteredLoanAccount(loanAccounts, - status)) + status)) } loanAccountsListAdapter.setCustomerLoanAccounts(filteredLoans) } @@ -220,7 +244,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick val filteredDeposit = ArrayList() for (status in accountsPresenter.getCheckedStatus(statusModelList)) { filteredDeposit.addAll(accountsPresenter.getFilteredDepositAccount(depositAccounts, - status)) + status)) depositAccountListAdapter.setCustomerDepositAccounts(filteredDeposit) } } @@ -232,7 +256,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick */ fun searchLoanAccount(input: String) { loanAccountsListAdapter.setCustomerLoanAccounts(accountsPresenter - .searchInLoanList(loanAccounts, input)) + .searchInLoanList(loanAccounts, input)) } /** @@ -242,7 +266,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick */ fun searchDepositAccount(input: String) { depositAccountListAdapter.setCustomerDepositAccounts(accountsPresenter - .searchInDepositList(depositAccounts, input)) + .searchInDepositList(depositAccounts, input)) } @@ -258,6 +282,11 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick } } + override fun onRefresh() { + loadApdaterData() + swipe_container.isRefreshing =false + } + override fun showProgress() { showProgressBar() } From 671007e8fd1bb8e64a679ae597cd8a747a113d0f Mon Sep 17 00:00:00 2001 From: ksog66 Date: Fri, 5 Mar 2021 18:16:24 +0530 Subject: [PATCH 2/2] Fix: Issue#216 SwipeRefreshLayout spinning endlessly on accounts section --- .../cn/ui/mifos/accounts/AccountsFragment.kt | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt b/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt index 4d1235df..b0d069ba 100644 --- a/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt +++ b/app/src/main/kotlin/org/mifos/mobile/cn/ui/mifos/accounts/AccountsFragment.kt @@ -115,33 +115,17 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick super.onViewCreated(view, savedInstanceState) val layoutManager = LinearLayoutManager(activity) layoutManager.orientation = LinearLayoutManager.VERTICAL -// rv_accounts.layoutManager = layoutManager -// rv_accounts.setHasFixedSize(true) -// rv_accounts.addItemDecoration(DividerItemDecoration(activity, -// layoutManager.orientation)) - rv_accounts.apply{ - this.layoutManager=layoutManager - setHasFixedSize(true) - addItemDecoration(DividerItemDecoration(activity, + rv_accounts.layoutManager = layoutManager + rv_accounts.setHasFixedSize(true) + rv_accounts.addItemDecoration(DividerItemDecoration(activity, layoutManager.orientation)) - } btn_try_again.setOnClickListener { retry() } swipe_container.setOnRefreshListener(this) - loadApdaterData() - when (accountType) { - ConstantKeys.LOAN_ACCOUNTS -> { - rv_accounts.adapter = loanAccountsListAdapter - loanAccountsListAdapter.setOnItemClickListener(this) - } - ConstantKeys.DEPOSIT_ACCOUNTS -> { - rv_accounts.adapter = depositAccountListAdapter - depositAccountListAdapter.setOnItemClickListener(this) - } - } + loadAdapterData() } - private fun loadApdaterData() { + private fun loadAdapterData() { when (accountType) { ConstantKeys.LOAN_ACCOUNTS -> { rv_accounts.adapter = loanAccountsListAdapter @@ -283,7 +267,7 @@ class AccountsFragment : MifosBaseFragment(), AccountsContract.View, OnItemClick } override fun onRefresh() { - loadApdaterData() + loadAdapterData() swipe_container.isRefreshing =false }