preyearegmi
6 years ago
26 changed files with 1346 additions and 15 deletions
-
6app/src/main/AndroidManifest.xml
-
12app/src/main/java/com/gmeremit/online/gmeremittance_native/agentsV2/view/AgentListV2Activity.java
-
6app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseContractInterface.java
-
4app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java
-
62app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientCountryListingRvAdapter.java
-
59app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/adapter/RecipientProvinceListingRvAdapter.java
-
171app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java
-
65app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/CountryDetailModel.java
-
30app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java
-
43app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java
-
55app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedDataApiResponse.java
-
47app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RecipientRelatedModel.java
-
31app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java
-
30app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java
-
4app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java
-
38app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java
-
3app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2PresenterInterface.java
-
38app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListRvViewHolder.java
-
184app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientCountryListingDialog.java
-
29app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListRvViewHolder.java
-
186app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientProvinceListingDialog.java
-
233app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/view/RecipientV2Activity.java
-
1app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java
-
12app/src/main/res/layout/activity_recipient_v2.xml
-
10app/src/main/res/layout/provincelist_item_view.xml
@ -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<RecipientCountryListRvViewHolder> { |
|||
|
|||
private final RecipientCountryListingDialog.CountrySelectionListener listener; |
|||
private List<CountryDetailModel> 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<CountryDetailModel> data) { |
|||
if(data!=null) |
|||
{ |
|||
this.data=data; |
|||
notifyDataSetChanged(); |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
@ -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<RecipientProvinceListRvViewHolder> { |
|||
|
|||
private final RecipientProvinceListingDialog.ProvinceSelectionListener listener; |
|||
private List<ProvinceDetailModel> 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<ProvinceDetailModel> data) { |
|||
if(data!=null) |
|||
{ |
|||
this.data=data; |
|||
notifyDataSetChanged(); |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
@ -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<ProvinceDetailModel> 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<ProvinceDetailModel> getProvinces() { |
|||
return provinces; |
|||
} |
|||
|
|||
public void setProvinces(List<ProvinceDetailModel> provinces) { |
|||
this.provinces = provinces; |
|||
} |
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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<DistrictDetailModel> 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<DistrictDetailModel> getDistrict() { |
|||
return district; |
|||
} |
|||
|
|||
public void setDistrict(List<DistrictDetailModel> district) { |
|||
this.district = district; |
|||
} |
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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<CountryDetailModel> country = null; |
|||
@SerializedName("TransferReasons") |
|||
@Expose |
|||
private List<TransferDetailModel> transferReasons = null; |
|||
@SerializedName("Relations") |
|||
@Expose |
|||
private List<RelationDetailModel> relations = null; |
|||
|
|||
public List<CountryDetailModel> getCountry() { |
|||
return country; |
|||
} |
|||
|
|||
public void setCountry(List<CountryDetailModel> country) { |
|||
this.country = country; |
|||
} |
|||
|
|||
public List<TransferDetailModel> getTransferReasons() { |
|||
return transferReasons; |
|||
} |
|||
|
|||
public void setTransferReasons(List<TransferDetailModel> transferReasons) { |
|||
this.transferReasons = transferReasons; |
|||
} |
|||
|
|||
public List<RelationDetailModel> getRelations() { |
|||
return relations; |
|||
} |
|||
|
|||
public void setRelations(List<RelationDetailModel> relations) { |
|||
this.relations = relations; |
|||
} |
|||
|
|||
|
|||
} |
@ -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; |
|||
} |
|||
|
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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); |
|||
} |
|||
} |
@ -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<CountryDetailModel> 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<CountryDetailModel> 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<CountryDetailModel> 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); |
|||
} |
|||
} |
@ -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); |
|||
} |
|||
} |
@ -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<ProvinceDetailModel> 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<ProvinceDetailModel> 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<ProvinceDetailModel> 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); |
|||
} |
|||
} |
@ -0,0 +1,10 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
xmlns:android="http://schemas.android.com/apk/res/android" |
|||
android:id="@+id/generalName" |
|||
android:layout_width="match_parent" |
|||
android:gravity="center_vertical|start" |
|||
android:textSize="14sp" |
|||
android:padding="8dp" |
|||
android:layout_height="wrap_content"/> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue