Browse Source

Applying add recipient use case

master
Preyea Regmi 5 years ago
parent
commit
784a75fcaa
  1. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3Gateway.java
  2. 13
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3GatewayInterface.java
  3. 54
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/CountryServiceModel.java
  4. 41
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ServiceTypeModel.java
  5. 16
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3ContractInterface.java
  6. 23
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3InteractorInterface.java
  7. 24
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3PresenterInterface.java
  8. 17
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientDetailValidaitorV3.java
  9. 11
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientPresenterInterface.java
  10. 59
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3Presenter.java
  11. 11
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3PresenterInterface.java
  12. 145
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3Presenter.java
  13. 7
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3PresenterInterface.java
  14. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java
  15. 38
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddV3/RecipientAddV3Activity.java
  16. 11
      app/src/test/java/com/gmeremit/online/gmeremittance_native/AddRecipientV3ValidationExecutorTester.java

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3Gateway.java

@ -1,12 +1,11 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3; package com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3InteractorInterface;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
public class RecipientAddV3Gateway extends PrivilegedGateway implements RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface {
public class RecipientAddV3Gateway extends PrivilegedGateway implements RecipientAddV3GatewayInterface {
@Override @Override
public Observable<ResponseBody> getDynamicValidationRules(String auth, String senderId, String countryId, String serviceType) { public Observable<ResponseBody> getDynamicValidationRules(String auth, String senderId, String countryId, String serviceType) {
return null; return null;

13
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3GatewayInterface.java

@ -0,0 +1,13 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RecipientAddV3GatewayInterface extends PrivilegedGatewayInterface
{
Observable<ResponseBody> getDynamicValidationRules(String auth, String senderId, String countryId, String serviceType);
Observable<ResponseBody> getCountryServiceDetail(String auth);
}

54
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/CountryServiceModel.java

@ -0,0 +1,54 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class CountryServiceModel {
@SerializedName("countryCode")
@Expose
private String countryCode;
@SerializedName("countryName")
@Expose
private String countryName;
@SerializedName("countryId")
@Expose
private String countryId;
@SerializedName("serviceAvailable")
@Expose
private List<ServiceTypeModel> serviceAvailable = null;
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCountryName() {
return countryName;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
public String getCountryId() {
return countryId;
}
public void setCountryId(String countryId) {
this.countryId = countryId;
}
public List<ServiceTypeModel> getServiceAvailable() {
return serviceAvailable;
}
public void setServiceAvailable(List<ServiceTypeModel> serviceAvailable) {
this.serviceAvailable = serviceAvailable;
}
}

41
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ServiceTypeModel.java

@ -0,0 +1,41 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class ServiceTypeModel {
@SerializedName("id")
@Expose
private String id;
@SerializedName("text")
@Expose
private String text;
@SerializedName("description")
@Expose
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}

16
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3ContractInterface.java

@ -0,0 +1,16 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
public interface RecipientAddV3ContractInterface extends BaseContractInterface
{
void updateValidationRuleToWidgetFullName(boolean visiblity, boolean shouldAllowSpecialCharacters, int maxLength);
void updateValueToWidgetFullName(String name);
void setErrorOnWidgetFullName(String error);
void updateValueToWidgetSelectedCountry(String countryName);
void updateValueToWidgetSelectedPaymentMethod(String description);
}

23
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3InteractorInterface.java

@ -1,23 +0,0 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAccount;
import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel;
import com.google.gson.JsonObject;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RecipientAddV3InteractorInterface extends BaseInteractorInterface {
interface RecipientAddV3GatewayInterface extends PrivilegedGatewayInterface
{
Observable<ResponseBody> getDynamicValidationRules(String auth,String senderId, String countryId,String serviceType);
}
}

24
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3PresenterInterface.java

@ -1,24 +0,0 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
public interface RecipientAddV3PresenterInterface extends BasePresenterInterface {
void getAllData();
AddRecipientV3ValidationExecutor getValidator();
interface RecipientAddV3ContractInterface extends BaseContractInterface
{
void updateValidationRuleToWidgetFullName(boolean visiblity,boolean shouldAllowSpecialCharacters,int maxLength);
void updateValueToWidgetFullName(String name);
void setErrorOnWidgetFullName(String error);
}
}

17
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/AddRecipientV3ValidationExecutor.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientDetailValidaitorV3.java

@ -6,22 +6,27 @@ import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlisti
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class AddRecipientV3ValidationExecutor {
public class RecipientDetailValidaitorV3 {
private final RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface view;
private final RecipientAddV3ContractInterface view;
private final ReceiverInfoV3Model recipientInfo; private final ReceiverInfoV3Model recipientInfo;
private final Map<String, ValidationRuleModel> validationRuleModelMap; private final Map<String, ValidationRuleModel> validationRuleModelMap;
public AddRecipientV3ValidationExecutor(RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface view, ReceiverInfoV3Model receiverInfoV3Model) {
if (view == null || receiverInfoV3Model == null) {
throw new IllegalArgumentException("Cannot pass null value to constructor");
public RecipientDetailValidaitorV3(RecipientAddV3ContractInterface view, ReceiverInfoV3Model receiverInfoV3Model) {
if ( receiverInfoV3Model == null) {
receiverInfoV3Model=new ReceiverInfoV3Model();
} }
this.view = view; this.view = view;
this.recipientInfo = receiverInfoV3Model; this.recipientInfo = receiverInfoV3Model;
validationRuleModelMap=new HashMap<>(); validationRuleModelMap=new HashMap<>();
} }
public ReceiverInfoV3Model getRecipientDetail()
{
return recipientInfo;
}
public void applyDynamicValidationRuleToView(ValidationRuleModel rule) { public void applyDynamicValidationRuleToView(ValidationRuleModel rule) {
@ -38,7 +43,7 @@ public class AddRecipientV3ValidationExecutor {
} }
public void validateFullName(String fullName)
public void validateRecipientName(String fullName)
{ {
ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_FULL_NAME); ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_FULL_NAME);
if(validationRuleModel!=null&&validationRuleModel.validateValueAndReturnErrorMessageOnFail(fullName)==null) { if(validationRuleModel!=null&&validationRuleModel.validateValueAndReturnErrorMessageOnFail(fullName)==null) {

11
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientPresenterInterface.java

@ -0,0 +1,11 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.CountryServiceModel;
public interface RecipientPresenterInterface extends BasePresenterInterface {
void onCountryChanged(CountryServiceModel selectedCountry);
void onRecipientNameChanged(String rec);
}

59
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3Presenter.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3Presenter.java

@ -1,12 +1,12 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.add;
import android.os.Handler;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3.RecipientAddV3GatewayInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.CountryServiceModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3ContractInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientDetailValidaitorV3;
import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel; import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
@ -15,31 +15,32 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
/**
1. Get CountryService Detail (G)
2. show CountryService View only and hide remaining view
3. OnCountryServiceSelected erase existing data and update corresponding country data and show service selection view and hide other views along clearing view data
4. OnServiceTypeSelected update selected service type data
5. getDynamicValidation and dropdownvalues
6. Apply Validation Rule
7. Update View
*/
public class RecipientAddV3Presenter extends BasePresenter implements RecipientAddV3PresenterInterface { public class RecipientAddV3Presenter extends BasePresenter implements RecipientAddV3PresenterInterface {
private final RecipientAddV3ContractInterface view; private final RecipientAddV3ContractInterface view;
private final RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface gateway;
private AddRecipientV3ValidationExecutor validator;
private final RecipientAddV3GatewayInterface gateway;
private RecipientDetailValidaitorV3 validator;
private CompositeDisposable compositeDisposable; private CompositeDisposable compositeDisposable;
private List<ValidationRuleModel> availableDynamicValidaitonRule; private List<ValidationRuleModel> availableDynamicValidaitonRule;
public RecipientAddV3Presenter(RecipientAddV3ContractInterface view, ReceiverInfoV3Model recipientToBeEdited, RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface recipientAddV3Gateway) {
public RecipientAddV3Presenter(RecipientAddV3GatewayInterface gateway,RecipientAddV3ContractInterface view ) {
this.view = view; this.view = view;
this.gateway = recipientAddV3Gateway;
this.validator = new AddRecipientV3ValidationExecutor(view, recipientToBeEdited);
this.gateway = gateway;
this.validator = new RecipientDetailValidaitorV3(view, null);
init(); init();
} }
public RecipientAddV3Presenter(RecipientAddV3ContractInterface view, RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface recipientAddV3Gateway) {
this.view = view;
this.gateway = recipientAddV3Gateway;
this.validator = new AddRecipientV3ValidationExecutor(view, new ReceiverInfoV3Model());
init();
}
private void init() { private void init() {
this.compositeDisposable = new CompositeDisposable(); this.compositeDisposable = new CompositeDisposable();
@ -50,22 +51,10 @@ public class RecipientAddV3Presenter extends BasePresenter implements RecipientA
List<ValidationRuleModel> rules=new ArrayList<>(); List<ValidationRuleModel> rules=new ArrayList<>();
// rules.add(new ValidationRuleModel("Full Name","M",10,true,true)); // rules.add(new ValidationRuleModel("Full Name","M",10,true,true));
this.availableDynamicValidaitonRule=rules; this.availableDynamicValidaitonRule=rules;
new Handler().postDelayed(()-> applyValidationRulesToView(),1500);
} }
@Override
public void getAllData() {
this.compositeDisposable.add(
this.gateway.getDynamicValidationRules(this.gateway.getAuth(), this.gateway.getUserID(), "141", "")
.doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DynamicListObserver())
);
}
private Observable<List<ValidationRuleModel>> getValidationRuleModel() { private Observable<List<ValidationRuleModel>> getValidationRuleModel() {
List<ValidationRuleModel> validationRuleModelList = new ArrayList<>(); List<ValidationRuleModel> validationRuleModelList = new ArrayList<>();
@ -79,10 +68,14 @@ public class RecipientAddV3Presenter extends BasePresenter implements RecipientA
} }
} }
@Override
public void onCountryChanged(CountryServiceModel selectedCountry) {
}
@Override @Override
public AddRecipientV3ValidationExecutor getValidator() {
return this.validator;
public void onRecipientNameChanged(String recipientName) {
validator.validateRecipientName(recipientName);
} }

11
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3PresenterInterface.java

@ -0,0 +1,11 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.add;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientDetailValidaitorV3;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientPresenterInterface;
public interface RecipientAddV3PresenterInterface extends RecipientPresenterInterface {
}

145
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3Presenter.java

@ -0,0 +1,145 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.edit;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3.RecipientAddV3GatewayInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.CountryServiceModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ServiceTypeModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientDetailValidaitorV3;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3ContractInterface;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
/**
1. Get CountryService Detail
2. Set selected Country and Payment Method
3. Update selected Country and Payment Method
4. Get Dynamic Setup
5. Set dynamic validation and dropdownlvalues
6. Map(dropdownValues)=> Update existing info
7. Apply Validation rules to selected recipient
8. Update view
*/
public class RecipientEditV3Presenter extends BasePresenter implements RecipientEditV3PresenterInterface {
private final RecipientAddV3ContractInterface view;
private final RecipientAddV3GatewayInterface gateway;
private final CompositeDisposable compositeDisposable;
private final RecipientDetailValidaitorV3 recipientDetailValidator;
private List<CountryServiceModel> availableCountryServiceData;
public RecipientEditV3Presenter(RecipientAddV3GatewayInterface gateway, RecipientAddV3ContractInterface view, ReceiverInfoV3Model receiverInfo) {
this.gateway = gateway;
this.view = view;
this.compositeDisposable = new CompositeDisposable();
this.recipientDetailValidator = new RecipientDetailValidaitorV3(view, receiverInfo);
init();
}
private void init() {
}
private void getCountryServiceDetail() {
compositeDisposable.add(
this.gateway.getCountryServiceDetail(gateway.getAuth())
.doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new CountryServiceObserver())
);
}
private void getDynamicValidationAndDropDownList() {
compositeDisposable.add(
this.gateway.getCountryServiceDetail(gateway.getAuth())
.doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new CountryServiceObserver())
);
}
private void updateViewOnGettingCountryServiceList() {
if (availableCountryServiceData != null)
for (CountryServiceModel countryServiceModel : availableCountryServiceData) {
if (countryServiceModel.getCountryId().equalsIgnoreCase(recipientDetailValidator.getRecipientDetail().getCountryId())) {
view.updateValueToWidgetSelectedCountry(countryServiceModel.getCountryName());
for (ServiceTypeModel selectedServiceType : countryServiceModel.getServiceAvailable()) {
if (selectedServiceType.getId().equalsIgnoreCase(recipientDetailValidator.getRecipientDetail().getPaymentMethod().getId())) {
view.updateValueToWidgetSelectedPaymentMethod(selectedServiceType.getDescription());
return;
}
}
}
}
}
private void persistAvailableCountryServiceList(List<CountryServiceModel> data) {
this.availableCountryServiceData = data;
}
@Override
public void onCountryChanged(CountryServiceModel selectedCountry) {
}
@Override
public void onRecipientNameChanged(String recipientName) {
recipientDetailValidator.validateRecipientName(recipientName);
}
public class CountryServiceObserver extends GenericApiObserverResponseV2<List<CountryServiceModel>> {
@Override
protected Type getDataType() {
return TypeToken.getParameterized(List.class, CountryServiceModel.class).getType();
}
@Override
protected void onSuccess(GenericResponseDataModel<List<CountryServiceModel>> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
persistAvailableCountryServiceList(t.getData());
updateViewOnGettingCountryServiceList();
} else {
}
}
@Override
public void onFailed(String message) {
}
@Override
protected void onConnectionNotEstablished(String message) {
}
@Override
protected void unauthorizedAccess(String message) {
}
}
// public class DynamicValidationAndDataObserver extends GenericApiObserverResponseV2<>
}

7
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3PresenterInterface.java

@ -0,0 +1,7 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.edit;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientPresenterInterface;
public interface RecipientEditV3PresenterInterface extends RecipientPresenterInterface {
}

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java

@ -19,6 +19,8 @@ public interface RecipientListingV3InteractorInterface extends BaseInteractorInt
Observable<ResponseBody> getAllRecipientFromNetwork(String auth, String Uid); Observable<ResponseBody> getAllRecipientFromNetwork(String auth, String Uid);
Observable<ResponseBody> deleteRecipientFromNetwork(String auth, String Uid, String recipientID); Observable<ResponseBody> deleteRecipientFromNetwork(String auth, String Uid, String recipientID);
List<AutoDebitAccount> getAvailableAutoDebitAccountFromMemory(); List<AutoDebitAccount> getAvailableAutoDebitAccountFromMemory();
} }
} }

38
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddV3/RecipientAddV3Activity.java

@ -9,8 +9,10 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.GMEFormInputField;
import com.gmeremit.online.gmeremittance_native.customwidgets.TextWatcherAdapter; import com.gmeremit.online.gmeremittance_native.customwidgets.TextWatcherAdapter;
import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3.RecipientAddV3Gateway; import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3.RecipientAddV3Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3PresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3ContractInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientPresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.add.RecipientAddV3Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.edit.RecipientEditV3Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.utils.InputFilterFactory; import com.gmeremit.online.gmeremittance_native.recipientV3.utils.InputFilterFactory;
import butterknife.BindView; import butterknife.BindView;
@ -18,7 +20,7 @@ import butterknife.ButterKnife;
import static android.view.View.GONE; import static android.view.View.GONE;
public class RecipientAddV3Activity extends BaseActivity implements RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface {
public class RecipientAddV3Activity extends BaseActivity implements RecipientAddV3ContractInterface {
@BindView(R.id.recieverNameFormInputField) @BindView(R.id.recieverNameFormInputField)
GMEFormInputField recieverNameFormInputField; GMEFormInputField recieverNameFormInputField;
@ -26,11 +28,11 @@ public class RecipientAddV3Activity extends BaseActivity implements RecipientAdd
@BindView(R.id.recieverAddressFormInputField) @BindView(R.id.recieverAddressFormInputField)
GMEFormInputField recieverAddressFormInputField; GMEFormInputField recieverAddressFormInputField;
RecieverNameTextWatcher recieverNameTextWatcher;
RecipientNameTextWatcher recieverNameTextWatcher;
public static String RECIPIENT_INFO_BUNDLE_KEY = "recipientInfoKey"; public static String RECIPIENT_INFO_BUNDLE_KEY = "recipientInfoKey";
private RecipientAddV3PresenterInterface presenter;
private RecipientPresenterInterface presenter;
@Override @Override
@ -48,16 +50,16 @@ public class RecipientAddV3Activity extends BaseActivity implements RecipientAdd
private void init() { private void init() {
ReceiverInfoV3Model recipientToBeEdited = getIntent().getParcelableExtra(RECIPIENT_INFO_BUNDLE_KEY); ReceiverInfoV3Model recipientToBeEdited = getIntent().getParcelableExtra(RECIPIENT_INFO_BUNDLE_KEY);
if (recipientToBeEdited != null) {
presenter = new RecipientAddV3Presenter(this, recipientToBeEdited, new RecipientAddV3Gateway());
} else
presenter = new RecipientAddV3Presenter(this, new RecipientAddV3Gateway());
if (recipientToBeEdited != null)
presenter = new RecipientEditV3Presenter( new RecipientAddV3Gateway(),this, recipientToBeEdited);
else
presenter = new RecipientAddV3Presenter(new RecipientAddV3Gateway(),this);
initTextWatchers(); initTextWatchers();
} }
private void initTextWatchers() { private void initTextWatchers() {
recieverNameTextWatcher = new RecieverNameTextWatcher();
recieverNameTextWatcher = new RecipientNameTextWatcher();
} }
private void registerTextWatchers(boolean action) { private void registerTextWatchers(boolean action) {
@ -104,15 +106,25 @@ public class RecipientAddV3Activity extends BaseActivity implements RecipientAdd
} }
public class RecieverNameTextWatcher extends TextWatcherAdapter {
@Override
public void updateValueToWidgetSelectedCountry(String countryName) {
}
@Override
public void updateValueToWidgetSelectedPaymentMethod(String description) {
}
public class RecipientNameTextWatcher extends TextWatcherAdapter {
@Override @Override
public void onTextUpdated(String text) { public void onTextUpdated(String text) {
presenter.getValidator().validateFullName(text);
presenter.onRecipientNameChanged(text);
} }
} }
public class RecieverAddressTextWatcher extends TextWatcherAdapter {
public class RecipientAddressTextWatcher extends TextWatcherAdapter {
@Override @Override
public void onTextUpdated(String text) { public void onTextUpdated(String text) {
if (text.length() < 4) if (text.length() < 4)

11
app/src/test/java/com/gmeremit/online/gmeremittance_native/AddRecipientV3ValidationExecutorTester.java

@ -1,9 +1,8 @@
package com.gmeremit.online.gmeremittance_native; package com.gmeremit.online.gmeremittance_native;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.AddRecipientV3ValidationExecutor;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3PresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientDetailValidaitorV3;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3ContractInterface;
import org.junit.Test; import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
@ -15,16 +14,16 @@ public class AddRecipientV3ValidationExecutorTester {
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void constructor_Should_Throw_IAE_For_Null_Parameter() public void constructor_Should_Throw_IAE_For_Null_Parameter()
{ {
new AddRecipientV3ValidationExecutor(null,null);
new RecipientDetailValidaitorV3(null,null);
} }
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void apply_Dynamic_Validation_Rule_To_View_Should_Throw_IAE_For_Null_Validation_Rule() public void apply_Dynamic_Validation_Rule_To_View_Should_Throw_IAE_For_Null_Validation_Rule()
{ {
RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface view=Mockito.mock(RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface.class);
RecipientAddV3ContractInterface view=Mockito.mock(RecipientAddV3ContractInterface.class);
ReceiverInfoV3Model receiverInfoV3Model= Mockito.mock(ReceiverInfoV3Model.class); ReceiverInfoV3Model receiverInfoV3Model= Mockito.mock(ReceiverInfoV3Model.class);
AddRecipientV3ValidationExecutor validationExecutor= new AddRecipientV3ValidationExecutor(view,receiverInfoV3Model);
RecipientDetailValidaitorV3 validationExecutor= new RecipientDetailValidaitorV3(view,receiverInfoV3Model);
validationExecutor.applyDynamicValidationRuleToView(null); validationExecutor.applyDynamicValidationRuleToView(null);

Loading…
Cancel
Save