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