Browse Source

Search implmented in reciever listing screen

master
Preyea Regmi 5 years ago
parent
commit
6d18802ed2
  1. 42
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java
  2. 21
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3Presenter.java
  3. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java
  4. 87
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/RecipientListingV3Activity.java
  5. 33
      app/src/main/res/layout/activity_recipient_listing_v3.xml

42
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<RecipientL
private List<ReceiverInfoV3Model> 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<RecipientL
@Override
public void onBindViewHolder(RecipientListRVViewholder holder, int position) {
ReceiverInfoV3Model recipientInfo= data.get(holder.getAdapterPosition());
ReceiverInfoV3Model recipientInfo = data.get(holder.getAdapterPosition());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -56,13 +53,13 @@ public class RecipientListingV3RvAdapter extends RecyclerView.Adapter<RecipientL
}
public void setData(List<ReceiverInfoV3Model> recievedData)
{
if(recievedData!=null&&recievedData.size()>0)
{
this.data=recievedData;
notifyDataSetChanged();
}
public void setData(List<ReceiverInfoV3Model> 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.Adapter<RecipientL
}
public void removeRecipientFromList(String recipientToBeDeleted) {
if(recipientToBeDeleted!=null&&recipientToBeDeleted.length()>0)
{
Iterator<ReceiverInfoV3Model> 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<ReceiverInfoV3Model> 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);

21
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<ReceiverInfoV3Model> 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<RecipientRelatedDataModelV3> {
@ -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());

4
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<ReceiverInfoV3Model> recipientInfoModelList);
void showAllRecipientToUser(List<ReceiverInfoV3Model> recipientInfoModelList,boolean changeLayoutBehavior);
void onRecipientDeletedSuccessfully(String recipientToBeDeleted);
void onGettingAutoDebitsAccounts(List<AutoDebitAccount> autoDebitAccountList);
void showNoRecipientFoundView(boolean action);
}
}

87
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<ReceiverInfoV3Model> recipientInfoModelList) {
if (recipientInfoModelList != null && recipientInfoModelList.size() > 0) {
recipientHintTextViewContainer.setVisibility(View.VISIBLE);
public void showAllRecipientToUser(List<ReceiverInfoV3Model> 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);
}
}
}

33
app/src/main/res/layout/activity_recipient_listing_v3.xml

@ -138,12 +138,35 @@
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recipientListRv"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
<FrameLayout
android:id="@+id/recipientListContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"/>
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recipientListRv"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"/>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeEditText
android:layout_marginTop="@dimen/_8sdp"
android:paddingTop="20dp"
android:id="@+id/noDataFoundTextView"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:enabled="false"
android:gravity="center"
android:hint="@string/no_result_found_text"
android:imeActionLabel="Done"
android:imeOptions="actionDone"
android:inputType="text"
android:textColor="@android:color/black"
android:textSize="14sp"
/>
</FrameLayout>

Loading…
Cancel
Save