Preyea Regmi
5 years ago
16 changed files with 368 additions and 107 deletions
-
3app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3Gateway.java
-
13app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3GatewayInterface.java
-
54app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/CountryServiceModel.java
-
41app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ServiceTypeModel.java
-
16app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3ContractInterface.java
-
23app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3InteractorInterface.java
-
24app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3PresenterInterface.java
-
17app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientDetailValidaitorV3.java
-
11app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientPresenterInterface.java
-
59app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3Presenter.java
-
11app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/add/RecipientAddV3PresenterInterface.java
-
145app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3Presenter.java
-
7app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/edit/RecipientEditV3PresenterInterface.java
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java
-
38app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddV3/RecipientAddV3Activity.java
-
11app/src/test/java/com/gmeremit/online/gmeremittance_native/AddRecipientV3ValidationExecutorTester.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); |
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
@ -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); |
||||
|
} |
@ -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); |
|
||||
|
|
||||
|
|
||||
} |
|
||||
} |
|
@ -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); |
|
||||
} |
|
||||
} |
|
@ -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); |
||||
|
} |
@ -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 { |
||||
|
|
||||
|
|
||||
|
} |
@ -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<> |
||||
|
|
||||
|
|
||||
|
} |
@ -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 { |
||||
|
|
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue