Browse Source

Send money body request initiated

master
preyearegmi 6 years ago
parent
commit
2113038ed8
  1. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java
  2. 175
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java
  3. 2
      app/src/main/res/layout/fragment_amount_detail_send_money_v2.xml
  4. 3
      app/src/main/res/layout/fragment_verification_send_money_v2.xml

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java

@ -107,7 +107,7 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr
@Override @Override
public Observable<AccountValidationApiResponse> validateAccountIfRequired() { public Observable<AccountValidationApiResponse> validateAccountIfRequired() {
//TODO uncomment for live
// if(isAccountValidationRequired&&selectedAccountNo!=null) // if(isAccountValidationRequired&&selectedAccountNo!=null)
// return sendDataForAccountValidation().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); // return sendDataForAccountValidation().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
return Observable.just(new AccountValidationApiResponse(Constants.SUCCESS_CODE_V2,"","")); return Observable.just(new AccountValidationApiResponse(Constants.SUCCESS_CODE_V2,"",""));

175
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java

@ -5,6 +5,8 @@ import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewCompat;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -23,6 +25,7 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.customwidgets.exchangecountrylistingdialog.CountryFlagMapper; import com.gmeremit.online.gmeremittance_native.customwidgets.exchangecountrylistingdialog.CountryFlagMapper;
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationApiResponse; import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationApiResponse;
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationModel; import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationModel;
import com.gmeremit.online.gmeremittance_native.exchange_rate.view.ExchangeMethodV2Activity;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.AmountDetailRelatedDataModel; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.AmountDetailRelatedDataModel;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.RecipientCurrencyModel; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.RecipientCurrencyModel;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.view.SendMoneyActionListener; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.view.SendMoneyActionListener;
@ -40,10 +43,10 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
Button continueBtn; Button continueBtn;
@BindView(R.id.sendAmountEdTxt) @BindView(R.id.sendAmountEdTxt)
EditText sendAmountEdTxt;
EditText sendMoneyEditText;
@BindView(R.id.receiveAmountEdTxt) @BindView(R.id.receiveAmountEdTxt)
EditText receiveAmountEdTxt;
EditText recieveMoneyEditText;
@BindView(R.id.transferFeeTxtView) @BindView(R.id.transferFeeTxtView)
TextView transferFeeTxtView; TextView transferFeeTxtView;
@ -62,6 +65,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
ImageView recepientFlagImageView; ImageView recepientFlagImageView;
private boolean shouldCaulatedByRecipient; private boolean shouldCaulatedByRecipient;
private boolean shouldCalculateExRate=true;
CompositeDisposable compositeDisposable = null; CompositeDisposable compositeDisposable = null;
@ -76,6 +80,8 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
private String selectedRecipientAmount; private String selectedRecipientAmount;
private String selectedSendAmount; private String selectedSendAmount;
private String selectedsendingCurrency; private String selectedsendingCurrency;
private SendAmountTextWatcher sendAmountTextWatcher;
private RecipientAmountTextWatcher recepientAmountTextWatcher;
@Override @Override
@ -92,9 +98,12 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
} }
private void init() { private void init() {
this.sendAmountTextWatcher = new SendAmountTextWatcher();
this.recepientAmountTextWatcher = new RecipientAmountTextWatcher();
compositeDisposable = new CompositeDisposable(); compositeDisposable = new CompositeDisposable();
interpolator = new AccelerateDecelerateInterpolator(); interpolator = new AccelerateDecelerateInterpolator();
setupRecyclerView(); setupRecyclerView();
registerTextWatchers(true);
} }
@ -102,8 +111,8 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
continueBtn.setOnClickListener(this); continueBtn.setOnClickListener(this);
receiveAmountEdTxt.setOnEditorActionListener(this);
sendAmountEdTxt.setOnEditorActionListener(this);
// recieveMoneyEditText.setOnEditorActionListener(this);
// sendMoneyEditText.setOnEditorActionListener(this);
countrySelectionSpinner.setOnClickListener(this); countrySelectionSpinner.setOnClickListener(this);
} }
@ -111,8 +120,8 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
public void onStop() { public void onStop() {
super.onStop(); super.onStop();
continueBtn.setOnClickListener(null); continueBtn.setOnClickListener(null);
receiveAmountEdTxt.setOnEditorActionListener(null);
sendAmountEdTxt.setOnEditorActionListener(null);
// recieveMoneyEditText.setOnEditorActionListener(null);
// sendMoneyEditText.setOnEditorActionListener(null);
countrySelectionSpinner.setOnClickListener(null); countrySelectionSpinner.setOnClickListener(null);
} }
@ -139,6 +148,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
@Override @Override
public void onDestroy() { public void onDestroy() {
((SendMoneyActionListener) getActivity()).getPresenter().clearExRateData(); ((SendMoneyActionListener) getActivity()).getPresenter().clearExRateData();
registerTextWatchers(false);
super.onDestroy(); super.onDestroy();
if (compositeDisposable != null && !compositeDisposable.isDisposed()) if (compositeDisposable != null && !compositeDisposable.isDisposed())
compositeDisposable.dispose(); compositeDisposable.dispose();
@ -170,15 +180,37 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.amountDetailContinueButton: case R.id.amountDetailContinueButton:
if(validateAmountIsNotEmpty(sendAmountEdTxt.getText().toString())) {
((SendMoneyActionListener) getActivity()).getPresenter().setSendingAmount(sendAmountEdTxt.getText().toString(),selectedsendingCurrency,selectedExRate,selectedTransferAmount);
((SendMoneyV2Activity) getActivity()).addScreenToSendMoney(R.layout.fragment_verification_send_money_v2, true);
// if(validateAmountIsNotEmpty(sendMoneyEditText.getText().toString())) {
// ((SendMoneyActionListener) getActivity()).getPresenter().setSendingAmount(sendMoneyEditText.getText().toString(),selectedsendingCurrency,selectedExRate,selectedTransferAmount);
// ((SendMoneyV2Activity) getActivity()).addScreenToSendMoney(R.layout.fragment_verification_send_money_v2, true);
// }
// else
// {
// showToastMessage("Please specify sending amount.");
// }
//TODO remove && false
if(shouldCalculateExRate&&false)
{
if(shouldCaulatedByRecipient&&!validateAmountIsNotEmpty(recieveMoneyEditText.getText().toString()))
{
showToastMessage("Please specify either of the amount.");
return;
}
if(!shouldCaulatedByRecipient&&!validateAmountIsNotEmpty(sendMoneyEditText.getText().toString()))
{
showToastMessage("Please specify either of the amount.");
return;
}
getForex();
} }
else else
{ {
showToastMessage("Please specify sending amount.");
if(validateAll()) {
((SendMoneyActionListener) getActivity()).getPresenter().setSendingAmount(sendMoneyEditText.getText().toString(),selectedsendingCurrency,selectedExRate,selectedTransferAmount);
((SendMoneyV2Activity) getActivity()).addScreenToSendMoney(R.layout.fragment_verification_send_money_v2, true);
} }
}
break; break;
case R.id.countrySelectionSpinner: case R.id.countrySelectionSpinner:
if (!amountDetailRelatedData.getAvailableCurrencyData().isEmpty()) if (!amountDetailRelatedData.getAvailableCurrencyData().isEmpty())
@ -191,7 +223,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
private void getForex() { private void getForex() {
compositeDisposable.add( compositeDisposable.add(
((SendMoneyActionListener) getActivity()).getPresenter().getForex( ((SendMoneyActionListener) getActivity()).getPresenter().getForex(
receiveAmountEdTxt.getText().toString(), sendAmountEdTxt.getText().toString(), shouldCaulatedByRecipient, amountDetailRelatedData.getDefaultSelectedCurrency().getCurrencyCode()
recieveMoneyEditText.getText().toString(), sendMoneyEditText.getText().toString(), shouldCaulatedByRecipient, amountDetailRelatedData.getDefaultSelectedCurrency().getCurrencyCode()
).doOnSubscribe(d -> showProgressBar(true, "Calculating...")) ).doOnSubscribe(d -> showProgressBar(true, "Calculating..."))
.subscribeWith(new ExchangeRateCalcObserver()) .subscribeWith(new ExchangeRateCalcObserver())
); );
@ -222,8 +254,8 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
private void showSendAndRecieveAmount(String sendAmount, String recieveAmount) { private void showSendAndRecieveAmount(String sendAmount, String recieveAmount) {
this.sendAmountEdTxt.setText(sendAmount);
this.receiveAmountEdTxt.setText(recieveAmount);
updateSendAmount(sendAmount);
updateRecievingAmount(recieveAmount);
} }
private boolean validateAmountIsNotEmpty(String amount) { private boolean validateAmountIsNotEmpty(String amount) {
@ -248,7 +280,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
if (actionId == EditorInfo.IME_ACTION_DONE) { if (actionId == EditorInfo.IME_ACTION_DONE) {
hideKeyBoard(); hideKeyBoard();
shouldCaulatedByRecipient = false; shouldCaulatedByRecipient = false;
if (validateAmountIsNotEmpty(sendAmountEdTxt.getText().toString()))
if (validateAmountIsNotEmpty(sendMoneyEditText.getText().toString()))
getForex(); getForex();
else else
showToastMessage("Please specify sending amount."); showToastMessage("Please specify sending amount.");
@ -259,7 +291,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
if (actionId == EditorInfo.IME_ACTION_DONE) { if (actionId == EditorInfo.IME_ACTION_DONE) {
hideKeyBoard(); hideKeyBoard();
shouldCaulatedByRecipient = true; shouldCaulatedByRecipient = true;
if (validateAmountIsNotEmpty(receiveAmountEdTxt.getText().toString()))
if (validateAmountIsNotEmpty(recieveMoneyEditText.getText().toString()))
getForex(); getForex();
else else
showToastMessage("Please specify recieving amount."); showToastMessage("Please specify recieving amount.");
@ -339,4 +371,117 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
} }
} }
private boolean validateAll()
{
if(validateAmountIsNotEmpty(sendMoneyEditText.getText().toString()))
{
if(validateAmountIsNotEmpty(sendMoneyEditText.getText().toString()))
return true;
else
{
showToastMessage("Please specify recieving amount.");
return false;
}
}
else
{
showToastMessage("Please specify sending amount.");
return false;
}
}
private void updateButtonToCalculate(boolean action)
{
shouldCalculateExRate=action;
if(action)
continueBtn.setText("Calculate");
else
continueBtn.setText("Continue");
}
private void updateSendAmount(String amount)
{
registerAvailableTextWatchersForEditText(sendMoneyEditText,false);
sendMoneyEditText.setText(amount);
registerAvailableTextWatchersForEditText(sendMoneyEditText,true);
}
private void updateRecievingAmount(String amount)
{
registerAvailableTextWatchersForEditText(recieveMoneyEditText,false);
recieveMoneyEditText.setText(amount);
registerAvailableTextWatchersForEditText(recieveMoneyEditText,true);
}
private void registerTextWatchers(boolean action) {
if (action) {
if (sendAmountTextWatcher == null)
sendAmountTextWatcher = new SendAmountTextWatcher();
if (recepientAmountTextWatcher == null)
recepientAmountTextWatcher = new RecipientAmountTextWatcher();
sendMoneyEditText.addTextChangedListener(sendAmountTextWatcher);
recieveMoneyEditText.addTextChangedListener(recepientAmountTextWatcher);
} else {
sendMoneyEditText.addTextChangedListener(null);
recieveMoneyEditText.addTextChangedListener(null);
}
}
private void registerAvailableTextWatchersForEditText(EditText editText, boolean action) {
switch (editText.getId()) {
case R.id.sendAmountEdTxt:
if (action)
sendMoneyEditText.addTextChangedListener(sendAmountTextWatcher);
else
sendMoneyEditText.removeTextChangedListener(sendAmountTextWatcher);
break;
case R.id.receiveAmountEdTxt:
if (action)
recieveMoneyEditText.addTextChangedListener(recepientAmountTextWatcher);
else
recieveMoneyEditText.removeTextChangedListener(recepientAmountTextWatcher);
break;
}
}
private class SendAmountTextWatcher implements TextWatcher {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
shouldCaulatedByRecipient = false;
updateRecievingAmount("");
}
}
private class RecipientAmountTextWatcher implements TextWatcher {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
shouldCaulatedByRecipient = true;
updateSendAmount("");
}
}
} }

2
app/src/main/res/layout/fragment_amount_detail_send_money_v2.xml

@ -229,7 +229,7 @@
android:layout_height="50dp" android:layout_height="50dp"
android:layout_gravity="center" android:layout_gravity="center"
android:background="@drawable/ic_rounded_background_coloured" android:background="@drawable/ic_rounded_background_coloured"
android:text="Continue"
android:text="Calculate"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18sp" /> android:textSize="18sp" />

3
app/src/main/res/layout/fragment_verification_send_money_v2.xml

@ -14,6 +14,7 @@
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/ic_rounded_white" android:background="@drawable/ic_rounded_white"
android:paddingEnd="20dp" android:paddingEnd="20dp"
android:paddingTop="20dp"
android:paddingLeft="20dp" android:paddingLeft="20dp"
android:paddingRight="20dp" android:paddingRight="20dp"
android:paddingStart="20dp"> android:paddingStart="20dp">
@ -321,7 +322,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"

Loading…
Cancel
Save