From 0078dcd164d15896d865fdf869d623eb7d68f046 Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Fri, 7 Feb 2020 17:35:48 +0545 Subject: [PATCH] Coupon list fragment fixes --- .../couponV2/adapter/CouponListAdapter.java | 11 +-- .../couponV2/model/CouponDTO.java | 84 +++++++++++++++++++ .../view/CouponListBottomSheetDialog.java | 7 +- .../couponV2/view/CouponListingFragment.java | 32 ++----- .../RewardListingV2Presenter.java | 40 +++++++-- .../RewardListingV2PresenterInterface.java | 5 ++ .../presenter/SendMoneyV2Presenter.java | 76 ++++++++++++++++- .../SendMoneyV2PresenterInterface.java | 7 ++ .../sendmoneyV2/view/SendMoneyV2Activity.java | 3 +- .../AmountDetailSendMoneyFragment.java | 38 ++------- .../res/layout/coupon_list_bottom_sheet.xml | 3 +- .../main/res/layout/fragment_coupon_list.xml | 7 +- 12 files changed, 230 insertions(+), 83 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/adapter/CouponListAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/adapter/CouponListAdapter.java index 27d442c5..f0437da2 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/adapter/CouponListAdapter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/adapter/CouponListAdapter.java @@ -7,6 +7,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.couponV2.view.CouponListRvViewholder; import com.gmeremit.online.gmeremittance_native.couponV2.view.NoCouponRvViewHolder; import com.gmeremit.online.gmeremittance_native.customwidgets.SelectedRedBorderWithTickDecoration; @@ -18,7 +19,7 @@ public class CouponListAdapter extends RecyclerView.Adapter data; + private ArrayList data; private int selectedItemIndex; private static final int SELECT_NO_COUPON_VIEW = 12; private static final int COUPON_VIEW = 13; @@ -42,9 +43,9 @@ public class CouponListAdapter extends RecyclerView.Adapter { int currentSelectedITem = holder.getAdapterPosition(); @@ -76,7 +77,7 @@ public class CouponListAdapter extends RecyclerView.Adapter data) { + public void updateDataList(ArrayList data) { if (data != null && data.size() > 0) { this.data.clear(); this.data.addAll(data); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java new file mode 100644 index 00000000..029292b4 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java @@ -0,0 +1,84 @@ +package com.gmeremit.online.gmeremittance_native.couponV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class CouponDTO { + @SerializedName("discountType") + @Expose + private String discountType; + @SerializedName("schemeId") + @Expose + private String schemeId; + @SerializedName("expireDate") + @Expose + private String expireDate; + @SerializedName("buyDate") + @Expose + private String buyDate; + @SerializedName("couponName") + @Expose + private String couponName; + @SerializedName("couponType") + @Expose + private String couponType; + @SerializedName("discountValue") + @Expose + private String discountValue; + + public String getDiscountType() { + return discountType; + } + + public void setDiscountType(String discountType) { + this.discountType = discountType; + } + + public String getSchemeId() { + return schemeId; + } + + public void setSchemeId(String schemeId) { + this.schemeId = schemeId; + } + + public String getExpireDate() { + return expireDate; + } + + public void setExpireDate(String expireDate) { + this.expireDate = expireDate; + } + + public String getBuyDate() { + return buyDate; + } + + public void setBuyDate(String buyDate) { + this.buyDate = buyDate; + } + + public String getCouponName() { + return couponName; + } + + public void setCouponName(String couponName) { + this.couponName = couponName; + } + + public String getCouponType() { + return couponType; + } + + public void setCouponType(String couponType) { + this.couponType = couponType; + } + + public String getDiscountValue() { + return discountValue; + } + + public void setDiscountValue(String discountValue) { + this.discountValue = discountValue; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListBottomSheetDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListBottomSheetDialog.java index 151881ee..ffb04e04 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListBottomSheetDialog.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListBottomSheetDialog.java @@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.couponV2.adapter.CouponListAdapter; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.customwidgets.SelectedRedBorderWithTickDecoration; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetDialog; @@ -32,7 +33,7 @@ public class CouponListBottomSheetDialog extends BottomSheetDialogFragment imple private CouponListAdapter.CouponOnClickListener listener; - private List couponList; + private ArrayList couponList; @BindView(R.id.couponListRv) RecyclerView couponListRv; @@ -45,7 +46,7 @@ public class CouponListBottomSheetDialog extends BottomSheetDialogFragment imple private CouponListAdapter couponListAdapter; - public static CouponListBottomSheetDialog showCouponList(List couponList, CouponListAdapter.CouponOnClickListener listener) { + public static CouponListBottomSheetDialog showCouponList(ArrayList couponList, CouponListAdapter.CouponOnClickListener listener) { CouponListBottomSheetDialog confirmRechargePaymentBottomSheetDialog = new CouponListBottomSheetDialog(); confirmRechargePaymentBottomSheetDialog.setCouponList(couponList); confirmRechargePaymentBottomSheetDialog.setListener(listener); @@ -66,7 +67,7 @@ public class CouponListBottomSheetDialog extends BottomSheetDialogFragment imple } - private void setCouponList(List couponList) { + private void setCouponList(ArrayList couponList) { this.couponList = couponList; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListingFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListingFragment.java index 1646993e..f46ff57a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListingFragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/view/CouponListingFragment.java @@ -13,7 +13,9 @@ import androidx.recyclerview.widget.RecyclerView; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BaseFragment; import com.gmeremit.online.gmeremittance_native.couponV2.adapter.CouponListAdapter; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.customwidgets.SelectedRedBorderWithTickDecoration; +import com.gmeremit.online.gmeremittance_native.rewardV2.view.RewardParentActionListener; import java.util.ArrayList; @@ -56,6 +58,7 @@ public class CouponListingFragment extends BaseFragment implements CouponListAda private void initialize() { setupRv(); + ((RewardParentActionListener) getActivity()).getPresenter().getCouponListLiveDataSubscription().observe(getViewLifecycleOwner(),this::updateCouponList); } private void setupRv() { @@ -63,36 +66,11 @@ public class CouponListingFragment extends BaseFragment implements CouponListAda couponListRv.addItemDecoration(new SelectedRedBorderWithTickDecoration(couponListRv.getContext())); couponListRv.setLayoutManager(new LinearLayoutManager(couponListRv.getContext())); couponListRv.setAdapter(couponListAdapter); - List objectList = new ArrayList<>(); - objectList.add(null); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - couponListAdapter.updateDataList(objectList); + } - public void updateCouponList(List couponList) + public void updateCouponList(ArrayList couponList) { couponListAdapter.setCurrentSelectableItem(0); couponListAdapter.updateDataList(couponList); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2Presenter.java index 7df62196..03035b9f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2Presenter.java @@ -2,11 +2,15 @@ package com.gmeremit.online.gmeremittance_native.rewardV2.presenter.rewardlistin import android.util.Log; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + import com.gmeremit.online.gmeremittance_native.GmeApplication; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; import com.gmeremit.online.gmeremittance_native.couponV2.gateway.CouponV2Gateway; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.couponV2.presenter.CouponV2InteractorInterface; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2; @@ -47,6 +51,7 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis RewardListingV2InteractorInterface.RewardListingV2GatewayInterface gateway; CompositeDisposable compositeDisposable; private final BehaviorSubject rewardRelatedDataSubject; + private final MutableLiveData> couponListLiveData; public RewardListingV2Presenter(RewardListingV2ContractInterface view, RewardListingV2GatewayInterface gateway, CouponV2InteractorInterface.CouponV2GatewayInterface couponV2Gateway) { @@ -54,14 +59,15 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis this.gateway = gateway; compositeDisposable = new CompositeDisposable(); this.rewardRelatedDataSubject = BehaviorSubject.create(); - this.couponGateway=couponV2Gateway; + this.couponGateway = couponV2Gateway; + this.couponListLiveData = new MutableLiveData<>(); } @Override public void fetchRelatedData() { compositeDisposable.add( - Observable.zip(getAllProductListFromNetwork(), getAllOrderedProductListFromNetwork(), RewardListingScreenModel::new) + Observable.zip(getAllProductListFromNetwork(), getAllOrderedProductListFromNetwork(), getAllCouponListFromServer(), RewardListingScreenModel::new) .doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) .observeOn(AndroidSchedulers.mainThread()) .doFinally(() -> view.showProgressBar(false, "")) @@ -102,6 +108,11 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis return rewardRelatedDataSubject.flatMap(rewardRelatedData -> Observable.just(rewardRelatedData.getRewardOrderedProductItemModels())); } + @Override + public LiveData> getCouponListLiveDataSubscription() { + return couponListLiveData; + } + @Override public String getCurrentRewardPoint() { return gateway.getCustomerRewardPoint(); @@ -132,13 +143,13 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis }); } - private Observable> getAllCouponListFromServer() { - Type productType = new TypeToken>>() { + private Observable> getAllCouponListFromServer() { + Type productType = new TypeToken>>() { }.getType(); - return this.couponGateway.getCouponList(this.gateway.getAuth(),this.gateway.getUserID()) + return this.couponGateway.getCouponList(this.gateway.getAuth(), this.gateway.getUserIDNumber()) .subscribeOn(Schedulers.io()) .flatMap(response -> { - GenericResponseDataModel> data = HttpClientV2.getDeserializer().fromJson(response.string(), productType); + GenericResponseDataModel> data = HttpClientV2.getDeserializer().fromJson(response.string(), productType); if (data.getData() == null) data.setData(new ArrayList<>()); return Observable.just(data.getData()); @@ -161,20 +172,30 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis public static class RewardListingScreenModel { ArrayList rewardProductItemModels; ArrayList rewardOrderedProductItemModels; + ArrayList couponDTOArrayList; - public RewardListingScreenModel(ArrayList rewardProductItemModels, ArrayList rewardOrderedProductItemModels) { + public RewardListingScreenModel(ArrayList rewardProductItemModels, ArrayList rewardOrderedProductItemModels, ArrayList couponList) { this.rewardProductItemModels = rewardProductItemModels; this.rewardOrderedProductItemModels = rewardOrderedProductItemModels; + this.couponDTOArrayList = couponList; } public ArrayList getRewardProductItemModels() { return rewardProductItemModels; } + public ArrayList getRewardOrderedProductItemModels() { return rewardOrderedProductItemModels; } + public ArrayList getCouponDTOArrayList() { + return couponDTOArrayList; + } + + public void setCouponDTOArrayList(ArrayList couponDTOArrayList) { + this.couponDTOArrayList = couponDTOArrayList; + } } public class RewardRelatedDataObserver extends DisposableObserver { @@ -183,6 +204,11 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis public void onNext(RewardListingScreenModel rewardListingScreenModel) { view.stopSwipeToRefreshIcon(); rewardRelatedDataSubject.onNext(rewardListingScreenModel); + ArrayList couponDTOArrayList = new ArrayList<>(); + couponDTOArrayList.add(null); + if (rewardListingScreenModel.getCouponDTOArrayList() != null && rewardListingScreenModel.getCouponDTOArrayList().size() > 0) + couponDTOArrayList.addAll(rewardListingScreenModel.getCouponDTOArrayList()); + couponListLiveData.setValue(couponDTOArrayList); view.lazyInstatiateView(); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2PresenterInterface.java index 4a74965f..7661cedc 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/rewardV2/presenter/rewardlisting/RewardListingV2PresenterInterface.java @@ -1,7 +1,10 @@ package com.gmeremit.online.gmeremittance_native.rewardV2.presenter.rewardlisting; +import androidx.lifecycle.LiveData; + import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.rewardV2.model.rewardlisting.RewardOrderedProductItemModel; import com.gmeremit.online.gmeremittance_native.rewardV2.model.rewardlisting.RewardProductItemModel; @@ -20,6 +23,8 @@ public interface RewardListingV2PresenterInterface extends BasePresenterInterfac Observable> subscribeToRewardFetchingEvent(); Observable> subscribeToOrderListFetchingEvent(); + LiveData> getCouponListLiveDataSubscription(); + String getCurrentRewardPoint(); interface RewardListingV2ContractInterface extends BaseContractInterface diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java index e52b735b..709496e5 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java @@ -10,6 +10,9 @@ import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.AutoDebitAccount; import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.WebRequestModel; import com.gmeremit.online.gmeremittance_native.base.BasePresenter; +import com.gmeremit.online.gmeremittance_native.couponV2.gateway.CouponV2Gateway; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; +import com.gmeremit.online.gmeremittance_native.couponV2.presenter.CouponV2InteractorInterface; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.exrate.model.datav2.ExchangeCalculationApiResponse; import com.gmeremit.online.gmeremittance_native.exrate.model.datav2.ExchangeCalculationModel; @@ -32,8 +35,12 @@ import com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.Transa import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.Utils; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; +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.security.SecurityUtils; +import com.google.gson.reflect.TypeToken; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -49,6 +56,7 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr private final AutoDebitAccount selectedPaymentType; private final SendMoneyV2ContractInterface view; private final SendMoneyV2GatewayInterface gateway; + private final CouponV2InteractorInterface.CouponV2GatewayInterface couponGateway; //Exrate data @@ -67,17 +75,19 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr private long countDownRemainingValue; + private ArrayList couponList; - public SendMoneyV2Presenter(SendMoneyV2ContractInterface view, SendMoneyV2GatewayInterface gateway, SendMoneyRequiredDataV3 sendMoneyRequiredData) { + public SendMoneyV2Presenter(SendMoneyV2ContractInterface view, SendMoneyV2GatewayInterface gateway, SendMoneyRequiredDataV3 sendMoneyRequiredData, CouponV2InteractorInterface.CouponV2GatewayInterface couponV2Gateway) { this.view = view; this.selectedRecipient = sendMoneyRequiredData.getRecipientInfoModel(); this.selectedPaymentType = sendMoneyRequiredData.getSelectedAutoDebitAccount(); this.gateway = gateway; + this.couponGateway = couponV2Gateway; this.compositeObservable = new CompositeDisposable(); countDownRemainingValue = -1; amountDetailRelatedDataModelLiveData = null; - exchangeCalculationModelMutableLiveData=null; + exchangeCalculationModelMutableLiveData = null; } @@ -231,6 +241,23 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr return Utils.removeSpecialCharacterAndDecimalFromCurrency(selectedSendingAmount); } + @Override + public void getCouponRelatedData() { + compositeObservable.add( + this.couponGateway.getCouponList(this.couponGateway.getAuth(), this.couponGateway.getUserIDNumber()) + .doOnSubscribe(subs -> view.showProgressBar(true, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeWith(new CouponListObserver()) + ); + } + + @Override + public ArrayList getCouponList() { + return this.couponList; + } + private void performSendMoneyTransaction(String password, boolean isBiometricUsed) { @@ -383,8 +410,8 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr @Override public LiveData subscribeToExRateData() { - if(exchangeCalculationModelMutableLiveData==null) - exchangeCalculationModelMutableLiveData=new MutableLiveData<>(); + if (exchangeCalculationModelMutableLiveData == null) + exchangeCalculationModelMutableLiveData = new MutableLiveData<>(); return exchangeCalculationModelMutableLiveData; } @@ -454,4 +481,45 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr } } + + public class CouponListObserver extends GenericApiObserverResponseV2> { + + @Override + protected Type getDataType() { + return TypeToken.getParameterized(ArrayList.class, CouponDTO.class).getType(); + } + + @Override + protected void onSuccess(GenericResponseDataModel> t) { + if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { + ArrayList couponData = new ArrayList<>(); + couponData.add(null); + if (t.getData() != null && t.getData().size() > 0) + couponData.addAll(t.getData()); + + couponList = couponData; + } else { + view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); + + } + } + + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); + + } + + @Override + protected void unauthorizedAccess(String message) { + gateway.clearAllUserData(); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.logout()); + + } + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java index 1a5ba1ba..abc0ace6 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java @@ -7,6 +7,7 @@ import androidx.lifecycle.LiveData; import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.WebRequestModel; import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.exrate.model.datav2.ExchangeCalculationApiResponse; import com.gmeremit.online.gmeremittance_native.exrate.model.datav2.ExchangeCalculationModel; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.AmountDetailRelatedDataModel; @@ -20,6 +21,8 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.verification.V import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener; import com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.TransactionBiometricPromptDialog; +import java.util.ArrayList; + import io.reactivex.Observable; @@ -60,6 +63,10 @@ public interface SendMoneyV2PresenterInterface extends BasePresenterInterface { String getTransactionAmount(); + void getCouponRelatedData(); + + ArrayList getCouponList(); + interface SendMoneyV2ContractInterface extends BaseContractInterface { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java index e13c52d8..01c541d4 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java @@ -14,6 +14,7 @@ import android.widget.TextView; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.base.BaseFragment; +import com.gmeremit.online.gmeremittance_native.couponV2.gateway.CouponV2Gateway; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.gateway.SendMoneyV2Gateway; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.SendMoneyRequiredDataV3; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2Presenter; @@ -166,7 +167,7 @@ public class SendMoneyV2Activity extends BaseActivity implements SendMoneyAction @Override public SendMoneyV2PresenterInterface getPresenter() { if (this.presenter == null) - this.presenter = new SendMoneyV2Presenter(this,new SendMoneyV2Gateway(), sendMoneyRequiredData); + this.presenter = new SendMoneyV2Presenter(this,new SendMoneyV2Gateway(), sendMoneyRequiredData,new CouponV2Gateway()); return this.presenter; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java index a838f303..25e70045 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java @@ -27,6 +27,7 @@ import com.gmeremit.online.gmeremittance_native.GmeApplication; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BaseFragment; import com.gmeremit.online.gmeremittance_native.couponV2.adapter.CouponListAdapter; +import com.gmeremit.online.gmeremittance_native.couponV2.model.CouponDTO; import com.gmeremit.online.gmeremittance_native.couponV2.view.CouponListBottomSheetDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.CurrencyFormatterTextWatcher; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; @@ -232,7 +233,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View. } }); - ((SendMoneyActionListener) getActivity()).getPresenter().subscribeToExRateData().observe(getViewLifecycleOwner(),data->{ + ((SendMoneyActionListener) getActivity()).getPresenter().subscribeToExRateData().observe(getViewLifecycleOwner(), data -> { selectedTransferFeeAmount = data.getScCharge(); selectedExRate = data.getExRateDisplay(); selectedExRateWithoutTrunc = data.getExRate(); @@ -264,6 +265,8 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View. }); + ((SendMoneyActionListener) getActivity()).getPresenter().getCouponRelatedData(); + } @@ -426,7 +429,6 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View. } - private void showCoupon(String discountValue, String discountType, String schemeId, String discountPercent, String couponName, String appliedAmount) { if (couponName == null) @@ -475,33 +477,9 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View. } @OnClick(R.id.couponViewContainer) - public void showCouponList() - { - List objectList = new ArrayList<>(); - objectList.add(null); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); - objectList.add(new Object()); + public void showCouponList() { + ArrayList objectList = ((SendMoneyActionListener) getActivity()).getPresenter().getCouponList(); + CouponListBottomSheetDialog.showCouponList(objectList, new CouponListAdapter.CouponOnClickListener() { @Override public void onCouponClicked(Object object) { @@ -512,7 +490,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View. public void onNoCouponSelected() { } - }).show(getActivity ().getSupportFragmentManager(),"CoupLinBottomSheetFrag"); + }).show(getActivity().getSupportFragmentManager(), "CoupLinBottomSheetFrag"); } diff --git a/app/src/main/res/layout/coupon_list_bottom_sheet.xml b/app/src/main/res/layout/coupon_list_bottom_sheet.xml index 03e3594e..0398de20 100644 --- a/app/src/main/res/layout/coupon_list_bottom_sheet.xml +++ b/app/src/main/res/layout/coupon_list_bottom_sheet.xml @@ -30,9 +30,8 @@ + android:visibility="visible" />