From d29b5030598e4b0662cc551e4c596024d9a1f99c Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Tue, 5 Nov 2019 17:34:22 +0545 Subject: [PATCH] Local top up development done --- .../maskedittext/GmeMaskedEditText.java | 8 +- .../maskedittext/MaskedTextWatcher.java | 16 +- .../local/model/LocalTopUpDetailDTO.java | 63 +++++ .../topup/local/model/PlanInfo.java | 6 +- .../local/presenter/LocalTopUpPresenter.java | 57 ++++- .../LocalTopUpPresenterInterface.java | 5 + .../topup/local/view/LocalTopUpActivity.java | 44 +++- .../FixedChargeLocalTopupFragment.java | 83 ++++--- .../services/regular/DenoListRvAdapter.java | 2 + .../regular/RegularLocalTopupFragment.java | 1 + .../gmeremittance_native/utils/Constants.java | 1 + .../main/res/layout/activity_local_top_up.xml | 1 + .../layout/fragment_data_pack_local_topup.xml | 11 +- .../res/layout/fragment_fixed_local_topup.xml | 26 +- .../layout/fragment_regular_local_topup.xml | 13 +- .../res/layout/layout_local_top_up_detail.xml | 229 ++++++++++++++++++ 16 files changed, 499 insertions(+), 67 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpDetailDTO.java create mode 100644 app/src/main/res/layout/layout_local_top_up_detail.xml diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/GmeMaskedEditText.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/GmeMaskedEditText.java index f748ebac..d60b6130 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/GmeMaskedEditText.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/GmeMaskedEditText.java @@ -99,9 +99,9 @@ public class GmeMaskedEditText extends GmeEditText { case 2: if (prefixText.length() > 0) - phoneMask = "-###-####-######"; + phoneMask = "-####-#####"; else - phoneMask = "###-####-######"; + phoneMask = "###-####-#####"; isAlphaNumeric = false; setInputType(InputType.TYPE_CLASS_PHONE); if (maskedTextWatcher != null) @@ -124,8 +124,8 @@ public class GmeMaskedEditText extends GmeEditText { } - public void setValueListener(ValueListener listener) { - maskedTextWatcher.setValueListener(listener); + public void setValueListener(ValueListener listener,boolean truncatePrefix) { + maskedTextWatcher.setValueListener(listener,truncatePrefix); } public interface ValueListener { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/MaskedTextWatcher.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/MaskedTextWatcher.java index 0df707be..6ae970a8 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/MaskedTextWatcher.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/MaskedTextWatcher.java @@ -18,6 +18,7 @@ class MaskedTextWatcher implements TextWatcher { private GmeMaskedEditText.ValueListener valueListener; private final Pattern maskPattern; private final EditText editText; + private boolean shouldTruncatePrefix; MaskedTextWatcher(String maskString, String prefixText, String maskSymbol, EditText editText, boolean isAlphaNumeric) { this.maskString = maskString; @@ -28,8 +29,9 @@ class MaskedTextWatcher implements TextWatcher { this.isAlphaNumeric = isAlphaNumeric; } - public void setValueListener(GmeMaskedEditText.ValueListener listener) { + public void setValueListener(GmeMaskedEditText.ValueListener listener,boolean shouldTruncatePrefix) { this.valueListener = listener; + this.shouldTruncatePrefix=shouldTruncatePrefix; } private String result = ""; @@ -114,13 +116,17 @@ class MaskedTextWatcher implements TextWatcher { } //Prepare to send to the listener the raw data that user has entered. - String phone = getRegExPattern().matcher(rawMaskBuilder.toString()).replaceAll(""); + String data = getRegExPattern().matcher(rawMaskBuilder.toString()).replaceAll(""); if (valueListener != null) { - if (prefixText.length() > 0) - valueListener.onValueChanged(phone.substring(prefixText.length() - 1)); + if (prefixText.length() > 0) { + if(shouldTruncatePrefix) + valueListener.onValueChanged(data.substring(prefixText.length() - 1)); + else + valueListener.onValueChanged(data); + } else - valueListener.onValueChanged(phone); + valueListener.onValueChanged(data); } state = EditState.EDIT; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpDetailDTO.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpDetailDTO.java new file mode 100644 index 00000000..ffaf2358 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpDetailDTO.java @@ -0,0 +1,63 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +public class LocalTopUpDetailDTO { + + private String phoneNumber,chargeType,data,voice,sms,amount; + + public LocalTopUpDetailDTO(String phoneNumber, String chargeType, String data, String voice, String sms, String amount) { + this.phoneNumber = phoneNumber; + this.chargeType = chargeType; + this.data = data; + this.voice = voice; + this.sms = sms; + this.amount = amount; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getChargeType() { + return chargeType; + } + + public void setChargeType(String chargeType) { + this.chargeType = chargeType; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getVoice() { + return voice; + } + + public void setVoice(String voice) { + this.voice = voice; + } + + public String getSms() { + return sms; + } + + public void setSms(String sms) { + this.sms = sms; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java index 1712a28e..bffa7b51 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java @@ -13,7 +13,7 @@ public class PlanInfo { private String voice; @SerializedName("Unlimited") @Expose - private Object unlimited; + private String unlimited; public String getData() { return data; @@ -31,11 +31,11 @@ public class PlanInfo { this.voice = voice; } - public Object getUnlimited() { + public String getUnlimited() { return unlimited; } - public void setUnlimited(Object unlimited) { + public void setUnlimited(String unlimited) { this.unlimited = unlimited; } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java index fa0bd67b..eaefa372 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java @@ -7,6 +7,7 @@ import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.topup.local.model.ButtonsGrid; import com.gmeremit.online.gmeremittance_native.topup.local.model.CardInfoDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpDetailDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpTxnDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpTxnRequestBodyDTO; @@ -23,6 +24,7 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; +import java.util.regex.Pattern; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -65,12 +67,11 @@ public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPres fetchUserBalance(); this.userMsisdn = gateway.getUserMsisdn(); if (userMsisdn != null && userMsisdn.length() > 0) - view.showUserMsisdn(userMsisdn); + view.showUserMsisdn(userMsisdn.replaceAll("010","")); } private void fetchUserBalance() { -// this.userCurrentBalance = gateway.getUserCurrentBalance(); - this.userCurrentBalance = "30000"; + this.userCurrentBalance = gateway.getUserCurrentBalance(); if (this.userCurrentBalance != null && this.userCurrentBalance.length() > 0) view.showCurrentBalance(Constants.KOREAN_WON + " " + Utils.formatCurrencyWithoutTruncatingDecimal(this.userCurrentBalance)); else @@ -79,7 +80,7 @@ public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPres } private boolean validateMsisdn() { - if (userMsisdn != null && userMsisdn.length() >= 11) { + if (userMsisdn != null && userMsisdn.length() == 11) { view.showUserMsisdnError(null); return true; @@ -166,6 +167,43 @@ public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPres dataTopUpValidator.isSelectedCarrierPlanValid(carrierPlan); } + @Override + public void updatePhoneNumber(String phoneNo) { + view.showUserMsisdnError(null); + if(phoneNo==null||phoneNo.length()<1) + return; + + String formattedPhoneNo=phoneNo.replaceAll("[^\\d]",""); + if(formattedPhoneNo.length()<11) + { + userMsisdn=null; + view.showUserMsisdn("010"); + view.showUserMsisdnError(getStringfromStringId(R.string.kyc_mobile_invalid_number_error)); + view.showTopUpScreens(false); + + } + else + { + formattedPhoneNo=formattedPhoneNo.substring(formattedPhoneNo.length()-11); + boolean b2= Pattern.compile("010[0-9]{8}").matcher(formattedPhoneNo).matches(); + + if(b2) { + userMsisdn=formattedPhoneNo; + view.showUserMsisdn(formattedPhoneNo.replaceAll("010","")); + } + else + { + view.showUserMsisdn("010"); + userMsisdn=null; + view.showUserMsisdnError(getStringfromStringId(R.string.kyc_mobile_invalid_number_error)); + view.showTopUpScreens(false); + } + } + + + + } + @Override public void promptPinForRegularTransaction() { if (checkIfUserHasEnabledBiometricAuth()) { @@ -403,6 +441,15 @@ public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPres if (result) { this.selectedCarrierPlan = selectedCarrierPlan; view.enableFixedTopUpButton(result, getStringfromStringId(R.string.continue_text)); + String data=null,voice=null,sms=null; + if(selectedCarrierPlan.getPlanInfo()!=null) + { + data=selectedCarrierPlan.getPlanInfo().getData()!=null&&selectedCarrierPlan.getPlanInfo().getData().length()>0?selectedCarrierPlan.getPlanInfo().getData():Constants.UNLIMITED_TEXT; + voice=selectedCarrierPlan.getPlanInfo().getVoice()!=null&&selectedCarrierPlan.getPlanInfo().getVoice().length()>0?selectedCarrierPlan.getPlanInfo().getVoice():Constants.UNLIMITED_TEXT; + sms=selectedCarrierPlan.getPlanInfo().getUnlimited()!=null&&selectedCarrierPlan.getPlanInfo().getUnlimited().length()>0?selectedCarrierPlan.getPlanInfo().getUnlimited():Constants.UNLIMITED_TEXT; + } + LocalTopUpDetailDTO localTopUpDetailDTO=new LocalTopUpDetailDTO(userMsisdn,selectedCarrierPlan.getCardName(),data,voice,sms,Constants.KOREAN_WON+" "+ Utils.formatCurrencyWithoutTruncatingDecimal(selectedCarrierPlan.getFacePrice())); + view.showPlanToFixedLocalTopUp(localTopUpDetailDTO); } else { this.selectedCarrierPlan = null; view.enableFixedTopUpButton(result, "GME Wallet Insufficient Fund. Load some money into your wallet before trying to do the topup"); @@ -411,6 +458,8 @@ public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPres } } } + + } public class DataTopUpValidator { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java index 16fbd456..627ad263 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java @@ -4,6 +4,7 @@ import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; import com.gmeremit.online.gmeremittance_native.topup.local.model.ButtonsGrid; import com.gmeremit.online.gmeremittance_native.topup.local.model.CardInfoDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpDetailDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.SubInfo; import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener; @@ -38,6 +39,8 @@ public interface LocalTopUpPresenterInterface extends BasePresenterInterface { void onDataPlanSelected(CardInfoDTO carrierPlan); + void updatePhoneNumber(String phoneNo); + interface LocalTopUpContractInterface extends BaseContractInterface { void showCurrentBalance(String balance); @@ -57,5 +60,7 @@ public interface LocalTopUpPresenterInterface extends BasePresenterInterface { void promptPassword(PasswordPromptListener listener); void promptBiometricAuthDialog(TransactionBiometricPromptDialog.BiometricPromptResultListener listener); + + void showPlanToFixedLocalTopUp(LocalTopUpDetailDTO localTopUpDetailDTO); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java index b426d9dd..ee644161 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java @@ -21,6 +21,7 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; import com.gmeremit.online.gmeremittance_native.customwidgets.maskedittext.GmeMaskedEditText; import com.gmeremit.online.gmeremittance_native.topup.local.adapter.LocalTopUpServiceViewPagerAdapter; import com.gmeremit.online.gmeremittance_native.topup.local.gateway.LocalTopUpGateway; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpDetailDTO; import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpPresenter; import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpPresenterInterface; import com.gmeremit.online.gmeremittance_native.topup.local.view.services.DataOnlyLocalTopUpFragment; @@ -66,6 +67,8 @@ public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresen ViewPager localTopupViewPager; + + @BindView(R.id.iv_back) ImageView ivBack; @@ -96,7 +99,7 @@ public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresen setupViewPager(); setUpTabLayout(); ivCancel.setVisibility(View.INVISIBLE); - userMsisdnEdTxt.setValueListener(this); + userMsisdnEdTxt.setValueListener(this,false); } private void performDefaultAction(Bundle savedInstanceState) { @@ -117,24 +120,28 @@ public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresen } + @OnClick(R.id.imageView8) + public void onContactPickerClicked() + { + Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); + startActivityForResult(contactPickerIntent, PICK_CONTACT); + } + + @OnClick(R.id.iv_back) public void onBackButtonPressed() { onBackPressed(); } - private void pickFromContacts() - { - Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); - startActivityForResult(contactPickerIntent, PICK_CONTACT); - } + @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent resultData) { super.onActivityResult(requestCode, resultCode, resultData); if(requestCode==PICK_CONTACT&&resultCode==RESULT_OK) { - + handleContact(resultData); } if (requestCode == PASSWORD_PROMPT_REQUEST) { if (resultCode == Activity.RESULT_OK) { @@ -146,6 +153,23 @@ public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresen } } + private void handleContact(Intent data) + { + String phoneNo = null; + Uri uri = data.getData(); + Cursor cursor = getContentResolver().query(uri, null, null, null, null); + + if (cursor!=null&& cursor.moveToFirst()) { + int phoneIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); + phoneNo = cursor.getString(phoneIndex); + cursor.close(); + } + + + + presenter.updatePhoneNumber(phoneNo); + } + private void setupViewPager() { localTopupViewPagerAdapter = new LocalTopUpServiceViewPagerAdapter(getSupportFragmentManager()); @@ -240,4 +264,10 @@ public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresen promptDialog.show(getSupportFragmentManager(),promptDialog.getClass().getSimpleName()); } + @Override + public void showPlanToFixedLocalTopUp(LocalTopUpDetailDTO localTopUpDetailDTO) { + localTopUpDetailDTO.setPhoneNumber(userMsisdnEdTxt.getText().toString()); + ((FixedChargeLocalTopupFragment)fragments.get(1)).showDetail(localTopUpDetailDTO); + } + } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java index a7cd4848..72274f9f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java @@ -11,12 +11,14 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; +import android.widget.TextView; import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.base.BaseFragment; import com.gmeremit.online.gmeremittance_native.customwidgets.GMEFormInputField; import com.gmeremit.online.gmeremittance_native.customwidgets.common.GenericTextListingDialog; import com.gmeremit.online.gmeremittance_native.topup.local.model.CardInfoDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpDetailDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; import com.gmeremit.online.gmeremittance_native.topup.local.model.SubInfo; import com.gmeremit.online.gmeremittance_native.topup.local.view.LocalTopUpActivityActionListener; @@ -26,7 +28,7 @@ import butterknife.ButterKnife; import butterknife.OnClick; import io.reactivex.observers.DisposableObserver; -public class FixedChargeLocalTopupFragment extends BaseFragment { +public class FixedChargeLocalTopupFragment extends BaseFragment { @BindView(R.id.carrierTypeInputField) GMEFormInputField carrierTypeInputField; @@ -41,8 +43,11 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { ImageView carrierPlanInputFieldCaratIcon; + @BindView(R.id.infoViewContainer) + CardView infoViewContainer; + @BindView(R.id.infoView) - CardView infoView; + ViewGroup infoView; @BindView(R.id.buttonContainer) ViewGroup buttonContainer; @@ -50,6 +55,19 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { @BindView(R.id.continueBtn) Button continueBtn; + @BindView(R.id.cellPhoneTxtView) + TextView cellPhoneTxtView; + @BindView(R.id.chargeTypeTxtView) + TextView chargeTypeTxtView; + @BindView(R.id.dataTxtView) + TextView dataTxtView; + @BindView(R.id.voiceTxtView) + TextView voiceTxtView; + @BindView(R.id.smsTxtView) + TextView smsTxtView; + @BindView(R.id.amountTxtView) + TextView amountTxtView; + private LocalTopUpResponseDTO fixedTopUpData; private GenericTextListingDialog carrierTypeListingDialog; private GenericTextListingDialog carrierPlanListingDialog; @@ -71,13 +89,13 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { } private void init() { - carrierPlanClickListener=new CarrierPlanClickListener(); - carrierTypeClickListener=new CarrierTypeClickListener(); + carrierPlanClickListener = new CarrierPlanClickListener(); + carrierTypeClickListener = new CarrierTypeClickListener(); } private void performDefaultAction(Bundle savedInstance) { - ((LocalTopUpActivityActionListener)getActivity()).getPresenter().subscribeToFixedTopUpRelatedDataEvent().subscribe(new FixedChargeLocalTopupFragmentObserver()); + ((LocalTopUpActivityActionListener) getActivity()).getPresenter().subscribeToFixedTopUpRelatedDataEvent().subscribe(new FixedChargeLocalTopupFragmentObserver()); } @Override @@ -97,21 +115,19 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { @OnClick(R.id.continueBtn) - public void onContinuerBtnClicked() - { - ((LocalTopUpActivityActionListener)getActivity()).getPresenter().promptPinForFixedTransaction(); + public void onContinuerBtnClicked() { + ((LocalTopUpActivityActionListener) getActivity()).getPresenter().promptPinForFixedTransaction(); } - private void promptCarrierPlanSelection() { carrierPlanListingDialog = new GenericTextListingDialog<>(); - carrierPlanListingDialog.setData( ((LocalTopUpActivityActionListener)getActivity()).getPresenter().getAvailableCarrierPlanForFixedTopup()); + carrierPlanListingDialog.setData(((LocalTopUpActivityActionListener) getActivity()).getPresenter().getAvailableCarrierPlanForFixedTopup()); carrierPlanListingDialog.setListener(carrierPlan -> { carrierPlanInputField.getEditTextView().setText(carrierPlan.getCardName()); - ((LocalTopUpActivityActionListener)getActivity()).getPresenter().onFixedTopUpCarrierPlanSelected(carrierPlan); + ((LocalTopUpActivityActionListener) getActivity()).getPresenter().onFixedTopUpCarrierPlanSelected(carrierPlan); carrierPlanListingDialog.dismiss(); }); carrierPlanListingDialog.setHintAndTitle(getString(R.string.search_account_text), getString(R.string.select_auto_debit_account_text), getString(R.string.no_account_found_text)); @@ -122,25 +138,23 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { } - private void promptCarrierTypeSelection() { carrierTypeListingDialog = new GenericTextListingDialog<>(); - carrierTypeListingDialog.setData(fixedTopUpData.getCardInfo() ); + carrierTypeListingDialog.setData(fixedTopUpData.getCardInfo()); carrierTypeListingDialog.setListener(carrierType -> { + infoView.setVisibility(View.GONE); + infoViewContainer.setVisibility(View.GONE); carrierPlanInputField.getEditTextView().setText(""); - if(carrierType.getSubInfo()==null) - { + if (carrierType.getSubInfo() == null) { carrierPlanInputField.setVisibility(View.GONE); carrierPlanInputFieldCaratIcon.setVisibility(View.GONE); - } - else - { + } else { carrierPlanInputField.setVisibility(View.VISIBLE); carrierPlanInputFieldCaratIcon.setVisibility(View.VISIBLE); } - ((LocalTopUpActivityActionListener)getActivity()).getPresenter().onFixedTopUpCarrierTypeSelected(carrierType); + ((LocalTopUpActivityActionListener) getActivity()).getPresenter().onFixedTopUpCarrierTypeSelected(carrierType); carrierTypeInputField.getEditTextView().setText(carrierType.getCardName()); carrierTypeListingDialog.dismiss(); @@ -158,8 +172,20 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { continueBtn.setText(buttonHintText); } - public class CarrierPlanClickListener implements View.OnClickListener - { + public void showDetail(LocalTopUpDetailDTO localTopUpDetailDTO) { + + infoViewContainer.setVisibility(View.VISIBLE); + TransitionManager.beginDelayedTransition(infoViewContainer); + cellPhoneTxtView.setText(localTopUpDetailDTO.getPhoneNumber()); + chargeTypeTxtView.setText(localTopUpDetailDTO.getChargeType()); + dataTxtView.setText(localTopUpDetailDTO.getData()); + voiceTxtView.setText(localTopUpDetailDTO.getVoice()); + smsTxtView.setText(localTopUpDetailDTO.getSms()); + amountTxtView.setText(localTopUpDetailDTO.getAmount()); + infoView.setVisibility(View.VISIBLE); + } + + public class CarrierPlanClickListener implements View.OnClickListener { @Override public void onClick(View v) { @@ -167,8 +193,7 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { } } - public class CarrierTypeClickListener implements View.OnClickListener - { + public class CarrierTypeClickListener implements View.OnClickListener { @Override public void onClick(View v) { @@ -177,21 +202,23 @@ public class FixedChargeLocalTopupFragment extends BaseFragment { } - public class FixedChargeLocalTopupFragmentObserver extends DisposableObserver - { + public class FixedChargeLocalTopupFragmentObserver extends DisposableObserver { @Override public void onNext(LocalTopUpResponseDTO localTopUpResponseDTO) { - fixedTopUpData=localTopUpResponseDTO; + fixedTopUpData = localTopUpResponseDTO; carrierTypeInputField.getEditTextView().setText(""); - carrierPlanInputField.getEditTextView().setText(""); + carrierPlanInputField.getEditTextView().setText(""); carrierPlanInputField.setVisibility(View.GONE); carrierPlanInputFieldCaratIcon.setVisibility(View.GONE); + + infoViewContainer.setVisibility(View.GONE); + infoView.setVisibility(View.GONE); } @Override public void onError(Throwable e) { - Log.d("DataPackLocalTopUp",e.getMessage()); + Log.d("DataPackLocalTopUp", e.getMessage()); } @Override diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/DenoListRvAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/DenoListRvAdapter.java index 8d62f0ed..29f1bd25 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/DenoListRvAdapter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/DenoListRvAdapter.java @@ -77,6 +77,8 @@ public class DenoListRvAdapter extends RecyclerView.Adapter { } public void selectItem(int position) { + if(denoList.size()<1) + return; currentlySelectedIndex=position; notifyDataSetChanged(); if(listener!=null) diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/RegularLocalTopupFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/RegularLocalTopupFragment.java index 9c372451..13cb70af 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/RegularLocalTopupFragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/RegularLocalTopupFragment.java @@ -70,6 +70,7 @@ public class RegularLocalTopupFragment extends BaseFragment implements DenoListR } private void setupRecyclerView() { + topupDenoListRv.setNestedScrollingEnabled(false); denoListRvAdapter=new DenoListRvAdapter(this); topupDenoListRv.setLayoutManager(new GridLayoutManager(getActivity(), 3)); topupDenoListRv.setAdapter(denoListRvAdapter); 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 05b7a8e3..4a844eed 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 @@ -133,6 +133,7 @@ public class Constants { public static final String SUCCESS_CODE_V2 = "0"; public static final String TRUE_STRING = "True"; public static final String KRW_STRING = "KRW"; + public static final String UNLIMITED_TEXT = "Unlimited"; // 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_local_top_up.xml b/app/src/main/res/layout/activity_local_top_up.xml index 595e7343..41d6ed72 100644 --- a/app/src/main/res/layout/activity_local_top_up.xml +++ b/app/src/main/res/layout/activity_local_top_up.xml @@ -57,6 +57,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:textType="korean_mobile" + app:prefixText="010" android:hint="@string/mobile_number_text"> diff --git a/app/src/main/res/layout/fragment_data_pack_local_topup.xml b/app/src/main/res/layout/fragment_data_pack_local_topup.xml index 3fde23bc..162b4bb9 100644 --- a/app/src/main/res/layout/fragment_data_pack_local_topup.xml +++ b/app/src/main/res/layout/fragment_data_pack_local_topup.xml @@ -1,9 +1,13 @@ - + - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_fixed_local_topup.xml b/app/src/main/res/layout/fragment_fixed_local_topup.xml index c08888e6..2353b88e 100644 --- a/app/src/main/res/layout/fragment_fixed_local_topup.xml +++ b/app/src/main/res/layout/fragment_fixed_local_topup.xml @@ -1,9 +1,13 @@ - + - + - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_regular_local_topup.xml b/app/src/main/res/layout/fragment_regular_local_topup.xml index b584caa6..b13a7cda 100644 --- a/app/src/main/res/layout/fragment_regular_local_topup.xml +++ b/app/src/main/res/layout/fragment_regular_local_topup.xml @@ -1,10 +1,16 @@ - + + + + android:layout_height="wrap_content"> - \ No newline at end of file + + diff --git a/app/src/main/res/layout/layout_local_top_up_detail.xml b/app/src/main/res/layout/layout_local_top_up_detail.xml new file mode 100644 index 00000000..1d1215cf --- /dev/null +++ b/app/src/main/res/layout/layout_local_top_up_detail.xml @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file