diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java index ee461684..c18f998b 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java @@ -1,16 +1,13 @@ package com.gmeremit.online.gmeremittance_native.recipientV3.adapter; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.gmeremit.online.gmeremittance_native.R; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel; import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientlisting.RecipientListRVViewholder; import com.gmeremit.online.gmeremittance_native.recipientV3.model.ReceiverInfoV3Model; -import com.gmeremit.online.gmeremittance_native.utils.Utils; import java.util.ArrayList; import java.util.Iterator; @@ -22,8 +19,8 @@ public class RecipientListingV3RvAdapter extends RecyclerView.Adapter data; public RecipientListingV3RvAdapter(RecipientSelectionListener listener) { - this.listener=listener; - data=new ArrayList<>(); + this.listener = listener; + data = new ArrayList<>(); } @Override @@ -34,7 +31,7 @@ public class RecipientListingV3RvAdapter extends RecyclerView.Adapter recievedData) - { - if(recievedData!=null&&recievedData.size()>0) - { - this.data=recievedData; - notifyDataSetChanged(); - } + public void setData(List recievedData) { + if (recievedData != null && recievedData.size() > 0) + this.data = recievedData; + else + this.data.clear(); + notifyDataSetChanged(); + } @Override @@ -71,27 +68,24 @@ public class RecipientListingV3RvAdapter extends RecyclerView.Adapter0) - { - Iterator iterator=data.iterator(); - int count=0; - while(iterator.hasNext()) - { - ReceiverInfoV3Model item=iterator.next(); - if(item.getId().equalsIgnoreCase(recipientToBeDeleted)) { + if (recipientToBeDeleted != null && recipientToBeDeleted.length() > 0) { + Iterator iterator = data.iterator(); + int count = 0; + while (iterator.hasNext()) { + ReceiverInfoV3Model item = iterator.next(); + if (item.getId().equalsIgnoreCase(recipientToBeDeleted)) { iterator.remove(); notifyItemRemoved(count); } count++; } - if(this.data.size()<1) + if (this.data.size() < 1) listener.onAllRecipientDeleted(); } } - public interface RecipientSelectionListener - { + public interface RecipientSelectionListener { void onRecipientSelected(ReceiverInfoV3Model recipientInfoModel); void onRecipientLongPressed(ReceiverInfoV3Model recipientInfoModel); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3Presenter.java index 848115be..d82b9508 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3Presenter.java @@ -12,6 +12,7 @@ import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataM import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.List; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -64,7 +65,25 @@ public class RecipientListingV3Presenter extends BasePresenter implements Recipi @Override public void searchForReciever(String keyword) { + if (this.availableRecipientList != null) { + if (keyword.length() > 0) { + List searchedData = new ArrayList<>(); + for (ReceiverInfoV3Model item : availableRecipientList) { + if (item.getName().toLowerCase().contains(keyword.toLowerCase())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + view.showNoRecipientFoundView(false); + else + view.showNoRecipientFoundView(true); + view.showAllRecipientToUser(searchedData,false); + } else { + view.showNoRecipientFoundView(false); + view.showAllRecipientToUser(availableRecipientList,false); + } + } } public class RecipientListingV3Observer extends GenericApiObserverResponseV2 { @@ -79,7 +98,7 @@ public class RecipientListingV3Presenter extends BasePresenter implements Recipi if (recipientRelatedDataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { availableRecipientList = recipientRelatedDataApiResponse.getData().getRecipientList(); availablePaymentSources = recipientRelatedDataApiResponse.getData().getAccountList(); - view.showAllRecipientToUser(availableRecipientList); + view.showAllRecipientToUser(availableRecipientList,true); } else { view.showPopUpMessage(recipientRelatedDataApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java index 28db398a..7c3a0b6f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java @@ -22,10 +22,12 @@ public interface RecipientListingV3PresenterInterface extends BasePresenterInter interface RecipientListingV3ContractInterface extends BaseContractInterface { - void showAllRecipientToUser(List recipientInfoModelList); + void showAllRecipientToUser(List recipientInfoModelList,boolean changeLayoutBehavior); void onRecipientDeletedSuccessfully(String recipientToBeDeleted); void onGettingAutoDebitsAccounts(List autoDebitAccountList); + + void showNoRecipientFoundView(boolean action); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/RecipientListingV3Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/RecipientListingV3Activity.java index a9c4f4d2..1a50366a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/RecipientListingV3Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/RecipientListingV3Activity.java @@ -5,7 +5,10 @@ import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.CoordinatorLayout; import android.os.Bundle; import android.support.v7.widget.RecyclerView; +import android.text.Editable; import android.view.View; +import android.widget.EditText; +import android.widget.FrameLayout; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.autodebitV2.adapter.autodebitaccountlisting.AccountListingRvAdapter; @@ -13,6 +16,7 @@ import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccou import com.gmeremit.online.gmeremittance_native.autodebitV2.view.autodebitaccountlisting.AutoDebitAccountListingDialog; import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; +import com.gmeremit.online.gmeremittance_native.customwidgets.TextWatcherAdapter; import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientListingRvAdapter; import com.gmeremit.online.gmeremittance_native.recipientV3.adapter.RecipientListingV3RvAdapter; import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientlistingV3.RecipientListingV3Gateway; @@ -53,14 +57,25 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien @BindView(R.id.iv_cancel) View iv_cancel; + @BindView(R.id.recipientListContainer) + FrameLayout recipientListContainer; + + @BindView(R.id.noDataFoundTextView) + View noDataFoundTextView; + @BindView(R.id.toolbar_title) GmeTextView toolbarTitle; + @BindView(R.id.searchEditText) + EditText searchEditText; + private RecipientListingV3RvAdapter recipientListingRvAdapter; private AutoDebitAccountListingDialog autoDebitAccountListingDialog; - private RecipientListingV3Presenter presenter; + private RecipientListingV3PresenterInterface presenter; + + private SearchEditTextTextWatcher searchEditTextTextWatcher; @Override protected void onCreate(Bundle savedInstanceState) { @@ -71,9 +86,23 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien performDefaultAction(savedInstanceState); } + @Override + protected void onStart() { + super.onStart(); + searchEditText.addTextChangedListener(searchEditTextTextWatcher); + } + + @Override + protected void onStop() { + super.onStop(); + searchEditText.removeTextChangedListener(searchEditTextTextWatcher); + + } + private void init() { this.presenter=new RecipientListingV3Presenter(this,new RecipientListingV3Gateway()); + searchEditTextTextWatcher=new SearchEditTextTextWatcher(); setupRecyclerView(); } @@ -93,30 +122,32 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien } @Override - public void showAllRecipientToUser(List recipientInfoModelList) { - if (recipientInfoModelList != null && recipientInfoModelList.size() > 0) { - recipientHintTextViewContainer.setVisibility(View.VISIBLE); + public void showAllRecipientToUser(List recipientInfoModelList,boolean changeLayoutBehavior) { + if(changeLayoutBehavior) { + if (recipientInfoModelList != null && recipientInfoModelList.size() > 0) { + recipientHintTextViewContainer.setVisibility(View.VISIBLE); - CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) recipientListRv.getLayoutParams(); - coordinatorLayoutParams.setBehavior(new AppBarLayout.ScrollingViewBehavior(recipientListRv.getContext(), null)); + CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) recipientListContainer.getLayoutParams(); + coordinatorLayoutParams.setBehavior(new AppBarLayout.ScrollingViewBehavior(recipientListContainer.getContext(), null)); - AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); - toolbarLayoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS); + AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); + toolbarLayoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS); - collapsingToolbar.requestLayout(); + collapsingToolbar.requestLayout(); - } else { + } else { - recipientHintTextViewContainer.setVisibility(View.GONE); + recipientHintTextViewContainer.setVisibility(View.GONE); - CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) recipientListRv.getLayoutParams(); - coordinatorLayoutParams.setBehavior(null); + CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) recipientListContainer.getLayoutParams(); + coordinatorLayoutParams.setBehavior(null); - AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); - toolbarLayoutParams.setScrollFlags(0); + AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams(); + toolbarLayoutParams.setScrollFlags(0); - collapsingToolbar.requestLayout(); + collapsingToolbar.requestLayout(); + } } recipientListingRvAdapter.setData(recipientInfoModelList); } @@ -167,6 +198,22 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien autoDebitAccountListingDialog.show(getSupportFragmentManager(), "COUNTRY CHOOSER"); } + @Override + public void showNoRecipientFoundView(boolean action) { + if(action) + { + recipientListRv.setVisibility(View.INVISIBLE); + noDataFoundTextView.setVisibility(View.VISIBLE); + } + else + { + recipientListRv.setVisibility(View.VISIBLE); + noDataFoundTextView.setVisibility(View.INVISIBLE); + + + } + } + @Override public void onRecipientSelected(ReceiverInfoV3Model recipientInfoModel) { @@ -181,4 +228,12 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien public void onAllRecipientDeleted() { } + + class SearchEditTextTextWatcher extends TextWatcherAdapter + { + @Override + public void onTextUpdated(String text) { + presenter.searchForReciever(text); + } + } } diff --git a/app/src/main/res/layout/activity_recipient_listing_v3.xml b/app/src/main/res/layout/activity_recipient_listing_v3.xml index 330f0124..dbce299f 100644 --- a/app/src/main/res/layout/activity_recipient_listing_v3.xml +++ b/app/src/main/res/layout/activity_recipient_listing_v3.xml @@ -138,12 +138,35 @@ - + android:layout_height="match_parent"> + + + +