From 05d246a266c9558fcaaad0e3baea2546dab63dcc Mon Sep 17 00:00:00 2001 From: preyearegmi Date: Sun, 26 Aug 2018 17:07:44 +0900 Subject: [PATCH] Province Listing Dialog added --- app/src/main/AndroidManifest.xml | 6 +- .../agentsV2/view/AgentListV2Activity.java | 12 +- .../base/BaseActivity.java | 6 + .../base/BaseContractInterface.java | 2 + .../home/view/HomeActivity.java | 4 +- .../RecipientCountryListingRvAdapter.java | 62 +++++ .../RecipientProvinceListingRvAdapter.java | 59 +++++ .../gateway/RecipientV2Gateway.java | 171 ++++++++++++- .../recipientV2/model/CountryDetailModel.java | 65 +++++ .../model/DistrictDetailModel.java | 30 +++ .../model/ProvinceDetailModel.java | 43 ++++ .../RecipientRelatedDataApiResponse.java | 55 +++++ .../model/RecipientRelatedModel.java | 47 ++++ .../model/RelationDetailModel.java | 31 +++ .../model/TransferDetailModel.java | 30 +++ .../RecipientV2InteractorInterface.java | 4 +- .../presenter/RecipientV2Presenter.java | 38 ++- .../RecipientV2PresenterInterface.java | 3 +- .../RecipientCountryListRvViewHolder.java | 38 +++ .../view/RecipientCountryListingDialog.java | 184 ++++++++++++++ .../RecipientProvinceListRvViewHolder.java | 29 +++ .../view/RecipientProvinceListingDialog.java | 186 ++++++++++++++ .../recipientV2/view/RecipientV2Activity.java | 233 +++++++++++++++++- .../gmeremittance_native/utils/Constants.java | 1 + .../main/res/layout/activity_recipient_v2.xml | 12 +- .../res/layout/provincelist_item_view.xml | 10 + 26 files changed, 1346 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientProvinceListingRvAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/CountryDetailModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedDataApiResponse.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListRvViewHolder.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListRvViewHolder.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java create mode 100644 app/src/main/res/layout/provincelist_item_view.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 943248d9..d4116f4e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -471,7 +471,11 @@ android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden" /> - + \ No newline at end of file diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/agentsV2/view/AgentListV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/agentsV2/view/AgentListV2Activity.java index 4d3b040b..97f8b34a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/agentsV2/view/AgentListV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/agentsV2/view/AgentListV2Activity.java @@ -52,6 +52,13 @@ public class AgentListV2Activity extends BaseActivity implements AgentListV2RvAd this.presenter = new AgentListV2Presenter(this); } + private void performDefaultAction(Bundle savedInstanceState) { + toolbarTitle.setText("Contacts"); + this.presenter.getAllData(); + + } + + @Override protected void onStart() { super.onStart(); @@ -69,11 +76,6 @@ public class AgentListV2Activity extends BaseActivity implements AgentListV2RvAd agentListRv.setAdapter(agentListAdapter); } - private void performDefaultAction(Bundle savedInstanceState) { - toolbarTitle.setText("Contacts"); - this.presenter.getAllData(); - - } @Override public void onContactViewClicked(String contactNumber) { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java index 79320519..739053f0 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java @@ -7,6 +7,7 @@ import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; +import android.widget.Toast; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomProgressDialog; @@ -55,6 +56,11 @@ public class BaseActivity extends AppCompatActivity implements BaseContractInter } + @Override + public void showToastMessage(String message) { + Toast.makeText(this,message,Toast.LENGTH_SHORT).show(); + } + @Override public void exitView() { finish(); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseContractInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseContractInterface.java index fd937a10..562d8e48 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseContractInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseContractInterface.java @@ -10,6 +10,8 @@ public interface BaseContractInterface { void showPopUpMessage(String message, CustomAlertDialog.AlertType alertType,CustomAlertDialog.CustomDialogActionListener listener); + void showToastMessage(String message); + void exitView(); void showKeyBoard(View view); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java index 2ed34c30..cd76ec1a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java @@ -51,6 +51,7 @@ import com.gmeremit.online.gmeremittance_native.invite.view.InviteActivity; import com.gmeremit.online.gmeremittance_native.load_more.view.LoadMoreActivity; import com.gmeremit.online.gmeremittance_native.payout_location.view.PayoutMultipleLocationActivity; import com.gmeremit.online.gmeremittance_native.recipient.view.RecipientsListActivity; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientV2Activity; import com.gmeremit.online.gmeremittance_native.settings.view.SettingsView; import com.gmeremit.online.gmeremittance_native.splash_screen.view.SplashScreen; import com.gmeremit.online.gmeremittance_native.static_pages.view.AboutGME; @@ -432,7 +433,8 @@ public class HomeActivity extends AppCompatActivity implements HomeContract.Home case R.id.bottom_agent_layout: bottomAgentLayout.setClickable(false); // startActivity(new Intent(getApplicationContext(), PayoutMultipleLocationActivity.class)); - startActivity(new Intent(getApplicationContext(), AgentListV2Activity.class)); +// startActivity(new Intent(getApplicationContext(), AgentListV2Activity.class)); + startActivity(new Intent(getApplicationContext(), RecipientV2Activity.class)); break; case R.id.bottom_profile_layout: bottomProfileLayout.setClickable(false); 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 new file mode 100644 index 00000000..fae54690 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java @@ -0,0 +1,62 @@ +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.customwidgets.exchangecountrylistingdialog.CountryFlagMapper; +import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.CountryPaymentService; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientCountryListRvViewHolder; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientCountryListingDialog; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientCountryListingRvAdapter extends RecyclerView.Adapter { + + private final RecipientCountryListingDialog.CountrySelectionListener listener; + private List data; + + public RecipientCountryListingRvAdapter(RecipientCountryListingDialog.CountrySelectionListener listener) { + this.data=new ArrayList<>(); + this.listener=listener; + } + + + @Override + public RecipientCountryListRvViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.countrylist_item_view, parent, false); + return new RecipientCountryListRvViewHolder(view); } + + @Override + public void onBindViewHolder(final RecipientCountryListRvViewHolder holder, int position) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(listener!=null) + listener.onCountrySelected(data.get(holder.getAdapterPosition())); + } + }); + CountryDetailModel countryPaymentService= data.get(position); + holder.setFlagImage(CountryFlagMapper.getFlagFromCountryCode(countryPaymentService.getId())); + holder.setCountryName(countryPaymentService.getName()); + } + + @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/RecipientProvinceListingRvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientProvinceListingRvAdapter.java new file mode 100644 index 00000000..3135fd08 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientProvinceListingRvAdapter.java @@ -0,0 +1,59 @@ +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.ProvinceDetailModel; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListRvViewHolder; +import com.gmeremit.online.gmeremittance_native.recipientV2.view.RecipientProvinceListingDialog; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientProvinceListingRvAdapter extends RecyclerView.Adapter { + + private final RecipientProvinceListingDialog.ProvinceSelectionListener listener; + private List data; + + public RecipientProvinceListingRvAdapter(RecipientProvinceListingDialog.ProvinceSelectionListener 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.onProvinceSelected(data.get(holder.getAdapterPosition())); + } + }); + ProvinceDetailModel 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 70b7e0db..7bbe4c36 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 @@ -1,6 +1,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.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -9,13 +10,179 @@ import io.reactivex.Observable; public class RecipientV2Gateway extends PrivilegedGateway implements RecipientV2InteractorInterface.RecipientV2GatewayInterface { - private final RecipientV2InteractorInterface interactor; + String mockedData="{\n" + + "\"ErrorCode\": \"0\",\n" + + "\"Msg\": \"success\",\n" + + "\"Id\": \"\",\n" + + "\"Data\": {\n" + + "\"Country\": [\n" + + "{\n" + + "\"Name\": \"Vietnam\",\n" + + "\"Id\": \"203\",\n" + + "\"IsProvienceReq\": \"true\",\n" + + "\"Code\": \"VN\",\n" + + "\"Provinces\": [\n" + + "{\n" + + "\"id\": \"019\",\n" + + "\"text\": \"AN GIANG\",\n" + + "\"District\": [\n" + + "{\n" + + "\"id\": \"1200\",\n" + + "\"text\": \"sdfsf\"\n" + + "}\n" + + "]\n" + + "}\n" + + "]\n" + + "}\n" + + "],\n" + + "\"TransferReasons\": [\n" + + "{\n" + + "\"id\": \"10992\",\n" + + "\"text\": \"Lending\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8055\",\n" + + "\"text\": \"Business travel\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8056\",\n" + + "\"text\": \"Personal travels and tours\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8057\",\n" + + "\"text\": \"Educational expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8058\",\n" + + "\"text\": \"Medical Expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8059\",\n" + + "\"text\": \"Household expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8060\",\n" + + "\"text\": \"Family maintenance\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8061\",\n" + + "\"text\": \"Savings\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8062\",\n" + + "\"text\": \"EMI payment to Bank and Nonbanking financial institutions\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8063\",\n" + + "\"text\": \"Loan payment / Interest\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8064\",\n" + + "\"text\": \"Salary / Commission\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8065\",\n" + + "\"text\": \"Utility payment\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8066\",\n" + + "\"text\": \"Purchase of land / property\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8067\",\n" + + "\"text\": \"Rent\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8068\",\n" + + "\"text\": \"Repair and maintenance\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8069\",\n" + + "\"text\": \"Commission\"\n" + + "}\n" + + "],\n" + + "\"Relations\": [\n" + + "{\n" + + "\"id\": \"10992\",\n" + + "\"text\": \"Lending\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8055\",\n" + + "\"text\": \"Business travel\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8056\",\n" + + "\"text\": \"Personal travels and tours\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8057\",\n" + + "\"text\": \"Educational expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8058\",\n" + + "\"text\": \"Medical Expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8059\",\n" + + "\"text\": \"Household expenses\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8060\",\n" + + "\"text\": \"Family maintenance\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8061\",\n" + + "\"text\": \"Savings\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8062\",\n" + + "\"text\": \"EMI payment to Bank and Nonbanking financial institutions\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8063\",\n" + + "\"text\": \"Loan payment / Interest\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8064\",\n" + + "\"text\": \"Salary / Commission\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8065\",\n" + + "\"text\": \"Utility payment\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8066\",\n" + + "\"text\": \"Purchase of land / property\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8067\",\n" + + "\"text\": \"Rent\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8068\",\n" + + "\"text\": \"Repair and maintenance\"\n" + + "},\n" + + "{\n" + + "\"id\": \"8069\",\n" + + "\"text\": \"Commission\"\n" + + "}\n" + + "]\n" + + "}\n" + + "}"; + + private final RecipientV2InteractorInterface interactor; public RecipientV2Gateway(RecipientV2InteractorInterface agentListV2InteractorInterface) { this.interactor=agentListV2InteractorInterface; } - + @Override + public Observable getRelatedDataFromServer(String auth) { + RecipientRelatedDataApiResponse recipientRelatedDataApiResponse; + Gson gson=new GsonBuilder().create(); + recipientRelatedDataApiResponse=gson.fromJson(mockedData,RecipientRelatedDataApiResponse.class); + return Observable.just(recipientRelatedDataApiResponse); + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/CountryDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/CountryDetailModel.java new file mode 100644 index 00000000..c601ee6a --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/CountryDetailModel.java @@ -0,0 +1,65 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class CountryDetailModel { + + @SerializedName("Name") + @Expose + private String name; + @SerializedName("Id") + @Expose + private String id; + @SerializedName("IsProvienceReq") + @Expose + private String isProvienceReq; + @SerializedName("Code") + @Expose + private String code; + @SerializedName("Provinces") + @Expose + private List provinces = null; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIsProvienceReq() { + return isProvienceReq; + } + + public void setIsProvienceReq(String isProvienceReq) { + this.isProvienceReq = isProvienceReq; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public List getProvinces() { + return provinces; + } + + public void setProvinces(List provinces) { + this.provinces = provinces; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java new file mode 100644 index 00000000..09f374f7 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java @@ -0,0 +1,30 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class DistrictDetailModel { + + @SerializedName("id") + @Expose + private String id; + @SerializedName("text") + @Expose + private String text; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java new file mode 100644 index 00000000..8f2d68e7 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java @@ -0,0 +1,43 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class ProvinceDetailModel { + + @SerializedName("id") + @Expose + private String id; + @SerializedName("text") + @Expose + private String text; + @SerializedName("District") + @Expose + private List district = null; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public List getDistrict() { + return district; + } + + public void setDistrict(List district) { + this.district = district; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedDataApiResponse.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedDataApiResponse.java new file mode 100644 index 00000000..ad5916d9 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedDataApiResponse.java @@ -0,0 +1,55 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.gmeremit.online.gmeremittance_native.agentsV2.model.AgentInfoModel; +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class RecipientRelatedDataApiResponse { + + @SerializedName("ErrorCode") + @Expose + private String errorCode; + @SerializedName("Msg") + @Expose + private String msg; + @SerializedName("Id") + @Expose + private String id; + @SerializedName("Data") + @Expose + private RecipientRelatedModel data; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public RecipientRelatedModel getData() { + return data; + } + + public void setData(RecipientRelatedModel data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedModel.java new file mode 100644 index 00000000..0a5cb0ad --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedModel.java @@ -0,0 +1,47 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class RecipientRelatedModel { + + + + @SerializedName("Country") + @Expose + private List country = null; + @SerializedName("TransferReasons") + @Expose + private List transferReasons = null; + @SerializedName("Relations") + @Expose + private List relations = null; + + public List getCountry() { + return country; + } + + public void setCountry(List country) { + this.country = country; + } + + public List getTransferReasons() { + return transferReasons; + } + + public void setTransferReasons(List transferReasons) { + this.transferReasons = transferReasons; + } + + public List getRelations() { + return relations; + } + + public void setRelations(List relations) { + this.relations = relations; + } + + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java new file mode 100644 index 00000000..9748b7d8 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java @@ -0,0 +1,31 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class RelationDetailModel { + + @SerializedName("id") + @Expose + private String id; + @SerializedName("text") + @Expose + private String text; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java new file mode 100644 index 00000000..502d64ae --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java @@ -0,0 +1,30 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class TransferDetailModel { + + @SerializedName("id") + @Expose + private String id; + @SerializedName("text") + @Expose + private String text; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java index 4524007a..5fa0704a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java @@ -2,6 +2,7 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter; import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import io.reactivex.Observable; @@ -10,7 +11,6 @@ public interface RecipientV2InteractorInterface extends BaseInteractorInterface interface RecipientV2GatewayInterface extends PrivilegedGatewayInterface { - - + Observable getRelatedDataFromServer(String 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 3726058a..549328b6 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 @@ -3,6 +3,8 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter; import com.gmeremit.online.gmeremittance_native.agentsV2.gateway.AgentListV2Gateway; 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.RecipientRelatedDataApiResponse; 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; @@ -10,22 +12,32 @@ import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverRe import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; public class RecipientV2Presenter extends BasePresenter implements RecipientV2PresenterInterface, RecipientV2InteractorInterface { private final RecipientV2ContractInterface view; + private final RecipientV2GatewayInterface gateway; CompositeDisposable compositeDisposable; public RecipientV2Presenter(RecipientV2ContractInterface view) { this.view = view; - this.compositeDisposable = new CompositeDisposable(); + this.gateway = new RecipientV2Gateway(this); } @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()) + ); } @@ -36,6 +48,30 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr compositeDisposable.dispose(); } + private class RecipientRelatedDataObserver extends GenericApiObserverResponse + { + + @Override + protected void onSuccess(RecipientRelatedDataApiResponse recipientRelatedDataApiResponse) { + if(recipientRelatedDataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) + { + view.showRelatedData(recipientRelatedDataApiResponse.getData()); + } + else + { + view.showPopUpMessage(recipientRelatedDataApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED,null); + } + } + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.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 cd14ccc6..95f7b014 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,6 +2,7 @@ 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.RecipientRelatedModel; import java.util.List; @@ -11,6 +12,6 @@ public interface RecipientV2PresenterInterface extends BasePresenterInterface { interface RecipientV2ContractInterface extends BaseContractInterface { - + void showRelatedData(RecipientRelatedModel data); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListRvViewHolder.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListRvViewHolder.java new file mode 100644 index 00000000..3df20736 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListRvViewHolder.java @@ -0,0 +1,38 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.view; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.gmeremit.online.gmeremittance_native.R; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class RecipientCountryListRvViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.countryName) + TextView countryNameTxtView; + + @BindView(R.id.countryFlagImageView) + ImageView countryImageView; + + + public RecipientCountryListRvViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } + + public void setFlagImage(int resId) + { + if(resId!=-1) + countryImageView.setBackgroundResource(resId); + } + + public void setCountryName(String name) + { + if(name!=null) + countryNameTxtView.setText(name); + } +} 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 new file mode 100644 index 00000000..9429ecc3 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java @@ -0,0 +1,184 @@ +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 com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; +import com.gmeremit.online.gmeremittance_native.recipientV2.adapter.RecipientCountryListingRvAdapter; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; + +import java.util.ArrayList; +import java.util.List; + +public class RecipientCountryListingDialog extends DialogFragment implements View.OnClickListener, TextWatcher { + + private List data; + private CountrySelectionListener listener; + private RecyclerView countryListRv; + private View cancelButton; + private EditText noCountryFoundView; + private EditText searchEditTextView; + private RecipientCountryListingRvAdapter countryListingRvAdapter; + private Window window; + private boolean windowHieghtNotFixed=true; + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_country_listing, null); + countryListRv = view.findViewById(R.id.countryListRv); + noCountryFoundView = view.findViewById(R.id.noCountryFoundTextView); + 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_country_listing_gray); + + } catch (NullPointerException e) { + + } + initialize(); + return dialog; + } + + private void initialize() { + cancelButton.setOnClickListener(this); + searchEditTextView.addTextChangedListener(this); + countryListingRvAdapter = new RecipientCountryListingRvAdapter(this.listener); + countryListingRvAdapter.setData(this.data); + countryListRv.setAdapter(countryListingRvAdapter); + LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); + countryListRv.addItemDecoration(lineDividerItemDecoration); + + } + + public void setListener(CountrySelectionListener listener) { + this.listener = listener; + } + + public void setCountryPaymentData(List data) { + if (data != null) { + 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 = countryListRv.getHeight(); + noCountryFoundView.setHeight(rvHeight); + countryListRv.setVisibility(View.INVISIBLE); + noCountryFoundView.setVisibility(View.VISIBLE); + } else { + noCountryFoundView.setVisibility(View.INVISIBLE); + countryListRv.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 (countryListingRvAdapter != null) { + searchForCountry(s.toString()); + } + } + + private void searchForCountry(String s) { + if (this.data != null) { + if (s.length() > 0) { + List searchedData = new ArrayList<>(); + for (CountryDetailModel item : data) { + if (item.getId().toLowerCase().contains(s.toLowerCase())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + showCountryNotFoundView(false); + else + showCountryNotFoundView(true); + countryListingRvAdapter.setData(searchedData); + + } else + countryListingRvAdapter.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 CountrySelectionListener { + void onCountrySelected(CountryDetailModel countryPaymentService); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListRvViewHolder.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListRvViewHolder.java new file mode 100644 index 00000000..c77be541 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListRvViewHolder.java @@ -0,0 +1,29 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.view; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.gmeremit.online.gmeremittance_native.R; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class RecipientProvinceListRvViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.generalName) + TextView generalName; + + public RecipientProvinceListRvViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } + + + + public void setName(String name) + { + if(name!=null) + generalName.setText(name); + } +} 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 new file mode 100644 index 00000000..cc847686 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java @@ -0,0 +1,186 @@ +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 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; +import java.util.List; + +public class RecipientProvinceListingDialog extends DialogFragment implements View.OnClickListener, TextWatcher { + + private List data; + private ProvinceSelectionListener listener; + private RecyclerView provinceRv; + private View cancelButton; + private EditText noProvinceFoundView; + private EditText searchEditTextView; + private RecipientProvinceListingRvAdapter provinceListingRvAdapter; + private Window window; + private boolean windowHieghtNotFixed=true; + + @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); + 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_country_listing_gray); + + } catch (NullPointerException e) { + + } + initialize(); + return dialog; + } + + private void initialize() { + cancelButton.setOnClickListener(this); + searchEditTextView.addTextChangedListener(this); + provinceListingRvAdapter = new RecipientProvinceListingRvAdapter(this.listener); + provinceListingRvAdapter.setData(this.data); + provinceRv.setAdapter(provinceListingRvAdapter); + LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); + provinceRv.addItemDecoration(lineDividerItemDecoration); + noProvinceFoundView.setText("No Province found."); + + } + + public void setListener(ProvinceSelectionListener listener) { + this.listener = listener; + } + + public void setCountryPaymentData(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 (provinceListingRvAdapter != null) { + searchForCountry(s.toString()); + } + } + + private void searchForCountry(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())) { + searchedData.add(item); + } + } + if (searchedData.size() > 0) + showCountryNotFoundView(false); + else + showCountryNotFoundView(true); + provinceListingRvAdapter.setData(searchedData); + + } else + provinceListingRvAdapter.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 ProvinceSelectionListener { + void onProvinceSelected(ProvinceDetailModel 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 a0e7a208..1398b5c5 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 @@ -2,14 +2,245 @@ 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.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.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 com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2Presenter; +import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2PresenterInterface; +import com.gmeremit.online.gmeremittance_native.utils.Constants; -public class RecipientV2Activity extends AppCompatActivity { +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class RecipientV2Activity extends BaseActivity implements View.OnClickListener, RecipientCountryListingDialog.CountrySelectionListener,RecipientV2PresenterInterface.RecipientV2ContractInterface, RecipientProvinceListingDialog.ProvinceSelectionListener { + + + @BindView(R.id.iv_back) + View iv_back; + + @BindView(R.id.iv_cancel) + View iv_cancel; + + @BindView(R.id.toolbar_title) + GmeTextView toolbarTitle; + + @BindView(R.id.ed_firstname) + EditText ed_firstname; + @BindView(R.id.ed_middlename) + EditText ed_middlename; + @BindView(R.id.ed_lastname) + EditText ed_lastname; + @BindView(R.id.ed_country) + EditText ed_country; + @BindView(R.id.ed_province) + EditText ed_province; + @BindView(R.id.ed_district) + EditText ed_district; + @BindView(R.id.ed_address) + EditText ed_address; + @BindView(R.id.ed_relation) + EditText ed_relation; + @BindView(R.id.ed_mobile_no) + EditText ed_mobile_no; + @BindView(R.id.ed_email) + EditText ed_email; + @BindView(R.id.ed_transfer) + EditText ed_transfer; + + @BindView(R.id.countryViewContainer) + ViewGroup countryViewContainer; + @BindView(R.id.provinceViewContainer) + ViewGroup provinceViewContainer; + @BindView(R.id.districtViewContainer) + ViewGroup districtViewContainer; + @BindView(R.id.relationViewContainer) + ViewGroup relationViewContainer; + @BindView(R.id.transferViewContainer) + ViewGroup transferViewContainer; + + private RecipientV2PresenterInterface presenterInterface; + private RecipientCountryListingDialog recipientCountryListingDialog; + private CountryDetailModel selectedCountry; + private ProvinceDetailModel selectedProvince; + private List transferReasonList; + private List countryList; + private List relationList; + private RecipientProvinceListingDialog provinceListingDialog; + + /** + * ed_firstname + * ed_middlename + * ed_lastname + * ed_country + * ed_province + * ed_district + * ed_address + * ed_relation + * ed_mobile_no + * ed_email + * ed_transfer + *

+ *

+ *

+ * firstnameWrapper + * middlenameWrapper + * lastnameWrapper + * countryWrapper + * provinceWrapper + * districtWrapper + * addressWrapper + * relationWrapper + * mobileWrapper + * emailWrapper + * transferWrapper + *

+ * countryViewContainer + * provinceViewContainer + * districtViewContainer + * relationViewContainer + * transferViewContainer + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recipient_v2); + ButterKnife.bind(this); + init(); + performDefaultAction(savedInstanceState); + } + + + private void init() { + iv_cancel.setVisibility(View.INVISIBLE); + presenterInterface=new RecipientV2Presenter(this); + + } + + private void performDefaultAction(Bundle savedInstanceState) { + toolbarTitle.setText("Contacts"); + //TODO modify this for reciepient CRUD + presenterInterface.getAllData(); + } + + @Override + protected void onStart() { + super.onStart(); + countryViewContainer.setOnClickListener(this); + provinceViewContainer.setOnClickListener(this); + districtViewContainer.setOnClickListener(this); + relationViewContainer.setOnClickListener(this); + transferViewContainer.setOnClickListener(this); + } + + @Override + protected void onStop() { + super.onStop(); + countryViewContainer.setOnClickListener(null); + provinceViewContainer.setOnClickListener(null); + districtViewContainer.setOnClickListener(null); + relationViewContainer.setOnClickListener(null); + transferViewContainer.setOnClickListener(null); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.countryViewContainer: + showCountryListingInDialog(); + break; + + case R.id.provinceViewContainer: + showProvinceListingInDialog(); + break; + + case R.id.districtViewContainer: + showDistrictListingInDialog(); + break; + + case R.id.relationViewContainer: + showRelationListingInDialog(); + break; + + case R.id.transferViewContainer: + showTransferListingInDialog(); + break; + } + } + + private void showTransferListingInDialog() { + + } + + private void showRelationListingInDialog() { + + } + + private void showDistrictListingInDialog() { + + } + + private void showProvinceListingInDialog() { + 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."); + } + } + + private void showCountryListingInDialog() { + if (recipientCountryListingDialog == null) + recipientCountryListingDialog = new RecipientCountryListingDialog(); + recipientCountryListingDialog.setListener(this); + recipientCountryListingDialog.setCountryPaymentData(this.countryList); + recipientCountryListingDialog.show(getFragmentManager(),"RecipientCountryListingDialog"); + } + + @Override + public void onCountrySelected(CountryDetailModel countryPaymentService) { + this.selectedCountry=countryPaymentService; + this.ed_country.setText(countryPaymentService.getName()); + if(countryPaymentService.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) + { + ed_province.setText(""); + selectedProvince=null; + provinceViewContainer.setVisibility(View.VISIBLE); + } + else + { + ed_province.setText(""); + selectedProvince=null; + provinceViewContainer.setVisibility(View.GONE); + } + } + + @Override + public void showRelatedData(RecipientRelatedModel data) { + this.transferReasonList=data.getTransferReasons(); + this.countryList=data.getCountry(); + this.relationList=data.getRelations(); + + } + + @Override + public void onProvinceSelected(ProvinceDetailModel provinceDetailModel) { + this.selectedProvince=provinceDetailModel; } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java index e61af38f..76024d3a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java @@ -132,6 +132,7 @@ public class Constants { public static final String CALC_BY_SENDER = "c"; public static final String EXCHANGE_RATE_SENDER_DEFAULT_CURRENCY = "KRW"; public static final String SUCCESS_CODE_V2 = "0"; + public static final String TRUE_STRING = "True"; // public static final String DEVICEID = "gme1234apps12sanam"; /* public static final String DEVICEID = "iakhycas"; new@test.com pw: test*/ // public static String key = Utils.toBase64("172017F9EC11222E8107142733:QRK2UM0Q:" + DEVICEID); diff --git a/app/src/main/res/layout/activity_recipient_v2.xml b/app/src/main/res/layout/activity_recipient_v2.xml index b05691b5..8574a761 100644 --- a/app/src/main/res/layout/activity_recipient_v2.xml +++ b/app/src/main/res/layout/activity_recipient_v2.xml @@ -93,6 +93,8 @@ @@ -121,6 +123,8 @@ @@ -149,6 +153,8 @@ @@ -177,7 +183,7 @@ @@ -250,6 +258,8 @@ diff --git a/app/src/main/res/layout/provincelist_item_view.xml b/app/src/main/res/layout/provincelist_item_view.xml new file mode 100644 index 00000000..6132dab6 --- /dev/null +++ b/app/src/main/res/layout/provincelist_item_view.xml @@ -0,0 +1,10 @@ + + +