You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ra...@apache.org on 2019/05/31 17:22:01 UTC

[fineract-cn-mobile] 01/05: FINCN-147: Search not working in Ledger, Accounts, Tellers

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 <ac...@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())
     }