Browse Source

Edit flow added

master
preyearegmi 6 years ago
parent
commit
d44f355a75
  1. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/CountryDetailModel.java
  2. 16
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/ProvinceDetailModel.java
  3. 45
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/RecipientRelatedModel.java
  4. 102
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientadd/RecipientAddV2Presenter.java
  5. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientadd/RecipientAddV2PresenterInterface.java
  6. 69
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientadd/RecipientAddV2Activity.java

15
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/CountryDetailModel.java

@ -62,4 +62,19 @@ public class CountryDetailModel {
public void setProvinces(List<ProvinceDetailModel> provinces) { public void setProvinces(List<ProvinceDetailModel> provinces) {
this.provinces = provinces; this.provinces = provinces;
} }
public ProvinceDetailModel getSelectedProvinceFromList(String id)
{
if(provinces==null||provinces.size()<1)
return null;
else
{
for(ProvinceDetailModel item:provinces)
{
if(item.getId().equalsIgnoreCase(id))
return item;
}
}
return null;
}
} }

16
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/ProvinceDetailModel.java

@ -47,4 +47,20 @@ public class ProvinceDetailModel {
public void setDistrict(List<DistrictDetailModel> district) { public void setDistrict(List<DistrictDetailModel> district) {
this.district = district; this.district = district;
} }
public DistrictDetailModel getSelectedDistrictFromList(String id)
{
if(district==null||district.size()<1)
return null;
else
{
for(DistrictDetailModel item:district)
{
if(item.getId().equalsIgnoreCase(id))
return item;
}
}
return null;
}
} }

45
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/recipientadd/RecipientRelatedModel.java

@ -44,4 +44,49 @@ public class RecipientRelatedModel {
} }
public CountryDetailModel getSelectedCountryModelFromList(String id)
{
if(country==null||country.size()<1)
return null;
else
{
for(CountryDetailModel item:country)
{
if(item.getId().equalsIgnoreCase(id))
return item;
}
}
return null;
}
public RelationDetailModel getSelectedRelationModelFromList(String id)
{
if(relations==null||relations.size()<1)
return null;
else
{
for(RelationDetailModel item:relations)
{
if(item.getId().equalsIgnoreCase(id))
return item;
}
}
return null;
}
public TransferDetailModel getSelectedTransferModelFromList(String id)
{
if(transferReasons==null||transferReasons.size()<1)
return null;
else
{
for(TransferDetailModel item:transferReasons)
{
if(item.getId().equalsIgnoreCase(id))
return item;
}
}
return null;
}
} }

102
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientadd/RecipientAddV2Presenter.java

@ -2,17 +2,21 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipient
import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.exchange_rate.presenter.ExchangeRateV2Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV2.gateway.RecipientAddV2Gateway; import com.gmeremit.online.gmeremittance_native.recipientV2.gateway.RecipientAddV2Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.CountryDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.CountryDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.DistrictDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.DistrictDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ProvinceDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ProvinceDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
@ -75,6 +79,18 @@ public class RecipientAddV2Presenter extends BasePresenter implements RecipientA
this.view.showToastMessage("Please fill up required details."); this.view.showToastMessage("Please fill up required details.");
} }
@Override
public void prepareRecipientForEdit(RecipientInfoModel recipientToBeEdited) {
compositeDisposable.add( Observable.zip( this.gateway.getRelatedDataFromServer(gateway.getAuth()),
Observable.just(recipientToBeEdited), EditableMergedData::new)
.doOnSubscribe(disposable -> this.view.showProgressBar(true, "Fetching data..."))
.doOnError((err) -> this.view.showProgressBar(false, ""))
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new EditableMergedDataObserver())
);
}
private boolean validateLocation(CountryDetailModel country, ProvinceDetailModel province, DistrictDetailModel district) { private boolean validateLocation(CountryDetailModel country, ProvinceDetailModel province, DistrictDetailModel district) {
if (country != null) { if (country != null) {
@ -147,4 +163,90 @@ public class RecipientAddV2Presenter extends BasePresenter implements RecipientA
} }
} }
public class EditableMergedData
{
RecipientRelatedDataApiResponse dataApiResponse;
RecipientInfoModel recipientInfoModel;
public EditableMergedData(RecipientRelatedDataApiResponse dataApiResponse, RecipientInfoModel recipientInfoModel) {
this.dataApiResponse = dataApiResponse;
this.recipientInfoModel = recipientInfoModel;
}
public RecipientRelatedDataApiResponse getDataApiResponse() {
return dataApiResponse;
}
public void setDataApiResponse(RecipientRelatedDataApiResponse dataApiResponse) {
this.dataApiResponse = dataApiResponse;
}
public RecipientInfoModel getRecipientInfoModel() {
return recipientInfoModel;
}
public void setRecipientInfoModel(RecipientInfoModel recipientInfoModel) {
this.recipientInfoModel = recipientInfoModel;
}
}
public class EditableMergedDataObserver extends GenericApiObserverResponse<EditableMergedData>
{
@Override
protected void onSuccess(EditableMergedData editableMergedData) {
if(editableMergedData.getDataApiResponse().getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2))
{
RecipientRelatedModel metaData=editableMergedData.getDataApiResponse().getData();
RecipientInfoModel editableData=editableMergedData.getRecipientInfoModel();
CountryDetailModel selectedCountryDetailModel=metaData.getSelectedCountryModelFromList(editableData.getCountryId());
TransferDetailModel selectedTransferDetailModel=metaData.getSelectedTransferModelFromList(editableData.getReasonId());
RelationDetailModel selectedRelationDetailModel=metaData.getSelectedRelationModelFromList(editableData.getRelationId());
ProvinceDetailModel selectedProvinceDetailModel=null;
DistrictDetailModel selectedDistrictDetailModel=null;
if(selectedCountryDetailModel!=null)
{
selectedProvinceDetailModel=selectedCountryDetailModel.getSelectedProvinceFromList(editableData.getStateId());
if(selectedProvinceDetailModel!=null)
{
selectedDistrictDetailModel=selectedProvinceDetailModel.getSelectedDistrictFromList(editableData.getDistrictId());
}
}
view.showDataForEditing(editableData.getFirstName(),editableData.getMiddleName(),editableData.getLastName(),
selectedCountryDetailModel,
selectedProvinceDetailModel,
selectedDistrictDetailModel,
editableData.getAddress(),
selectedRelationDetailModel,
editableData.getMobileNumber(),
editableData.getEmail(),
selectedTransferDetailModel);
}
else
{
view.showToastMessage(editableMergedData.getDataApiResponse().getMsg());
view.exitView();
}
}
@Override
public void onFailed(String message) {
}
@Override
protected void onConnectionNotEstablished(String message) {
}
}
} }

15
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/recipientadd/RecipientAddV2PresenterInterface.java

@ -8,6 +8,7 @@ import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.P
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
public interface RecipientAddV2PresenterInterface extends BasePresenterInterface { public interface RecipientAddV2PresenterInterface extends BasePresenterInterface {
@ -15,8 +16,20 @@ public interface RecipientAddV2PresenterInterface extends BasePresenterInterface
void addRecipient(String firstName, String middleName, String lastName, CountryDetailModel selectedCountry, ProvinceDetailModel selectedProvince, DistrictDetailModel selectedDistrict, String address, RelationDetailModel selectedRelation, String mobileNo, String email, TransferDetailModel selectedTransfer); void addRecipient(String firstName, String middleName, String lastName, CountryDetailModel selectedCountry, ProvinceDetailModel selectedProvince, DistrictDetailModel selectedDistrict, String address, RelationDetailModel selectedRelation, String mobileNo, String email, TransferDetailModel selectedTransfer);
void prepareRecipientForEdit(RecipientInfoModel recipientToBeEdited);
interface RecipientAddV2ContractInterface extends BaseContractInterface interface RecipientAddV2ContractInterface extends BaseContractInterface
{ {
void showRelatedData(RecipientRelatedModel data); void showRelatedData(RecipientRelatedModel data);
}
void showDataForEditing(String firstName, String middleName, String lastName,
CountryDetailModel selectedCountry,
ProvinceDetailModel selectedProvince,
DistrictDetailModel selectedDistrict,
String address,
RelationDetailModel selectedRelation,
String mobileNo,
String email,
TransferDetailModel selectedTransfer);
}
} }

69
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/recipientadd/RecipientAddV2Activity.java

@ -15,6 +15,7 @@ import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.P
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientadd.RecipientAddV2Presenter; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientadd.RecipientAddV2Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientadd.RecipientAddV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientadd.RecipientAddV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientCountryListingDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientCountryListingDialog;
@ -22,6 +23,7 @@ import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientDistri
import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListingDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListingDialog;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientRelationListingDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientRelationListingDialog;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientTransferListingDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientTransferListingDialog;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientlisting.RecipientListingV2Activity;
import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.Constants;
import java.util.List; import java.util.List;
@ -79,25 +81,28 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
Button submitButton; Button submitButton;
public static String RECIPIENT_INFO_BUNDLE_KEY="recipientInfoKey";
public static String RECIPIENT_INFO_BUNDLE_KEY = "recipientInfoKey";
private RecipientAddV2PresenterInterface presenterInterface; private RecipientAddV2PresenterInterface presenterInterface;
private RecipientCountryListingDialog recipientCountryListingDialog; private RecipientCountryListingDialog recipientCountryListingDialog;
private CountryDetailModel selectedCountry; private CountryDetailModel selectedCountry;
private ProvinceDetailModel selectedProvince; private ProvinceDetailModel selectedProvince;
private TransferDetailModel selectedTransferReason;
private RelationDetailModel seletedRelation;
private DistrictDetailModel selectedDistrict;
private List<TransferDetailModel> transferReasonList; private List<TransferDetailModel> transferReasonList;
private List<CountryDetailModel> countryList; private List<CountryDetailModel> countryList;
private List<RelationDetailModel> relationList; private List<RelationDetailModel> relationList;
private RecipientProvinceListingDialog provinceListingDialog; private RecipientProvinceListingDialog provinceListingDialog;
private RecipientDistrictListingDialog districtListingDialog; private RecipientDistrictListingDialog districtListingDialog;
private DistrictDetailModel selectedDistrict;
private RecipientTransferListingDialog transferListingDialog; private RecipientTransferListingDialog transferListingDialog;
private RecipientRelationListingDialog relationListingDialog; private RecipientRelationListingDialog relationListingDialog;
private TransferDetailModel selectedTransferReason;
private RelationDetailModel seletedRelation;
private RecipientInfoModel recipientToBeEdited = null;
/** /**
* ed_firstname * ed_firstname
@ -152,7 +157,15 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
private void performDefaultAction(Bundle savedInstanceState) { private void performDefaultAction(Bundle savedInstanceState) {
toolbarTitle.setText("Add Recipient"); toolbarTitle.setText("Add Recipient");
//TODO modify this for reciepient CRUD //TODO modify this for reciepient CRUD
presenterInterface.getAllData();
try {
recipientToBeEdited = getIntent().getExtras().getParcelable(RECIPIENT_INFO_BUNDLE_KEY);
} catch (Exception e) {
recipientToBeEdited = null;
}
if (recipientToBeEdited != null)
presenterInterface.prepareRecipientForEdit(recipientToBeEdited);
else
presenterInterface.getAllData();
} }
@Override @Override
@ -202,21 +215,21 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
showTransferListingInDialog(); showTransferListingInDialog();
break; break;
case R.id.iv_back: case R.id.iv_back:
onBackPressed();
onBackPressed();
break; break;
case R.id.btn_submit:
this.presenterInterface.addRecipient(ed_firstname.getText().toString(),
case R.id.btn_submit:
this.presenterInterface.addRecipient(ed_firstname.getText().toString(),
ed_middlename.getText().toString(), ed_middlename.getText().toString(),
ed_lastname.getText().toString(),
selectedCountry,
selectedProvince,
selectedDistrict,
ed_address.getText().toString(),
seletedRelation,
ed_mobile_no.getText().toString(),
ed_email.getText().toString(),
selectedTransferReason
);
ed_lastname.getText().toString(),
selectedCountry,
selectedProvince,
selectedDistrict,
ed_address.getText().toString(),
seletedRelation,
ed_mobile_no.getText().toString(),
ed_email.getText().toString(),
selectedTransferReason
);
break; break;
} }
} }
@ -244,7 +257,7 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
if (this.selectedProvince != null) { if (this.selectedProvince != null) {
districtListingDialog.setDistrictData(this.selectedProvince.getDistrict()); districtListingDialog.setDistrictData(this.selectedProvince.getDistrict());
districtListingDialog.show(getFragmentManager(), "RecipientProvinceListingDialog"); districtListingDialog.show(getFragmentManager(), "RecipientProvinceListingDialog");
} else {
} else {
showToastMessage("Select a State/Province first."); showToastMessage("Select a State/Province first.");
} }
} }
@ -276,20 +289,20 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
if (countryPaymentService.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) { if (countryPaymentService.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) {
ed_province.setText(""); ed_province.setText("");
selectedProvince = null; selectedProvince = null;
selectedDistrict=null;
selectedDistrict = null;
provinceViewContainer.setVisibility(View.VISIBLE); provinceViewContainer.setVisibility(View.VISIBLE);
districtViewContainer.setVisibility(View.VISIBLE); districtViewContainer.setVisibility(View.VISIBLE);
} else { } else {
ed_province.setText(""); ed_province.setText("");
ed_district.setText(""); ed_district.setText("");
selectedProvince = null; selectedProvince = null;
selectedDistrict=null;
selectedDistrict = null;
provinceViewContainer.setVisibility(View.GONE); provinceViewContainer.setVisibility(View.GONE);
districtViewContainer.setVisibility(View.GONE); districtViewContainer.setVisibility(View.GONE);
} }
if (recipientCountryListingDialog != null) { if (recipientCountryListingDialog != null) {
recipientCountryListingDialog.dismiss(); recipientCountryListingDialog.dismiss();
recipientCountryListingDialog=null;
recipientCountryListingDialog = null;
} }
} }
@ -308,7 +321,7 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
this.ed_province.setText(this.selectedProvince.getText()); this.ed_province.setText(this.selectedProvince.getText());
if (provinceListingDialog != null) { if (provinceListingDialog != null) {
provinceListingDialog.dismiss(); provinceListingDialog.dismiss();
provinceListingDialog=null;
provinceListingDialog = null;
} }
} }
@ -318,7 +331,7 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
this.ed_district.setText(this.selectedDistrict.getText()); this.ed_district.setText(this.selectedDistrict.getText());
if (districtListingDialog != null) { if (districtListingDialog != null) {
districtListingDialog.dismiss(); districtListingDialog.dismiss();
districtListingDialog=null;
districtListingDialog = null;
} }
} }
@ -328,7 +341,7 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
this.ed_transfer.setText(this.selectedTransferReason.getText()); this.ed_transfer.setText(this.selectedTransferReason.getText());
if (transferListingDialog != null) { if (transferListingDialog != null) {
transferListingDialog.dismiss(); transferListingDialog.dismiss();
transferListingDialog=null;
transferListingDialog = null;
} }
} }
@ -338,7 +351,7 @@ public class RecipientAddV2Activity extends BaseActivity implements View.OnClick
this.ed_relation.setText(this.seletedRelation.getText()); this.ed_relation.setText(this.seletedRelation.getText());
if (relationListingDialog != null) { if (relationListingDialog != null) {
relationListingDialog.dismiss(); relationListingDialog.dismiss();
relationListingDialog=null;
relationListingDialog = null;
} }
} }
} }
Loading…
Cancel
Save