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 java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientListRVViewholder> {
@ -41,6 +42,13 @@ public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientLis
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.setUserInitial(Utils.splitFirstLetterFromWord(recipientInfo.getFirstName())+Utils.splitFirstLetterFromWord(recipientInfo.getLastName()));
@ -61,9 +69,28 @@ public class RecipientListingRvAdapter extends RecyclerView.Adapter<RecipientLis
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
{
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 io.reactivex.Observable;
import okhttp3.ResponseBody;
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);
}
@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;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RecipientInfoModel {
public class RecipientInfoModel implements Parcelable {
@SerializedName("mobileNumber")
@Expose
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 io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RecipientListingV2InteractorInterface extends BaseInteractorInterface {
@ -14,5 +15,6 @@ public interface RecipientListingV2InteractorInterface extends BaseInteractorInt
interface RecipientListingV2GatewayInterface extends PrivilegedGatewayInterface
{
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.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
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>
{
@ -76,4 +89,32 @@ public class RecipientListingV2Presenter extends BasePresenter implements Recipi
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 {
void getAllRecipientList();
void deleteRecipient(String recipientId);
interface RecipientListingV2ContractInterface extends BaseContractInterface
{
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;
public static String RECIPIENT_INFO_BUNDLE_KEY="recipientInfoKey";
private RecipientAddV2PresenterInterface presenterInterface;
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;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
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.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.model.recipientlisting.RecipientInfoModel;
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.view.recipientadd.RecipientAddV2Activity;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import java.util.List;
@ -32,6 +37,8 @@ public class RecipientListingV2Activity extends BaseActivity implements Recipien
private RecipientListingV2PresenterInterface recipientListingV2PresenterInterface;
public static int RECIPIENT_INFO_ACTION_EDIT=2999;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -87,8 +94,41 @@ public class RecipientListingV2Activity extends BaseActivity implements Recipien
recipientListingRvAdapter.setData(recipientInfoModelList);
}
@Override
public void onRecipientDeletedSuccessfully(String recipientToBeDeleted) {
recipientListingRvAdapter.removeRecipientFromList(recipientToBeDeleted);
}
@Override
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 ADD_RECIPIENT_V2 = "mobile/receiver/save/";
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")
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"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="8dp"
android:background="@drawable/ic_rounded_white"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
@ -17,9 +18,10 @@
android:id="@+id/letterInitialTxtView"
android:layout_gravity="center"
android:gravity="center"
android:textSize="18sp"
android:background="@drawable/circular_red_bg"
android:layout_width="43dp"
android:layout_height="43dp" />
android:layout_width="50dp"
android:layout_height="50dp" />
</FrameLayout>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView

Loading…
Cancel
Save