From 1c653b7ab3d1545d336894ee7af69047852ccf4f Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Tue, 30 Jun 2020 12:33:17 +0545 Subject: [PATCH] Balance Transfer fixes --- app/src/main/AndroidManifest.xml | 32 ++--- .../gateway/BalanceRequestGateway.java | 13 ++ .../model/BalanceRequestDTO.java | 31 +++++ .../BalanceRequestGatewayInterface.java | 5 + .../presenter/BalanceRequestPresenter.java | 65 +++++++++- .../gateway/BalanceSendGateway.java | 25 ++++ .../model/BalanceSendConfirmDTO.java | 60 ++++++++++ .../BalanceSendGatewayInterface.java | 7 ++ .../presenter/BalanceSendPresenter.java | 112 +++++++++++++++++- .../BalanceSendPresenterInterface.java | 1 + .../view/BalanceSendVerificationFragment.java | 14 +++ .../view/BalanceSendVerificationLiveData.java | 16 ++- .../remit/android/utils/https/API_URL.java | 3 + .../android/utils/https/ApiEndpoints.java | 13 ++ ...fragment_balance_request_amount_prompt.xml | 1 + .../fragment_balance_request_qr_view.xml | 6 +- .../fragment_balance_send_verification.xml | 54 +-------- 17 files changed, 379 insertions(+), 79 deletions(-) create mode 100644 app/src/main/java/com/swifttech/remit/android/features/balancerequest/model/BalanceRequestDTO.java create mode 100644 app/src/main/java/com/swifttech/remit/android/features/balancesend/model/BalanceSendConfirmDTO.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index aa8391db..afe8cef0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -46,16 +46,16 @@ android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden"> - - + + - - - - + + + + - - + + - - + + - - - - + + + + - - + + diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/gateway/BalanceRequestGateway.java b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/gateway/BalanceRequestGateway.java index 6dcc9e04..2d98cdf8 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/gateway/BalanceRequestGateway.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/gateway/BalanceRequestGateway.java @@ -1,7 +1,20 @@ package com.swifttech.remit.android.features.balancerequest.gateway; +import com.google.gson.JsonObject; import com.swifttech.remit.android.base.PrivilegedGateway; import com.swifttech.remit.android.features.balancerequest.presenter.BalanceRequestGatewayInterface; +import com.swifttech.remit.android.utils.https.HttpClientV2; + +import io.reactivex.Observable; +import okhttp3.ResponseBody; public class BalanceRequestGateway extends PrivilegedGateway implements BalanceRequestGatewayInterface { + @Override + public Observable initBalanceTransferRequest(String auth, String userId, String amount) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("amount",amount); + jsonObject.addProperty("userId",userId); + + return HttpClientV2.getInstance().initBalanceRequest(auth,jsonObject); + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/model/BalanceRequestDTO.java b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/model/BalanceRequestDTO.java new file mode 100644 index 00000000..74ad369d --- /dev/null +++ b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/model/BalanceRequestDTO.java @@ -0,0 +1,31 @@ +package com.swifttech.remit.android.features.balancerequest.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class BalanceRequestDTO { + + @Expose + @SerializedName("checksum") + private String checkSum; + + @Expose + @SerializedName("reqData") + private String reqData; + + public String getCheckSum() { + return checkSum; + } + + public void setCheckSum(String checkSum) { + this.checkSum = checkSum; + } + + public String getReqData() { + return reqData; + } + + public void setReqData(String reqData) { + this.reqData = reqData; + } +} diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestGatewayInterface.java b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestGatewayInterface.java index 3d11e902..f080a935 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestGatewayInterface.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestGatewayInterface.java @@ -2,5 +2,10 @@ package com.swifttech.remit.android.features.balancerequest.presenter; import com.swifttech.remit.android.base.PrivilegedGatewayInterface; +import io.reactivex.Observable; +import okhttp3.ResponseBody; + public interface BalanceRequestGatewayInterface extends PrivilegedGatewayInterface { + + Observable initBalanceTransferRequest(String auth,String userId,String amount); } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestPresenter.java b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestPresenter.java index 6cb86135..8e3134bc 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestPresenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancerequest/presenter/BalanceRequestPresenter.java @@ -5,13 +5,23 @@ import android.graphics.Bitmap; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.reflect.TypeToken; import com.google.zxing.WriterException; import com.swifttech.remit.android.base.BaseViewModel; +import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog; +import com.swifttech.remit.android.features.balancerequest.model.BalanceRequestDTO; +import com.swifttech.remit.android.utils.Constants; import com.swifttech.remit.android.utils.Utils; +import com.swifttech.remit.android.utils.https.GenericApiObserverResponseV2; +import com.swifttech.remit.android.utils.https.GenericResponseDataModel; + +import java.lang.reflect.Type; import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; +import io.reactivex.schedulers.Schedulers; public class BalanceRequestPresenter extends BaseViewModel implements BalanceRequestPresenterInterface { @@ -80,16 +90,65 @@ public class BalanceRequestPresenter extends BaseViewModel implements BalanceReq @Override public void proceedToGenerateBalanceRequestQR() { - generateQR(); + useCaseSubs.add( + this.gateway.initBalanceTransferRequest(gateway.getAuth(), gateway.getUserID(), this.requestedAmount.toString()) + .doOnSubscribe(subs -> view.showProgressBar(true, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeWith(new RequestBalanceObserver()) + ); } - private void generateQR() { + private void generateQR(String data) { try { - generatedQrLiveData.setValue(Utils.createQr("Hello", 250, 250)); + generatedQrLiveData.setValue(Utils.createQr(data, 500, 500)); view.showQRView(); } catch (WriterException e) { + view.showToastMessage("Unable to generate QR"); + } + + } + + public class RequestBalanceObserver extends GenericApiObserverResponseV2 { + @Override + protected Type getDataType() { + return TypeToken.getParameterized(BalanceRequestDTO.class).getType(); + } + + @Override + protected void onSuccess(GenericResponseDataModel t) { + if (Constants.SUCCESS_CODE_V2.equalsIgnoreCase(t.getErrorCode())) { + generateQR(t.getData().getReqData()); + } else { + showDummyResponse(); +// view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null); + } + } + + @Override + public void onFailed(String message) { + showDummyResponse(); +// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + showDummyResponse(); +// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); } + @Override + protected void unauthorizedAccess(String message) { + gateway.clearAllUserData(); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); + + } + + private void showDummyResponse() + { + generateQR("Hello"); + } } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/gateway/BalanceSendGateway.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/gateway/BalanceSendGateway.java index 7648840e..289d64a0 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/gateway/BalanceSendGateway.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/gateway/BalanceSendGateway.java @@ -1,7 +1,32 @@ package com.swifttech.remit.android.features.balancesend.gateway; +import com.google.gson.JsonObject; import com.swifttech.remit.android.base.PrivilegedGateway; import com.swifttech.remit.android.features.balancesend.presenter.BalanceSendGatewayInterface; +import com.swifttech.remit.android.utils.https.HttpClientV2; + +import io.reactivex.Observable; +import okhttp3.ResponseBody; public class BalanceSendGateway extends PrivilegedGateway implements BalanceSendGatewayInterface { + @Override + public Observable confirmBalanceSend(String auth, String userId, String reqData) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("userId",userId); + jsonObject.addProperty("reqData",reqData); + + return HttpClientV2.getInstance().balanceSendConfirm(auth,jsonObject); + } + + @Override + public Observable performBalanceSend(String auth, String userId, String reqUserId, String confirmedAmount, String referenceId, String txnPin) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("userId",userId); + jsonObject.addProperty("reqUserID",userId); + jsonObject.addProperty("confirmedAmount",confirmedAmount); + jsonObject.addProperty("referenceID",referenceId); + jsonObject.addProperty("txnPin",txnPin); + + return HttpClientV2.getInstance().balanceSendProceed(auth,jsonObject); + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/model/BalanceSendConfirmDTO.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/model/BalanceSendConfirmDTO.java new file mode 100644 index 00000000..a28e8ddd --- /dev/null +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/model/BalanceSendConfirmDTO.java @@ -0,0 +1,60 @@ +package com.swifttech.remit.android.features.balancesend.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class BalanceSendConfirmDTO { + @Expose + @SerializedName("reqAmount") + private String reqAmount; + + @Expose + @SerializedName("reqUserName") + private String reqUserName; + @Expose + @SerializedName("reqUserId") + private String reqUserId; + + @Expose + @SerializedName("referenceID") + private String referenceID; + + public BalanceSendConfirmDTO(String reqAmount, String reqUserName, String reqUserId, String referenceID) { + this.reqAmount = reqAmount; + this.reqUserName = reqUserName; + this.reqUserId = reqUserId; + this.referenceID = referenceID; + } + + public String getReqAmount() { + return reqAmount; + } + + public void setReqAmount(String reqAmount) { + this.reqAmount = reqAmount; + } + + public String getReqUserName() { + return reqUserName; + } + + public void setReqUserName(String reqUserName) { + this.reqUserName = reqUserName; + } + + public String getReqUserId() { + return reqUserId; + } + + public void setReqUserId(String reqUserId) { + this.reqUserId = reqUserId; + } + + public String getReferenceID() { + return referenceID; + } + + public void setReferenceID(String referenceID) { + this.referenceID = referenceID; + } +} diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendGatewayInterface.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendGatewayInterface.java index b9d1088e..a1c12159 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendGatewayInterface.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendGatewayInterface.java @@ -2,5 +2,12 @@ package com.swifttech.remit.android.features.balancesend.presenter; import com.swifttech.remit.android.base.PrivilegedGatewayInterface; +import io.reactivex.Observable; +import okhttp3.ResponseBody; + public interface BalanceSendGatewayInterface extends PrivilegedGatewayInterface { + + Observable confirmBalanceSend(String auth,String userId,String reqData); + + Observable performBalanceSend(String auth,String userId,String reqUserId,String confirmedAmount,String referenceId,String txnPin); } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenter.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenter.java index 02203ab2..42ac28de 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenter.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenter.java @@ -5,14 +5,22 @@ import androidx.lifecycle.MutableLiveData; import com.google.android.gms.vision.barcode.Barcode; import com.swifttech.remit.android.base.BaseViewModel; +import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog; +import com.swifttech.remit.android.features.balancesend.model.BalanceSendConfirmDTO; import com.swifttech.remit.android.features.balancesend.view.BalanceSendVerificationLiveData; +import com.swifttech.remit.android.utils.Constants; +import com.swifttech.remit.android.utils.https.GenericApiObserverResponseV2; +import com.swifttech.remit.android.utils.https.GenericResponseDataModel; +import com.swifttech.remit.android.utils.https.MessageResponseDataModel; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.ObservableSource; +import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; +import io.reactivex.schedulers.Schedulers; public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPresenterInterface { @@ -23,8 +31,11 @@ public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPr private final CompositeDisposable useCaseSubs; private final BalanceSendVerificationLiveData balanceSendVerificationLiveData; + private String reqAmount = "1000"; private String confirmedAmount; + private Barcode scannedQR; + private BalanceSendConfirmDTO balanceConfirmData; public BalanceSendPresenter(BalanceSendContractInterface view, BalanceSendGatewayInterface balanceSendGateway) { this.view = view; @@ -48,11 +59,11 @@ public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPr @Override public void subscribeToQRScanEvent(Observable qrText) { - viewSubs.add(qrText.throttleLatest(2,TimeUnit.SECONDS).map(this::validateScannedQr).subscribeWith(new DisposableObserver() { + viewSubs.add(qrText.throttleLatest(2, TimeUnit.SECONDS).map(this::validateScannedQr).subscribeWith(new DisposableObserver() { @Override public void onNext(Boolean aBoolean) { - //TODO - view.showVerificationScreen(); + if (aBoolean) + confirmBalanceSend(); } @Override @@ -69,8 +80,8 @@ public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPr } - private boolean validateScannedQr(Barcode barcode) { + this.scannedQR = barcode; return true; } @@ -98,7 +109,25 @@ public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPr @Override public void proceedToTransferBalance() { + useCaseSubs.add( + this.gateway.performBalanceSend(gateway.getAuth(), gateway.getUserID(), "", confirmedAmount, "123", "1234") + .doOnSubscribe(subs -> view.showProgressBar(true, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeWith(new BalanceSendProceedObserver()) + ); + } + private void confirmBalanceSend() { + useCaseSubs.add( + this.gateway.confirmBalanceSend(gateway.getAuth(), gateway.getUserID(), scannedQR.displayValue) + .doOnSubscribe(subs -> view.showProgressBar(true, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeWith(new BalanceSendConfirmObserver()) + ); } private boolean validateConfirmedAmount(CharSequence confirmedAmount) { @@ -110,4 +139,79 @@ public class BalanceSendPresenter extends BaseViewModel implements BalanceSendPr return false; } } + + + public class BalanceSendConfirmObserver extends GenericApiObserverResponseV2 { + + @Override + protected void onSuccess(GenericResponseDataModel t) { + if (Constants.SUCCESS_CODE_V2.equalsIgnoreCase(t.getErrorCode())) { + balanceConfirmData=t.getData(); + balanceSendVerificationLiveData.setBalanceSendConfirmLiveData(t.getData()); + view.showVerificationScreen(); + + } else { + showDummyResponse(); +// view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null); + } + } + + @Override + public void onFailed(String message) { + showDummyResponse(); +// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + showDummyResponse(); +// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + + } + + @Override + protected void unauthorizedAccess(String message) { + gateway.clearAllUserData(); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); + + } + + + private void showDummyResponse() { + BalanceSendConfirmDTO dummData = new BalanceSendConfirmDTO("1000", "Dummy User", "1234", "1234"); + balanceConfirmData=dummData; + balanceSendVerificationLiveData.setBalanceSendConfirmLiveData(dummData); + //TODO + view.showVerificationScreen(); + } + + } + + public class BalanceSendProceedObserver extends GenericApiObserverResponseV2 { + + @Override + protected void onSuccess(GenericResponseDataModel t) { + if (Constants.SUCCESS_CODE_V2.equalsIgnoreCase(t.getErrorCode())) { + view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); + } else { + view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null); + } + } + + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void unauthorizedAccess(String message) { + gateway.clearAllUserData(); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); + } + } } diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenterInterface.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenterInterface.java index 92df67b9..42e919f1 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenterInterface.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/presenter/BalanceSendPresenterInterface.java @@ -5,6 +5,7 @@ import androidx.lifecycle.LiveData; import com.google.android.gms.vision.barcode.Barcode; import com.swifttech.remit.android.base.BaseContractInterface; import com.swifttech.remit.android.base.BasePresenterInterface; +import com.swifttech.remit.android.features.balancesend.model.BalanceSendConfirmDTO; import com.swifttech.remit.android.features.balancesend.view.BalanceSendVerificationLiveData; import com.zoyi.channel.plugin.android.contract.BasePresenter; diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationFragment.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationFragment.java index 6c54374c..5f44858d 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationFragment.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationFragment.java @@ -6,6 +6,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; +import android.widget.TextView; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; @@ -13,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider; import com.jakewharton.rxbinding3.widget.RxTextView; import com.swifttech.remit.android.R; import com.swifttech.remit.android.base.BaseFragment; +import com.swifttech.remit.android.features.balancesend.model.BalanceSendConfirmDTO; import com.swifttech.remit.android.features.balancesend.presenter.BalanceSendPresenter; import com.swifttech.remit.android.features.balancesend.presenter.BalanceSendPresenterInterface; @@ -25,6 +27,12 @@ public class BalanceSendVerificationFragment extends BaseFragment { private BalanceSendPresenterInterface viewModel; + @BindView(R.id.txt_firstName) + TextView txt_firstName; + + @BindView(R.id.txt_req_amount) + TextView txt_req_amount; + @BindView(R.id.amount_edTxt) EditText amount_edTxt; @@ -53,9 +61,15 @@ public class BalanceSendVerificationFragment extends BaseFragment { private void performDefaultAction(Bundle savedInstanceState) { BalanceSendVerificationLiveData balanceSendVerificationLiveData= viewModel.subscribeConfirmedAmountValid(RxTextView.textChanges(amount_edTxt)); + balanceSendVerificationLiveData.getAllFormValidLiveData().observe(getViewLifecycleOwner(),btn_submit::setEnabled); + balanceSendVerificationLiveData.getBalanceSendConfirmLiveData().observe(getViewLifecycleOwner(),this::onBalanceVerificationDataReceived); + } + private void onBalanceVerificationDataReceived(BalanceSendConfirmDTO balanceSendConfirmDTO) { + txt_firstName.setText(balanceSendConfirmDTO.getReqUserName()); + txt_req_amount.setText(balanceSendConfirmDTO.getReqAmount()); } @Override diff --git a/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationLiveData.java b/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationLiveData.java index c58180fb..0b25333c 100644 --- a/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationLiveData.java +++ b/app/src/main/java/com/swifttech/remit/android/features/balancesend/view/BalanceSendVerificationLiveData.java @@ -1,24 +1,28 @@ package com.swifttech.remit.android.features.balancesend.view; +import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.swifttech.remit.android.common.model.FormInputStateDTO; +import com.swifttech.remit.android.features.balancesend.model.BalanceSendConfirmDTO; public class BalanceSendVerificationLiveData { private MutableLiveData> amountInputLiveData; + private MutableLiveData balanceSendConfirmLiveData; private MutableLiveData allFormValidLiveData; public BalanceSendVerificationLiveData() { this.amountInputLiveData = new MutableLiveData<>(); this.allFormValidLiveData = new MutableLiveData<>(); + this.balanceSendConfirmLiveData = new MutableLiveData<>(); } - public MutableLiveData> getAmountInputLiveData() { + public LiveData> getAmountInputLiveData() { return amountInputLiveData; } - public MutableLiveData getAllFormValidLiveData() { + public LiveData getAllFormValidLiveData() { return allFormValidLiveData; } @@ -30,4 +34,12 @@ public class BalanceSendVerificationLiveData { { this.allFormValidLiveData.setValue(result); } + + public LiveData getBalanceSendConfirmLiveData() { + return balanceSendConfirmLiveData; + } + + public void setBalanceSendConfirmLiveData(BalanceSendConfirmDTO balanceSendConfirmLiveData) { + this.balanceSendConfirmLiveData.setValue(balanceSendConfirmLiveData); + } } diff --git a/app/src/main/java/com/swifttech/remit/android/utils/https/API_URL.java b/app/src/main/java/com/swifttech/remit/android/utils/https/API_URL.java index 7afb6cc0..e48cd580 100644 --- a/app/src/main/java/com/swifttech/remit/android/utils/https/API_URL.java +++ b/app/src/main/java/com/swifttech/remit/android/utils/https/API_URL.java @@ -92,5 +92,8 @@ public class API_URL { public static final String PROFILE_OTP_VERIFY =BuildConfig.API_VERSION +"/mobile/ValidationOTP"; public static final String PROFILE_PERSONAL_INFO =BuildConfig.API_VERSION +"/mobile/ProfilepersonalInformation"; public static final String UPDATE_PROFILE =BuildConfig.API_VERSION +"/mobile/ChangeInformation"; + public static final String BALANCE_REQ_INIT = BuildConfig.API_VERSION +"initBalanaceTransfer "; + public static final String BALANCE_SEND_CONFIRM = BuildConfig.API_VERSION +"confirmBalanceTransferRequest"; + public static final String BALANCE_SEND_PERFORM = BuildConfig.API_VERSION +"performBalanceTransferRequest"; } diff --git a/app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java b/app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java index 0eb34d8d..23f0b67b 100644 --- a/app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java @@ -231,6 +231,19 @@ public interface ApiEndpoints { Observable profileOTPResend(@Header("Authorization") String token, @Body()JsonObject requestBody); + @POST(API_URL.BALANCE_REQ_INIT) + @Headers("Content-Type: application/json") + Observable initBalanceRequest(@Header("Authorization") String token, @Body()JsonObject requestBody); + + @POST(API_URL.BALANCE_SEND_CONFIRM) + @Headers("Content-Type: application/json") + Observable balanceSendConfirm(@Header("Authorization") String token, @Body()JsonObject requestBody); + + @POST(API_URL.BALANCE_REQ_INIT) + @Headers("Content-Type: application/json") + Observable balanceSendProceed(@Header("Authorization") String token, @Body()JsonObject requestBody); + + } diff --git a/app/src/main/res/layout/fragment_balance_request_amount_prompt.xml b/app/src/main/res/layout/fragment_balance_request_amount_prompt.xml index 36166caa..54301177 100644 --- a/app/src/main/res/layout/fragment_balance_request_amount_prompt.xml +++ b/app/src/main/res/layout/fragment_balance_request_amount_prompt.xml @@ -24,6 +24,7 @@ diff --git a/app/src/main/res/layout/fragment_balance_request_qr_view.xml b/app/src/main/res/layout/fragment_balance_request_qr_view.xml index 5d486b43..e087608c 100644 --- a/app/src/main/res/layout/fragment_balance_request_qr_view.xml +++ b/app/src/main/res/layout/fragment_balance_request_qr_view.xml @@ -10,12 +10,12 @@ + app:layout_constraintVertical_bias="0.19" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_balance_send_verification.xml b/app/src/main/res/layout/fragment_balance_send_verification.xml index 1ab0e950..58d2ae0e 100644 --- a/app/src/main/res/layout/fragment_balance_send_verification.xml +++ b/app/src/main/res/layout/fragment_balance_send_verification.xml @@ -53,12 +53,12 @@ android:layout_height="wrap_content" android:gravity="start" android:paddingTop="@dimen/_8sdp" - android:text="@string/address_text" + android:text="Requested Amount" android:textColor="@color/dark_gray" android:textSize="@dimen/_11ssp" /> - - - - - - - - - - - - -