Browse Source

Delete recipient done

master
preyearegmi 6 years ago
parent
commit
d8baf041ae
  1. 27
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientListingRvAdapter.java
  2. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientListingV2Gateway.java
  3. 72
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientlisting/RecipientInfoModel.java
  4. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2InteractorInterface.java
  5. 41
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2Presenter.java
  6. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2PresenterInterface.java
  7. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientadd/RecipientAddV2Activity.java
  8. 40
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientlisting/RecipientListingV2Activity.java
  9. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  10. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
  11. 10
      app/src/main/res/layout/recipient_list_item.xml

27
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientListingRvAdapter.java

@ -14,6 +14,7 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.view.RecipientListRV
import com.gmeremit.online.gmeremittance_native.utils.Utils; import com.gmeremit.online.gmeremittance_native.utils.Utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientListRVViewholder> { public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientListRVViewholder> {
@ -41,6 +42,13 @@ public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientLis
listener.onRecipientSelected(recipientInfo); listener.onRecipientSelected(recipientInfo);
} }
}); });
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
listener.onRecipientLongPressed(recipientInfo);
return true;
}
});
holder.setUserName(recipientInfo.getFirstName()+" "+recipientInfo.getLastName()); holder.setUserName(recipientInfo.getFirstName()+" "+recipientInfo.getLastName());
holder.setUserInitial(Utils.splitFirstLetterFromWord(recipientInfo.getFirstName())+Utils.splitFirstLetterFromWord(recipientInfo.getLastName())); holder.setUserInitial(Utils.splitFirstLetterFromWord(recipientInfo.getFirstName())+Utils.splitFirstLetterFromWord(recipientInfo.getLastName()));
@ -61,9 +69,28 @@ public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientLis
return data.size(); return data.size();
} }
public void removeRecipientFromList(String recipientToBeDeleted) {
if(recipientToBeDeleted!=null&&recipientToBeDeleted.length()>0)
{
Iterator<RecipientInfoModel> iterator=data.iterator();
int count=0;
while(iterator.hasNext())
{
RecipientInfoModel item=iterator.next();
if(item.getRecipientId().equalsIgnoreCase(recipientToBeDeleted)) {
iterator.remove();
notifyItemRemoved(count);
}
count++;
}
}
}
public interface RecipientSelectionListener public interface RecipientSelectionListener
{ {
void onRecipientSelected(RecipientInfoModel recipientInfoModel); void onRecipientSelected(RecipientInfoModel recipientInfoModel);
void onRecipientLongPressed(RecipientInfoModel recipientInfoModel);
} }
} }

6
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientListingV2Gateway.java

@ -10,6 +10,7 @@ import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.ResponseBody;
public class RecipientListingV2Gateway extends PrivilegedGateway implements RecipientListingV2InteractorInterface.RecipientListingV2GatewayInterface { public class RecipientListingV2Gateway extends PrivilegedGateway implements RecipientListingV2InteractorInterface.RecipientListingV2GatewayInterface {
@ -28,4 +29,9 @@ public class RecipientListingV2Gateway extends PrivilegedGateway implements Reci
return HttpClientV2.getInstance().getAllRecipientV2(auth,Uid); return HttpClientV2.getInstance().getAllRecipientV2(auth,Uid);
} }
@Override
public Observable<AddRecipientApiResponse> deleteRecipientFromNetwork(String auth, String Uid, String recipientID) {
return HttpClientV2.getInstance().deleteRecipientV2(auth,Uid,recipientID);
}
} }

72
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientlisting/RecipientInfoModel.java

@ -1,9 +1,12 @@
package com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting; package com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
public class RecipientInfoModel {
public class RecipientInfoModel implements Parcelable {
@SerializedName("mobileNumber") @SerializedName("mobileNumber")
@Expose @Expose
private String mobileNumber; private String mobileNumber;
@ -227,5 +230,70 @@ public class RecipientInfoModel {
} }
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.mobileNumber);
dest.writeString(this.district);
dest.writeString(this.reasonId);
dest.writeString(this.relation);
dest.writeString(this.country);
dest.writeString(this.dpUrl);
dest.writeString(this.city);
dest.writeString(this.relationId);
dest.writeString(this.countryId);
dest.writeString(this.state);
dest.writeString(this.email);
dest.writeString(this.middleName);
dest.writeString(this.firstName);
dest.writeString(this.recipientId);
dest.writeString(this.reason);
dest.writeString(this.districtId);
dest.writeString(this.stateId);
dest.writeString(this.lastName);
dest.writeString(this.address);
dest.writeString(this.userId);
}
public RecipientInfoModel() {
}
protected RecipientInfoModel(Parcel in) {
this.mobileNumber = in.readString();
this.district = in.readString();
this.reasonId = in.readString();
this.relation = in.readString();
this.country = in.readString();
this.dpUrl = in.readString();
this.city = in.readString();
this.relationId = in.readString();
this.countryId = in.readString();
this.state = in.readString();
this.email = in.readString();
this.middleName = in.readString();
this.firstName = in.readString();
this.recipientId = in.readString();
this.reason = in.readString();
this.districtId = in.readString();
this.stateId = in.readString();
this.lastName = in.readString();
this.address = in.readString();
this.userId = in.readString();
}
public static final Parcelable.Creator<RecipientInfoModel> CREATOR = new Parcelable.Creator<RecipientInfoModel>() {
@Override
public RecipientInfoModel createFromParcel(Parcel source) {
return new RecipientInfoModel(source);
}
@Override
public RecipientInfoModel[] newArray(int size) {
return new RecipientInfoModel[size];
}
};
} }

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2InteractorInterface.java

@ -7,6 +7,7 @@ import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.R
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.GetAllRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.GetAllRecipientApiResponse;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RecipientListingV2InteractorInterface extends BaseInteractorInterface { public interface RecipientListingV2InteractorInterface extends BaseInteractorInterface {
@ -14,5 +15,6 @@ public interface RecipientListingV2InteractorInterface extends BaseInteractorInt
interface RecipientListingV2GatewayInterface extends PrivilegedGatewayInterface interface RecipientListingV2GatewayInterface extends PrivilegedGatewayInterface
{ {
Observable<GetAllRecipientApiResponse> getAllRecipientFromNetwork(String auth,String Uid); Observable<GetAllRecipientApiResponse> getAllRecipientFromNetwork(String auth,String Uid);
Observable<AddRecipientApiResponse> deleteRecipientFromNetwork(String auth, String Uid,String recipientID);
} }
} }

41
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2Presenter.java

@ -18,6 +18,7 @@ import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverRe
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
public class RecipientListingV2Presenter extends BasePresenter implements RecipientListingV2PresenterInterface, RecipientListingV2InteractorInterface { public class RecipientListingV2Presenter extends BasePresenter implements RecipientListingV2PresenterInterface, RecipientListingV2InteractorInterface {
@ -54,6 +55,18 @@ public class RecipientListingV2Presenter extends BasePresenter implements Recipi
); );
} }
@Override
public void deleteRecipient(String recipientId) {
compositeDisposable.add(
this.gateway.deleteRecipientFromNetwork(gateway.getAuth(),gateway.getUserID(),recipientId)
.doOnSubscribe(disposable -> view.showProgressBar(true, "Deleting recipient..."))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new RecipientDeleteObserver(recipientId))
);
}
public class RecipinetListObserver extends GenericApiObserverResponse<GetAllRecipientApiResponse> public class RecipinetListObserver extends GenericApiObserverResponse<GetAllRecipientApiResponse>
{ {
@ -76,4 +89,32 @@ public class RecipientListingV2Presenter extends BasePresenter implements Recipi
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null); view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
} }
} }
public class RecipientDeleteObserver extends GenericApiObserverResponse<AddRecipientApiResponse>
{
private final String recipientToBeDeleted;
RecipientDeleteObserver(String recipientToBeDeleted) {
this.recipientToBeDeleted=recipientToBeDeleted;
}
@Override
protected void onSuccess(AddRecipientApiResponse responseBody) {
if(responseBody.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2))
view.onRecipientDeletedSuccessfully(this.recipientToBeDeleted);
view.showToastMessage(responseBody.getMsg());
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET,null);
}
}
} }

5
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientlisting/RecipientListingV2PresenterInterface.java

@ -15,8 +15,13 @@ import java.util.List;
public interface RecipientListingV2PresenterInterface extends BasePresenterInterface { public interface RecipientListingV2PresenterInterface extends BasePresenterInterface {
void getAllRecipientList(); void getAllRecipientList();
void deleteRecipient(String recipientId);
interface RecipientListingV2ContractInterface extends BaseContractInterface interface RecipientListingV2ContractInterface extends BaseContractInterface
{ {
void showAllRecipientToUser(List<RecipientInfoModel> recipientInfoModelList); void showAllRecipientToUser(List<RecipientInfoModel> recipientInfoModelList);
void onRecipientDeletedSuccessfully(String recipientToBeDeleted);
} }
} }

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientadd/RecipientAddV2Activity.java

@ -79,6 +79,10 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
Button submitButton; Button submitButton;
public static String RECIPIENT_INFO_BUNDLE_KEY="recipientInfoKey";
private RecipientAddV2PresenterInterface presenterInterface; private RecipientAddV2PresenterInterface presenterInterface;
private RecipientCountryListingDialog recipientCountryListingDialog; private RecipientCountryListingDialog recipientCountryListingDialog;

40
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientlisting/RecipientListingV2Activity.java

@ -1,5 +1,7 @@
package com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientlisting; package com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientlisting;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
@ -10,11 +12,14 @@ import android.view.ViewGroup;
import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.recipient.view.RecipientsListActivity;
import com.gmeremit.online.gmeremittance_native.recipient.view.UpdateRecipientActivity;
import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientListingRvAdapter; import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientListingRvAdapter;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2Presenter; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientadd.RecipientAddV2Activity; import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientadd.RecipientAddV2Activity;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import java.util.List; import java.util.List;
@ -32,6 +37,8 @@ public class RecipientListingV2Activity extends BaseActivity implements Recipien
private RecipientListingV2PresenterInterface recipientListingV2PresenterInterface; private RecipientListingV2PresenterInterface recipientListingV2PresenterInterface;
public static int RECIPIENT_INFO_ACTION_EDIT=2999;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -87,8 +94,41 @@ public class RecipientListingV2Activity extends BaseActivity implements Recipien
recipientListingRvAdapter.setData(recipientInfoModelList); recipientListingRvAdapter.setData(recipientInfoModelList);
} }
@Override
public void onRecipientDeletedSuccessfully(String recipientToBeDeleted) {
recipientListingRvAdapter.removeRecipientFromList(recipientToBeDeleted);
}
@Override @Override
public void onRecipientSelected(RecipientInfoModel recipientInfoModel) { public void onRecipientSelected(RecipientInfoModel recipientInfoModel) {
//Proceed to send money
}
@Override
public void onRecipientLongPressed(RecipientInfoModel recipientInfoModel) {
CharSequence[] charSequences = new CharSequence[]{"Delete", "Edit"};
AlertDialog.Builder alert = new AlertDialog.Builder(RecipientListingV2Activity.this);
alert.setItems(charSequences, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (i == 0) {
recipientListingV2PresenterInterface.deleteRecipient(recipientInfoModel.getRecipientId());
} else {
Intent intent = new Intent(getApplicationContext(), RecipientAddV2Activity.class);
intent.putExtra(RecipientAddV2Activity.RECIPIENT_INFO_BUNDLE_KEY,recipientInfoModel);
startActivityForResult(intent,RecipientListingV2Activity.RECIPIENT_INFO_ACTION_EDIT);
}
}
});
alert.create();
alert.show();
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RecipientListingV2Activity.RECIPIENT_INFO_ACTION_EDIT && resultCode == RESULT_OK) {
//fetchDataOnce
}
}
} }

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java

@ -124,5 +124,6 @@ public class API_URL {
public static final String GET_ALL_RECIPIENT_INFO = "mobile/loadform/receiver"; public static final String GET_ALL_RECIPIENT_INFO = "mobile/loadform/receiver";
public static final String ADD_RECIPIENT_V2 = "mobile/receiver/save/"; public static final String ADD_RECIPIENT_V2 = "mobile/receiver/save/";
public static final String GET_ALL_RECIPIENT_V2 = "mobile/{uId}/receivers?search="; public static final String GET_ALL_RECIPIENT_V2 = "mobile/{uId}/receivers?search=";
public static final String DELETE_RECIPIENT_V2 = "mobile/receiver/remove/{uId}/";
} }

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

@ -544,4 +544,8 @@ public interface ApiEndpoints {
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
Observable<GetAllRecipientApiResponse> getAllRecipientV2(@Header("Authorization") String token, @Path("uId") String userName); Observable<GetAllRecipientApiResponse> getAllRecipientV2(@Header("Authorization") String token, @Path("uId") String userName);
@POST(API_URL.DELETE_RECIPIENT_V2)
@Headers("Content-Type: application/json")
Observable<AddRecipientApiResponse> deleteRecipientV2(@Header("Authorization") String token, @Path("uId") String userName,@Query("receiverId") String recieverId);
} }

10
app/src/main/res/layout/recipient_list_item.xml

@ -2,14 +2,15 @@
<LinearLayout android:layout_width="match_parent" <LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="8dp"
android:background="@drawable/ic_rounded_white" android:background="@drawable/ic_rounded_white"
android:orientation="horizontal" android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout <FrameLayout
android:layout_marginLeft="10dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dp"> android:padding="10dp">
@ -17,9 +18,10 @@
android:id="@+id/letterInitialTxtView" android:id="@+id/letterInitialTxtView"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center" android:gravity="center"
android:textSize="18sp"
android:background="@drawable/circular_red_bg" android:background="@drawable/circular_red_bg"
android:layout_width="43dp"
android:layout_height="43dp" />
android:layout_width="50dp"
android:layout_height="50dp" />
</FrameLayout> </FrameLayout>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView <com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView

Loading…
Cancel
Save