From e114b2e0ddd832555189e669dc18b44e0cc82c62 Mon Sep 17 00:00:00 2001 From: preyearegmi Date: Sun, 26 Aug 2018 19:26:30 +0900 Subject: [PATCH] Recipient data submit due --- .../base/BasePresenter.java | 5 + .../RecipientCountryListingRvAdapter.java | 2 +- .../RecipientDistrictListingRvAdapter.java | 61 ++++++ .../RecipientRelationListingRvAdapter.java | 61 ++++++ .../RecipientTransferListingRvAdapter.java | 61 ++++++ .../gateway/RecipientV2Gateway.java | 11 +- .../presenter/RecipientV2Presenter.java | 69 +++++-- .../RecipientV2PresenterInterface.java | 7 + .../view/RecipientCountryListingDialog.java | 4 +- .../view/RecipientDistrictListingDialog.java | 189 ++++++++++++++++++ .../view/RecipientProvinceListingDialog.java | 16 +- .../view/RecipientRelationListingDialog.java | 188 +++++++++++++++++ .../view/RecipientTransferListingDialog.java | 189 ++++++++++++++++++ .../recipientV2/view/RecipientV2Activity.java | 179 ++++++++++++----- .../utils/https/API_URL.java | 1 + .../utils/https/ApiEndpoints.java | 5 + .../main/res/layout/activity_recipient_v2.xml | 34 +++- .../res/layout/dialog_country_listing.xml | 3 +- .../res/layout/provincelist_item_view.xml | 12 +- 19 files changed, 1018 insertions(+), 79 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientDistrictListingRvAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientRelationListingRvAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientTransferListingRvAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientDistrictListingDialog.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientRelationListingDialog.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientTransferListingDialog.java diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BasePresenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BasePresenter.java index 46fecb12..c5850807 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BasePresenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BasePresenter.java @@ -15,4 +15,9 @@ public class BasePresenter implements BasePresenterInterface { public void onViewDestroyed() { } + + protected boolean checkStringNotEmpty(String data) + { + return data!=null&&data.length()>0; + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java index fae54690..b0c4d486 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java @@ -41,7 +41,7 @@ public class RecipientCountryListingRvAdapter extends RecyclerView.Adapter { + + private final RecipientDistrictListingDialog.DistrictSelectionListener listener; + private List data; + + public RecipientDistrictListingRvAdapter(RecipientDistrictListingDialog.DistrictSelectionListener listener) { + this.data=new ArrayList<>(); + this.listener=listener; + } + + + @Override + public RecipientProvinceListRvViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.provincelist_item_view, parent, false); + return new RecipientProvinceListRvViewHolder(view); } + + @Override + public void onBindViewHolder(final RecipientProvinceListRvViewHolder holder, int position) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(listener!=null) + listener.onDistrictSelected(data.get(holder.getAdapterPosition())); + } + }); + DistrictDetailModel province= data.get(position); + holder.setName(province.getText()); + } + + @Override + public int getItemCount() { + return data.size(); + } + + public void setData(List data) { + if(data!=null) + { + this.data=data; + notifyDataSetChanged(); + } + } + + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientRelationListingRvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientRelationListingRvAdapter.java new file mode 100644 index 00000000..2b76cb87 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientRelationListingRvAdapter.java @@ -0,0 +1,61 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.adapter; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListRvViewHolder; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientRelationListingDialog; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientTransferListingDialog; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientRelationListingRvAdapter extends RecyclerView.Adapter { + + private final RecipientRelationListingDialog.RelationSelectionListener listener; + private List data; + + public RecipientRelationListingRvAdapter(RecipientRelationListingDialog.RelationSelectionListener listener) { + this.data=new ArrayList<>(); + this.listener=listener; + } + + + @Override + public RecipientProvinceListRvViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.provincelist_item_view, parent, false); + return new RecipientProvinceListRvViewHolder(view); } + + @Override + public void onBindViewHolder(final RecipientProvinceListRvViewHolder holder, int position) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(listener!=null) + listener.onRelationSelected(data.get(holder.getAdapterPosition())); + } + }); + RelationDetailModel relationData= data.get(position); + holder.setName(relationData.getText()); + } + + @Override + public int getItemCount() { + return data.size(); + } + + public void setData(List data) { + if(data!=null) + { + this.data=data; + notifyDataSetChanged(); + } + } + + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientTransferListingRvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientTransferListingRvAdapter.java new file mode 100644 index 00000000..b31ce3e5 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientTransferListingRvAdapter.java @@ -0,0 +1,61 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.adapter; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientDistrictListingDialog; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListRvViewHolder; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientTransferListingDialog; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientTransferListingRvAdapter extends RecyclerView.Adapter { + + private final RecipientTransferListingDialog.TransferReasonSelectionListener listener; + private List data; + + public RecipientTransferListingRvAdapter(RecipientTransferListingDialog.TransferReasonSelectionListener listener) { + this.data=new ArrayList<>(); + this.listener=listener; + } + + + @Override + public RecipientProvinceListRvViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.provincelist_item_view, parent, false); + return new RecipientProvinceListRvViewHolder(view); } + + @Override + public void onBindViewHolder(final RecipientProvinceListRvViewHolder holder, int position) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(listener!=null) + listener.onTransferReasonSelected(data.get(holder.getAdapterPosition())); + } + }); + TransferDetailModel province= data.get(position); + holder.setName(province.getText()); + } + + @Override + public int getItemCount() { + return data.size(); + } + + public void setData(List data) { + if(data!=null) + { + this.data=data; + notifyDataSetChanged(); + } + } + + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java index 7bbe4c36..6850012f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java @@ -3,6 +3,7 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.gateway; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2InteractorInterface; +import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -180,9 +181,11 @@ public class RecipientV2Gateway extends PrivilegedGateway implements RecipientV2 @Override public Observable getRelatedDataFromServer(String auth) { - RecipientRelatedDataApiResponse recipientRelatedDataApiResponse; - Gson gson=new GsonBuilder().create(); - recipientRelatedDataApiResponse=gson.fromJson(mockedData,RecipientRelatedDataApiResponse.class); - return Observable.just(recipientRelatedDataApiResponse); +// RecipientRelatedDataApiResponse recipientRelatedDataApiResponse; +// Gson gson=new GsonBuilder().create(); +// recipientRelatedDataApiResponse=gson.fromJson(mockedData,RecipientRelatedDataApiResponse.class); +// return Observable.just(recipientRelatedDataApiResponse); +// + return HttpClientV2.getInstance().getRecipientRelatedDataV2(auth); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java index 549328b6..565d3642 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java @@ -4,7 +4,12 @@ import com.gmeremit.online.gmeremittance_native.agentsV2.gateway.AgentListV2Gate import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.gateway.RecipientV2Gateway; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.ProvinceDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2InteractorInterface; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.utils.Constants; @@ -31,16 +36,52 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr @Override public void getAllData() { compositeDisposable.add( - this.gateway.getRelatedDataFromServer(gateway.getAuth()) - .doOnSubscribe(disposable -> view.showProgressBar(true, "Fetching data...")) - .doFinally(() -> view.showProgressBar(false, "")) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeWith(new RecipientRelatedDataObserver()) + this.gateway.getRelatedDataFromServer(gateway.getAuth()) + .doOnSubscribe(disposable -> view.showProgressBar(true, "Fetching data...")) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new RecipientRelatedDataObserver()) ); } + @Override + public void addRecipient(String firstName, String middleName, String lastName, CountryDetailModel selectedCountry, + ProvinceDetailModel selectedProvince, DistrictDetailModel selectedDistrict, + String address, RelationDetailModel selectedRelation, String mobileNo, String email, TransferDetailModel selectedTransfer) { + if(checkStringNotEmpty(firstName)&& + checkStringNotEmpty(lastName)&& + checkStringNotEmpty(address)&& + checkStringNotEmpty(mobileNo)&& + validateLocation(selectedCountry,selectedProvince,selectedDistrict)) + { + + } + else + this.view.showToastMessage("Please fill up required details."); + } + + + private boolean validateLocation(CountryDetailModel country, ProvinceDetailModel province, DistrictDetailModel district) { + if (country != null) { + if (country.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) { + if (province == null) { +// this.view.showToastMessage("Select a province first."); + return false; + } else if (district == null) { +// this.view.showToastMessage("Select a district first."); + return false; + } else + return true; + } else + return true; + } else { +// this.view.showToastMessage("Select a country first."); + return false; + } + } + @Override public void onViewDestroyed() { super.onViewDestroyed(); @@ -48,29 +89,25 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr compositeDisposable.dispose(); } - private class RecipientRelatedDataObserver extends GenericApiObserverResponse - { + private class RecipientRelatedDataObserver extends GenericApiObserverResponse { @Override protected void onSuccess(RecipientRelatedDataApiResponse recipientRelatedDataApiResponse) { - if(recipientRelatedDataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) - { + if (recipientRelatedDataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { view.showRelatedData(recipientRelatedDataApiResponse.getData()); - } - else - { - view.showPopUpMessage(recipientRelatedDataApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED,null); + } else { + view.showPopUpMessage(recipientRelatedDataApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, null); } } @Override public void onFailed(String message) { - view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); } @Override protected void onConnectionNotEstablished(String message) { - view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET,null); + view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2PresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2PresenterInterface.java index 95f7b014..80b4c956 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2PresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2PresenterInterface.java @@ -2,7 +2,12 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter; import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.ProvinceDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; import java.util.List; @@ -10,6 +15,8 @@ public interface RecipientV2PresenterInterface extends BasePresenterInterface { void getAllData(); + void addRecipient(String firstName, String middleName, String lastName, CountryDetailModel selectedCountry, ProvinceDetailModel selectedProvince, DistrictDetailModel selectedDistrict, String address, RelationDetailModel selectedRelation, String mobileNo, String email, TransferDetailModel selectedTransfer); + interface RecipientV2ContractInterface extends BaseContractInterface { void showRelatedData(RecipientRelatedModel data); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java index 9429ecc3..6662feba 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java @@ -73,7 +73,7 @@ public class RecipientCountryListingDialog extends DialogFragment implements Vie this.listener = listener; } - public void setCountryPaymentData(List data) { + public void setCountryData(List data) { if (data != null) { this.data = data; } @@ -147,7 +147,7 @@ public class RecipientCountryListingDialog extends DialogFragment implements Vie if (s.length() > 0) { List searchedData = new ArrayList<>(); for (CountryDetailModel item : data) { - if (item.getId().toLowerCase().contains(s.toLowerCase())) { + if (item.getName().toLowerCase().contains(s.toLowerCase())) { searchedData.add(item); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientDistrictListingDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientDistrictListingDialog.java new file mode 100644 index 00000000..838743be --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientDistrictListingDialog.java @@ -0,0 +1,189 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.view; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; +import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientDistrictListingRvAdapter; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientDistrictListingDialog extends DialogFragment implements View.OnClickListener, TextWatcher { + + private List data; + private DistrictSelectionListener listener; + private RecyclerView provinceRv; + private View cancelButton; + private EditText noProvinceFoundView; + private EditText searchEditTextView; + private RecipientDistrictListingRvAdapter districtListingRvAdapter; + private Window window; + private boolean windowHieghtNotFixed=true; + private TextView dialogTitle; + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_country_listing, null); + provinceRv = view.findViewById(R.id.countryListRv); + noProvinceFoundView = view.findViewById(R.id.noCountryFoundTextView); + dialogTitle = view.findViewById(R.id.dialog_title_txt); + cancelButton = view.findViewById(R.id.iv_cancel); + searchEditTextView = view.findViewById(R.id.searchEditText); + + builder.setView(view); + + Dialog dialog = builder.create(); + try { + this.window = dialog.getWindow(); + window.setBackgroundDrawableResource(R.drawable.ic_rounded_white); + + } catch (NullPointerException e) { + + } + initialize(); + return dialog; + } + + private void initialize() { + cancelButton.setOnClickListener(this); + searchEditTextView.addTextChangedListener(this); + districtListingRvAdapter = new RecipientDistrictListingRvAdapter(this.listener); + districtListingRvAdapter.setData(this.data); + provinceRv.setAdapter(districtListingRvAdapter); + LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); + provinceRv.addItemDecoration(lineDividerItemDecoration); + noProvinceFoundView.setText("No District found."); + dialogTitle.setText("Select District"); + + } + + public void setListener(DistrictSelectionListener listener) { + this.listener = listener; + } + + public void setDistrictData(List data) { + if (data != null&&data.size()>0) { + this.data = data; + } + } + + @Override + public void onStart() { + super.onStart(); + if(windowHieghtNotFixed&&window!=null) + { + WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); + lp.copyFrom(window.getAttributes()); + lp.height = WindowManager.LayoutParams.MATCH_PARENT; + float multi = getActivity().getResources().getDisplayMetrics().density; + lp.verticalMargin=10*multi; + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + window.setAttributes(lp); + windowHieghtNotFixed=false; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_cancel: + cancelButton.setOnClickListener(null); + hideKeyboard(); + dismiss(); + break; + } + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + cancelButton.setOnClickListener(null); + searchEditTextView.removeTextChangedListener(this); + } + + private void showCountryNotFoundView(boolean action) { + if (action) { + int rvHeight = provinceRv.getHeight(); + noProvinceFoundView.setHeight(rvHeight); + provinceRv.setVisibility(View.INVISIBLE); + noProvinceFoundView.setVisibility(View.VISIBLE); + } else { + noProvinceFoundView.setVisibility(View.INVISIBLE); + provinceRv.setVisibility(View.VISIBLE); + } + } + + @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) { + if (districtListingRvAdapter != null) { + searchForDistrict(s.toString()); + } + } + + private void searchForDistrict(String s) { + if (this.data != null) { + if (s.length() > 0) { + List searchedData = new ArrayList<>(); + for (DistrictDetailModel item : data) { + if (item.getText().toLowerCase().contains(s.toLowerCase())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + showCountryNotFoundView(false); + else + showCountryNotFoundView(true); + districtListingRvAdapter.setData(searchedData); + + } else + districtListingRvAdapter.setData(this.data); + } + } + + public void hideKeyboard() { + // Check if no view has focus: + try { + View view = getActivity().getCurrentFocus(); + + InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); + } + catch(Exception ex) + { + + } + + } + + + public interface DistrictSelectionListener { + void onDistrictSelected(DistrictDetailModel countryPaymentService); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java index cc847686..f9a29ee1 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java @@ -14,11 +14,11 @@ import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; +import android.widget.TextView; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientProvinceListingRvAdapter; -import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.ProvinceDetailModel; import java.util.ArrayList; @@ -35,6 +35,7 @@ public class RecipientProvinceListingDialog extends DialogFragment implements Vi private RecipientProvinceListingRvAdapter provinceListingRvAdapter; private Window window; private boolean windowHieghtNotFixed=true; + private TextView dialogTitle; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -44,13 +45,14 @@ public class RecipientProvinceListingDialog extends DialogFragment implements Vi noProvinceFoundView = view.findViewById(R.id.noCountryFoundTextView); cancelButton = view.findViewById(R.id.iv_cancel); searchEditTextView = view.findViewById(R.id.searchEditText); + dialogTitle = view.findViewById(R.id.dialog_title_txt); builder.setView(view); Dialog dialog = builder.create(); try { this.window = dialog.getWindow(); - window.setBackgroundDrawableResource(R.drawable.ic_rounded_country_listing_gray); + window.setBackgroundDrawableResource(R.drawable.ic_rounded_white); } catch (NullPointerException e) { @@ -68,6 +70,8 @@ public class RecipientProvinceListingDialog extends DialogFragment implements Vi LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); provinceRv.addItemDecoration(lineDividerItemDecoration); noProvinceFoundView.setText("No Province found."); + dialogTitle.setText("Select District"); + } @@ -75,7 +79,7 @@ public class RecipientProvinceListingDialog extends DialogFragment implements Vi this.listener = listener; } - public void setCountryPaymentData(List data) { + public void setProvinceData(List data) { if (data != null&&data.size()>0) { this.data = data; } @@ -140,16 +144,16 @@ public class RecipientProvinceListingDialog extends DialogFragment implements Vi @Override public void afterTextChanged(Editable s) { if (provinceListingRvAdapter != null) { - searchForCountry(s.toString()); + searchForProvince(s.toString()); } } - private void searchForCountry(String s) { + private void searchForProvince(String s) { if (this.data != null) { if (s.length() > 0) { List searchedData = new ArrayList<>(); for (ProvinceDetailModel item : data) { - if (item.getId().toLowerCase().contains(s.toLowerCase())) { + if (item.getText().toLowerCase().contains(s.toLowerCase())) { searchedData.add(item); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientRelationListingDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientRelationListingDialog.java new file mode 100644 index 00000000..27bc6e47 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientRelationListingDialog.java @@ -0,0 +1,188 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.view; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; +import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientRelationListingRvAdapter; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientRelationListingDialog extends DialogFragment implements View.OnClickListener, TextWatcher { + + private List data; + private RelationSelectionListener listener; + private RecyclerView provinceRv; + private View cancelButton; + private EditText noTransferFoundView; + private EditText searchEditTextView; + private RecipientRelationListingRvAdapter relationListingRvAdapter; + private Window window; + private boolean windowHieghtNotFixed=true; + private TextView dialogTitle; + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_country_listing, null); + provinceRv = view.findViewById(R.id.countryListRv); + noTransferFoundView = view.findViewById(R.id.noCountryFoundTextView); + cancelButton = view.findViewById(R.id.iv_cancel); + searchEditTextView = view.findViewById(R.id.searchEditText); + dialogTitle = view.findViewById(R.id.dialog_title_txt); + builder.setView(view); + + Dialog dialog = builder.create(); + try { + this.window = dialog.getWindow(); + window.setBackgroundDrawableResource(R.drawable.ic_rounded_white); + + } catch (NullPointerException e) { + + } + initialize(); + return dialog; + } + + private void initialize() { + cancelButton.setOnClickListener(this); + searchEditTextView.addTextChangedListener(this); + relationListingRvAdapter = new RecipientRelationListingRvAdapter(this.listener); + relationListingRvAdapter.setData(this.data); + provinceRv.setAdapter(relationListingRvAdapter); + LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); + provinceRv.addItemDecoration(lineDividerItemDecoration); + noTransferFoundView.setText("No Relation found."); + dialogTitle.setText("Select Relation"); + + } + + public void setListener(RelationSelectionListener listener) { + this.listener = listener; + } + + public void setTransferReasonData(List data) { + if (data != null&&data.size()>0) { + this.data = data; + } + } + + @Override + public void onStart() { + super.onStart(); + if(windowHieghtNotFixed&&window!=null) + { + WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); + lp.copyFrom(window.getAttributes()); + lp.height = WindowManager.LayoutParams.MATCH_PARENT; + float multi = getActivity().getResources().getDisplayMetrics().density; + lp.verticalMargin=10*multi; + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + window.setAttributes(lp); + windowHieghtNotFixed=false; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_cancel: + cancelButton.setOnClickListener(null); + hideKeyboard(); + dismiss(); + break; + } + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + cancelButton.setOnClickListener(null); + searchEditTextView.removeTextChangedListener(this); + } + + private void showCountryNotFoundView(boolean action) { + if (action) { + int rvHeight = provinceRv.getHeight(); + noTransferFoundView.setHeight(rvHeight); + provinceRv.setVisibility(View.INVISIBLE); + noTransferFoundView.setVisibility(View.VISIBLE); + } else { + noTransferFoundView.setVisibility(View.INVISIBLE); + provinceRv.setVisibility(View.VISIBLE); + } + } + + @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) { + if (relationListingRvAdapter != null) { + searchForRelation(s.toString()); + } + } + + private void searchForRelation(String s) { + if (this.data != null) { + if (s.length() > 0) { + List searchedData = new ArrayList<>(); + for (RelationDetailModel item : data) { + if (item.getText().toLowerCase().contains(s.toLowerCase())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + showCountryNotFoundView(false); + else + showCountryNotFoundView(true); + relationListingRvAdapter.setData(searchedData); + + } else + relationListingRvAdapter.setData(this.data); + } + } + + public void hideKeyboard() { + // Check if no view has focus: + try { + View view = getActivity().getCurrentFocus(); + + InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); + } + catch(Exception ex) + { + + } + + } + + + public interface RelationSelectionListener { + void onRelationSelected(RelationDetailModel relationDetailModel); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientTransferListingDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientTransferListingDialog.java new file mode 100644 index 00000000..bbd3bdeb --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientTransferListingDialog.java @@ -0,0 +1,189 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.view; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; +import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientTransferListingRvAdapter; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientTransferListingDialog extends DialogFragment implements View.OnClickListener, TextWatcher { + + private List data; + private TransferReasonSelectionListener listener; + private RecyclerView provinceRv; + private View cancelButton; + private EditText noTransferFoundView; + private EditText searchEditTextView; + private RecipientTransferListingRvAdapter transferListingRvAdapter; + private Window window; + private boolean windowHieghtNotFixed=true; + private TextView dialogTitle; + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_country_listing, null); + provinceRv = view.findViewById(R.id.countryListRv); + noTransferFoundView = view.findViewById(R.id.noCountryFoundTextView); + cancelButton = view.findViewById(R.id.iv_cancel); + searchEditTextView = view.findViewById(R.id.searchEditText); + dialogTitle = view.findViewById(R.id.dialog_title_txt); + builder.setView(view); + + Dialog dialog = builder.create(); + try { + this.window = dialog.getWindow(); + window.setBackgroundDrawableResource(R.drawable.ic_rounded_white); + + } catch (NullPointerException e) { + + } + initialize(); + return dialog; + } + + private void initialize() { + cancelButton.setOnClickListener(this); + searchEditTextView.addTextChangedListener(this); + transferListingRvAdapter = new RecipientTransferListingRvAdapter(this.listener); + transferListingRvAdapter.setData(this.data); + provinceRv.setAdapter(transferListingRvAdapter); + LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); + provinceRv.addItemDecoration(lineDividerItemDecoration); + noTransferFoundView.setText("No Transfer Reason found."); + dialogTitle.setText("Select Transfer Reason"); + + } + + public void setListener(TransferReasonSelectionListener listener) { + this.listener = listener; + } + + public void setTransferReasonData(List data) { + if (data != null&&data.size()>0) { + this.data = data; + } + } + + @Override + public void onStart() { + super.onStart(); + if(windowHieghtNotFixed&&window!=null) + { + WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); + lp.copyFrom(window.getAttributes()); + lp.height = WindowManager.LayoutParams.MATCH_PARENT; + float multi = getActivity().getResources().getDisplayMetrics().density; + lp.verticalMargin=10*multi; + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + window.setAttributes(lp); + windowHieghtNotFixed=false; + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iv_cancel: + cancelButton.setOnClickListener(null); + hideKeyboard(); + dismiss(); + break; + } + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + cancelButton.setOnClickListener(null); + searchEditTextView.removeTextChangedListener(this); + } + + private void showCountryNotFoundView(boolean action) { + if (action) { + int rvHeight = provinceRv.getHeight(); + noTransferFoundView.setHeight(rvHeight); + provinceRv.setVisibility(View.INVISIBLE); + noTransferFoundView.setVisibility(View.VISIBLE); + } else { + noTransferFoundView.setVisibility(View.INVISIBLE); + provinceRv.setVisibility(View.VISIBLE); + } + } + + @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) { + if (transferListingRvAdapter != null) { + searchForCountry(s.toString()); + } + } + + private void searchForCountry(String s) { + if (this.data != null) { + if (s.length() > 0) { + List searchedData = new ArrayList<>(); + for (TransferDetailModel item : data) { + if (item.getText().toLowerCase().contains(s.toLowerCase())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + showCountryNotFoundView(false); + else + showCountryNotFoundView(true); + transferListingRvAdapter.setData(searchedData); + + } else + transferListingRvAdapter.setData(this.data); + } + } + + public void hideKeyboard() { + // Check if no view has focus: + try { + View view = getActivity().getCurrentFocus(); + + InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); + } + catch(Exception ex) + { + + } + + } + + + public interface TransferReasonSelectionListener { + void onTransferReasonSelected(TransferDetailModel countryPaymentService); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientV2Activity.java index 1398b5c5..69658baa 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientV2Activity.java @@ -1,16 +1,16 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.view; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.EditText; import com.gmeremit.online.gmeremittance_native.R; -import com.gmeremit.online.gmeremittance_native.agentsV2.presenter.AgentListV2Presenter; import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.ProvinceDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; @@ -24,7 +24,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class RecipientV2Activity extends BaseActivity implements View.OnClickListener, RecipientCountryListingDialog.CountrySelectionListener,RecipientV2PresenterInterface.RecipientV2ContractInterface, RecipientProvinceListingDialog.ProvinceSelectionListener { +public class RecipientV2Activity extends BaseActivity implements View.OnClickListener, RecipientCountryListingDialog.CountrySelectionListener, RecipientV2PresenterInterface.RecipientV2ContractInterface, RecipientProvinceListingDialog.ProvinceSelectionListener, RecipientDistrictListingDialog.DistrictSelectionListener, RecipientTransferListingDialog.TransferReasonSelectionListener, RecipientRelationListingDialog.RelationSelectionListener { @BindView(R.id.iv_back) @@ -70,6 +70,11 @@ public class RecipientV2Activity extends BaseActivity implements View.OnClickLis @BindView(R.id.transferViewContainer) ViewGroup transferViewContainer; + @BindView(R.id.btn_submit) + Button submitButton; + + + private RecipientV2PresenterInterface presenterInterface; private RecipientCountryListingDialog recipientCountryListingDialog; private CountryDetailModel selectedCountry; @@ -78,6 +83,12 @@ public class RecipientV2Activity extends BaseActivity implements View.OnClickLis private List countryList; private List relationList; private RecipientProvinceListingDialog provinceListingDialog; + private RecipientDistrictListingDialog districtListingDialog; + private DistrictDetailModel selectedDistrict; + private RecipientTransferListingDialog transferListingDialog; + private RecipientRelationListingDialog relationListingDialog; + private TransferDetailModel selectedTransferReason; + private RelationDetailModel seletedRelation; /** * ed_firstname @@ -125,12 +136,12 @@ public class RecipientV2Activity extends BaseActivity implements View.OnClickLis private void init() { iv_cancel.setVisibility(View.INVISIBLE); - presenterInterface=new RecipientV2Presenter(this); + presenterInterface = new RecipientV2Presenter(this); } private void performDefaultAction(Bundle savedInstanceState) { - toolbarTitle.setText("Contacts"); + toolbarTitle.setText("Add Recipient"); //TODO modify this for reciepient CRUD presenterInterface.getAllData(); } @@ -138,70 +149,106 @@ public class RecipientV2Activity extends BaseActivity implements View.OnClickLis @Override protected void onStart() { super.onStart(); - countryViewContainer.setOnClickListener(this); - provinceViewContainer.setOnClickListener(this); - districtViewContainer.setOnClickListener(this); - relationViewContainer.setOnClickListener(this); - transferViewContainer.setOnClickListener(this); + ed_country.setOnClickListener(this); + ed_province.setOnClickListener(this); + ed_district.setOnClickListener(this); + ed_relation.setOnClickListener(this); + ed_transfer.setOnClickListener(this); + iv_back.setOnClickListener(this); + submitButton.setOnClickListener(this); } @Override protected void onStop() { super.onStop(); - countryViewContainer.setOnClickListener(null); - provinceViewContainer.setOnClickListener(null); - districtViewContainer.setOnClickListener(null); - relationViewContainer.setOnClickListener(null); - transferViewContainer.setOnClickListener(null); + ed_country.setOnClickListener(null); + ed_province.setOnClickListener(null); + ed_district.setOnClickListener(null); + ed_relation.setOnClickListener(null); + ed_transfer.setOnClickListener(null); + iv_back.setOnClickListener(null); + submitButton.setOnClickListener(null); } @Override public void onClick(View v) { switch (v.getId()) { - case R.id.countryViewContainer: + case R.id.ed_country: showCountryListingInDialog(); break; - case R.id.provinceViewContainer: + case R.id.ed_province: showProvinceListingInDialog(); break; - case R.id.districtViewContainer: + case R.id.ed_district: showDistrictListingInDialog(); break; - case R.id.relationViewContainer: + case R.id.ed_relation: showRelationListingInDialog(); break; - case R.id.transferViewContainer: + case R.id.ed_transfer: showTransferListingInDialog(); break; + case R.id.iv_back: + onBackPressed(); + break; + case R.id.btn_submit: + this.presenterInterface.addRecipient(ed_firstname.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 + ); + break; } } private void showTransferListingInDialog() { - + if (transferListingDialog == null) + transferListingDialog = new RecipientTransferListingDialog(); + transferListingDialog.setListener(this); + transferListingDialog.setTransferReasonData(this.transferReasonList); + transferListingDialog.show(getFragmentManager(), "RecipientCountryListingDialog"); } private void showRelationListingInDialog() { - + if (relationListingDialog == null) + relationListingDialog = new RecipientRelationListingDialog(); + relationListingDialog.setListener(this); + relationListingDialog.setTransferReasonData(this.relationList); + relationListingDialog.show(getFragmentManager(), "RecipientCountryListingDialog"); } private void showDistrictListingInDialog() { - + if (districtListingDialog == null) + districtListingDialog = new RecipientDistrictListingDialog(); + districtListingDialog.setListener(this); + if (this.selectedProvince != null) { + districtListingDialog.setDistrictData(this.selectedProvince.getDistrict()); + districtListingDialog.show(getFragmentManager(), "RecipientProvinceListingDialog"); + } else { + showToastMessage("Select a State/Province first."); + } } private void showProvinceListingInDialog() { - if(provinceListingDialog==null) - provinceListingDialog=new RecipientProvinceListingDialog(); + if (provinceListingDialog == null) + provinceListingDialog = new RecipientProvinceListingDialog(); provinceListingDialog.setListener(this); - if(this.selectedCountry!=null) { - provinceListingDialog.setCountryPaymentData(this.selectedCountry.getProvinces()); - provinceListingDialog.show(getFragmentManager(),"RecipientProvinceListingDialog"); - } - else{ - showToastMessage("Select a country first."); + if (this.selectedCountry != null) { + provinceListingDialog.setProvinceData(this.selectedCountry.getProvinces()); + provinceListingDialog.show(getFragmentManager(), "RecipientProvinceListingDialog"); + } else { + showToastMessage("Select a Country first."); } } @@ -209,38 +256,80 @@ public class RecipientV2Activity extends BaseActivity implements View.OnClickLis if (recipientCountryListingDialog == null) recipientCountryListingDialog = new RecipientCountryListingDialog(); recipientCountryListingDialog.setListener(this); - recipientCountryListingDialog.setCountryPaymentData(this.countryList); - recipientCountryListingDialog.show(getFragmentManager(),"RecipientCountryListingDialog"); + recipientCountryListingDialog.setCountryData(this.countryList); + recipientCountryListingDialog.show(getFragmentManager(), "RecipientCountryListingDialog"); } @Override public void onCountrySelected(CountryDetailModel countryPaymentService) { - this.selectedCountry=countryPaymentService; + this.selectedCountry = countryPaymentService; this.ed_country.setText(countryPaymentService.getName()); - if(countryPaymentService.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) - { + if (countryPaymentService.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) { ed_province.setText(""); - selectedProvince=null; + selectedProvince = null; + selectedDistrict=null; provinceViewContainer.setVisibility(View.VISIBLE); - } - else - { + districtViewContainer.setVisibility(View.VISIBLE); + } else { ed_province.setText(""); - selectedProvince=null; + ed_district.setText(""); + selectedProvince = null; + selectedDistrict=null; provinceViewContainer.setVisibility(View.GONE); + districtViewContainer.setVisibility(View.GONE); + } + if (recipientCountryListingDialog != null) { + recipientCountryListingDialog.dismiss(); + recipientCountryListingDialog=null; } + } @Override public void showRelatedData(RecipientRelatedModel data) { - this.transferReasonList=data.getTransferReasons(); - this.countryList=data.getCountry(); - this.relationList=data.getRelations(); + this.transferReasonList = data.getTransferReasons(); + this.countryList = data.getCountry(); + this.relationList = data.getRelations(); } @Override public void onProvinceSelected(ProvinceDetailModel provinceDetailModel) { - this.selectedProvince=provinceDetailModel; + this.selectedProvince = provinceDetailModel; + this.ed_province.setText(this.selectedProvince.getText()); + if (provinceListingDialog != null) { + provinceListingDialog.dismiss(); + provinceListingDialog=null; + } + } + + @Override + public void onDistrictSelected(DistrictDetailModel districtDetailModel) { + this.selectedDistrict = districtDetailModel; + this.ed_district.setText(this.selectedDistrict.getText()); + if (districtListingDialog != null) { + districtListingDialog.dismiss(); + districtListingDialog=null; + } + } + + @Override + public void onTransferReasonSelected(TransferDetailModel transferDetailModel) { + this.selectedTransferReason = transferDetailModel; + this.ed_transfer.setText(this.selectedTransferReason.getText()); + if (transferListingDialog != null) { + transferListingDialog.dismiss(); + transferListingDialog=null; + } + } + + @Override + public void onRelationSelected(RelationDetailModel relationDetailModel) { + this.seletedRelation = relationDetailModel; + this.ed_relation.setText(this.seletedRelation.getText()); + if (relationListingDialog != null) { + relationListingDialog.dismiss(); + relationListingDialog=null; + } } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java index 0e8402dd..8033dddb 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java @@ -121,5 +121,6 @@ public class API_URL { public static final String EXCHANGE_RATE_SERVICE="mobile/countriesServices"; public static final String CALCULATE_EXCHANGE_RATE = "mobile/calculateDefExRate"; + public static final String GET_ALL_RECIPIENT_INFO = "mobile/loadform/receiver"; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java index 409a0c82..c20ebfed 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java @@ -33,6 +33,7 @@ import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.Dis import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.Relation; import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.States; import com.gmeremit.online.gmeremittance_native.recipient.model.response_data.AllReceipientResponseData; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResendCodeBodyRequest; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResetPasswordRequestBody; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.SecretAnswerRequestBody; @@ -528,4 +529,8 @@ public interface ApiEndpoints { @Headers("Content-Type: application/json") Observable calculateExchangeRateV2(@Header("Authorization") String token, @Body() JsonObject jsonObject); + @GET(API_URL.GET_ALL_RECIPIENT_INFO) + @Headers("Content-Type: application/json") + Observable getRecipientRelatedDataV2(@Header("Authorization") String token); + } diff --git a/app/src/main/res/layout/activity_recipient_v2.xml b/app/src/main/res/layout/activity_recipient_v2.xml index 8574a761..eb2462e9 100644 --- a/app/src/main/res/layout/activity_recipient_v2.xml +++ b/app/src/main/res/layout/activity_recipient_v2.xml @@ -36,6 +36,8 @@ android:padding="10dp"> @@ -108,10 +117,14 @@ @@ -138,10 +153,13 @@ @@ -169,6 +188,8 @@ @@ -213,6 +238,8 @@ diff --git a/app/src/main/res/layout/dialog_country_listing.xml b/app/src/main/res/layout/dialog_country_listing.xml index 0cd00353..15e30d37 100644 --- a/app/src/main/res/layout/dialog_country_listing.xml +++ b/app/src/main/res/layout/dialog_country_listing.xml @@ -9,6 +9,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> + android:textSize="18sp" + android:paddingStart="8dp" + android:paddingTop="12dp" + android:paddingBottom="12dp" + + android:layout_height="wrap_content" + android:paddingLeft="8dp" + tools:ignore="RtlSymmetry" />