This is an automated email from the ASF dual-hosted git repository. rajanmaurya154 pushed a commit to branch development in repository https://gitbox.apache.org/repos/asf/fineract-cn-mobile.git
commit ebff7e8fb21378323d2f841aadb60a26fc1e461a Author: miPlodder <academic.ra...@gmail.com> AuthorDate: Mon Apr 29 16:07:24 2019 +0530 FINCN-147: Search not working in Ledger, Accounts, Tellers --- .../online/accounting/accounts/AccountContract.kt | 4 +-- .../online/accounting/accounts/AccountsFragment.kt | 8 +++--- .../accounting/accounts/AccountsPresenter.kt | 30 ++++++-------------- .../ui/online/accounting/ledgers/LedgerContract.kt | 4 +-- .../ui/online/accounting/ledgers/LedgerFragment.kt | 9 +++--- .../online/accounting/ledgers/LedgerPresenter.kt | 31 ++++++--------------- .../fineract/ui/online/teller/TellerContract.kt | 4 ++- .../fineract/ui/online/teller/TellerFragment.kt | 8 +++--- .../fineract/ui/online/teller/TellerPresenter.kt | 32 ++++++---------------- 9 files changed, 46 insertions(+), 84 deletions(-) diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountContract.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountContract.kt index 3fab8a6..9491718 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountContract.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountContract.kt @@ -19,7 +19,7 @@ interface AccountContract { fun hideProgressbar() - fun searchedAccount(account: Account) + fun searchedAccount(accounts: List<Account>) } @@ -28,6 +28,6 @@ interface AccountContract { fun getAccountsPage() - fun searchAccount(query: String) + fun searchAccount(account: List<Account>, query: String) } } \ No newline at end of file diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsFragment.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsFragment.kt index a195fe3..891ec82 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsFragment.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsFragment.kt @@ -92,7 +92,7 @@ class AccountsFragment : FineractBaseFragment(), AccountContract.View, SwipeRefr searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String): Boolean { - accountsPresenter.searchAccount(query) + accountsPresenter.searchAccount(accountList, query) return false } @@ -101,16 +101,16 @@ class AccountsFragment : FineractBaseFragment(), AccountContract.View, SwipeRefr showRecyclerView(true) accountsAdapter.setAccountsList(accountList) } - + accountsPresenter.searchAccount(accountList, newText) return false } }) } - override fun searchedAccount(account: Account) { + override fun searchedAccount(accounts: List<Account>) { showRecyclerView(true) - accountsAdapter.setAccountsList(Collections.singletonList(account)) + accountsAdapter.setAccountsList(accounts) } override fun onRefresh() { diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt index 295f2dd..d8e6116 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt @@ -1,8 +1,10 @@ package org.apache.fineract.ui.online.accounting.accounts import android.content.Context +import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable +import io.reactivex.functions.Predicate import io.reactivex.observers.DisposableObserver import io.reactivex.schedulers.Schedulers import org.apache.fineract.R @@ -55,31 +57,17 @@ class AccountsPresenter @Inject constructor(@ApplicationContext context: Context })) } - override fun searchAccount(query: String) { + override fun searchAccount(account: List<Account>, query: String) { checkViewAttached() - mvpView.showProgressbar() - - compositeDisposable.add(dataManagerAccounting - .findAccount(query) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeWith(object : DisposableObserver<Account>() { - override fun onComplete() { - + mvpView.searchedAccount(Observable.fromIterable(account) + .filter(object: Predicate<Account> { + override fun test(account: Account): Boolean { + return account.identifier?.toLowerCase() + ?.contains(query.toLowerCase()).toString().toBoolean() } + }).toList().blockingGet()) - override fun onNext(account: Account) { - mvpView.hideProgressbar() - mvpView.searchedAccount(account) - } - - override fun onError(e: Throwable) { - - mvpView.hideProgressbar() - showExceptionError(e, context.getString(R.string.error_fetching_accounts)) - } - })) } override fun detachView() { diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerContract.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerContract.kt index e76cd28..0454738 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerContract.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerContract.kt @@ -19,7 +19,7 @@ interface LedgerContract { fun hideProgressbar() - fun searchedLedger(ledger: Ledger) + fun searchedLedger(ledgers: List<Ledger>) } @@ -27,6 +27,6 @@ interface LedgerContract { fun getLedgersPage() - fun searchLedger(identifier: String) + fun searchLedger(legderList: List<Ledger>, identifier: String) } } \ No newline at end of file diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerFragment.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerFragment.kt index 482eb6d..8462a97 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerFragment.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerFragment.kt @@ -17,7 +17,6 @@ import org.apache.fineract.ui.adapters.LedgerAdapter import org.apache.fineract.ui.base.FineractBaseActivity import org.apache.fineract.ui.base.FineractBaseFragment import org.apache.fineract.ui.online.accounting.accounts.LedgerContract -import java.util.* import javax.inject.Inject import kotlin.collections.ArrayList @@ -112,7 +111,7 @@ class LedgerFragment : FineractBaseFragment(), LedgerContract.View, searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String): Boolean { - ledgerPresenter.searchLedger(query) + ledgerPresenter.searchLedger(ledgerList, query) return false } @@ -121,16 +120,16 @@ class LedgerFragment : FineractBaseFragment(), LedgerContract.View, showRecyclerView(true) ledgerAdapter.setLedgerList(ledgerList) } - + ledgerPresenter.searchLedger(ledgerList, newText) return false } }) } - override fun searchedLedger(ledger: Ledger) { + override fun searchedLedger(ledgers: List<Ledger>) { showRecyclerView(true) - ledgerAdapter.setLedgerList(Collections.singletonList(ledger)) + ledgerAdapter.setLedgerList(ledgers) } override fun showRecyclerView(status: Boolean) { diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerPresenter.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerPresenter.kt index 3b9e5a4..dde25b3 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerPresenter.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/ledgers/LedgerPresenter.kt @@ -1,8 +1,10 @@ package org.apache.fineract.ui.online.accounting.ledgers import android.content.Context +import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable +import io.reactivex.functions.Predicate import io.reactivex.observers.DisposableObserver import io.reactivex.schedulers.Schedulers import org.apache.fineract.R @@ -56,31 +58,16 @@ class LedgerPresenter @Inject constructor(@ApplicationContext context: Context, ) } - override fun searchLedger(identifier: String) { + override fun searchLedger(ledgerList: List<Ledger>, identifier: String) { checkViewAttached() - mvpView.showProgressbar() - - compositeDisposable.add(dataManagerAccounting.findLedger(identifier) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeWith(object : DisposableObserver<Ledger>() { - override fun onComplete() { - - } - - override fun onNext(ledger: Ledger) { - mvpView.hideProgressbar() - mvpView.searchedLedger(ledger) + mvpView.searchedLedger(Observable.fromIterable(ledgerList) + .filter(object: Predicate<Ledger> { + override fun test(ledger: Ledger): Boolean { + return ledger.identifier?.toLowerCase() + ?.contains(identifier.toLowerCase()).toString().toBoolean() } - - override fun onError(throwable: Throwable) { - mvpView.hideProgressbar() - showExceptionError(throwable, - context.getString(R.string.error_fetching_ledger)) - } - }) - ) + }).toList().blockingGet()) } diff --git a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerContract.kt b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerContract.kt index 58d3821..a9b204a 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerContract.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerContract.kt @@ -19,11 +19,13 @@ interface TellerContract { fun hideProgressbar() - fun searchedTeller(teller: Teller) + fun searchedTeller(tellers: List<Teller>) } interface Presenter { fun fetchTellers() + + fun searchTeller(tellers: List<Teller>, query: String) } } diff --git a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerFragment.kt b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerFragment.kt index a5799f6..005e078 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerFragment.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerFragment.kt @@ -111,7 +111,7 @@ class TellerFragment : FineractBaseFragment(), TellerContract.View, SwipeRefresh searchView?.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String): Boolean { - tellPresenter.searchTeller(query) + tellPresenter.searchTeller(tellerList, query) return false } @@ -120,16 +120,16 @@ class TellerFragment : FineractBaseFragment(), TellerContract.View, SwipeRefresh showRecyclerView(true) tellerAdapter.setTellerList(tellerList) } - + tellPresenter.searchTeller(tellerList, newText) return false } }) } - override fun searchedTeller(teller: Teller) { + override fun searchedTeller(tellers: List<Teller>) { showRecyclerView(true) - tellerAdapter.setTellerList(Collections.singletonList(teller)) + tellerAdapter.setTellerList(tellers) } override fun showRecyclerView(status: Boolean) { diff --git a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerPresenter.kt b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerPresenter.kt index ab2de29..a94c351 100644 --- a/app/src/main/java/org/apache/fineract/ui/online/teller/TellerPresenter.kt +++ b/app/src/main/java/org/apache/fineract/ui/online/teller/TellerPresenter.kt @@ -1,8 +1,10 @@ package org.apache.fineract.ui.online.teller import android.content.Context +import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable +import io.reactivex.functions.Predicate import io.reactivex.observers.DisposableObserver import io.reactivex.schedulers.Schedulers import org.apache.fineract.R @@ -49,31 +51,15 @@ class TellerPresenter @Inject constructor(@ApplicationContext context: Context, })) } - fun searchTeller(query: String) { - + override fun searchTeller(tellers: List<Teller>, query: String) { checkViewAttached() - mvpView.showProgressbar() - - compositeDisposable.add(dataManagerTeller.findTeller(query) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeWith(object : DisposableObserver<Teller>() { - override fun onComplete() { - - } - - override fun onNext(teller: Teller) { - mvpView.hideProgressbar() - mvpView.searchedTeller(teller) - + mvpView.searchedTeller(Observable.fromIterable(tellers) + .filter(object: Predicate<Teller> { + override fun test(teller: Teller): Boolean { + return teller.tellerAccountIdentifier?.toLowerCase() + ?.contains(query.toLowerCase()).toString().toBoolean() } - - override fun onError(throwable: Throwable) { - mvpView.hideProgressbar() - showExceptionError(throwable, - context.getString(R.string.error_fetching_teller)) - } - })) + }).toList().blockingGet()) }