Browse Source

Local top up development done

master
Preyea Regmi 5 years ago
parent
commit
d29b503059
  1. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/GmeMaskedEditText.java
  2. 16
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/maskedittext/MaskedTextWatcher.java
  3. 63
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpDetailDTO.java
  4. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java
  5. 57
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java
  6. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java
  7. 44
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java
  8. 59
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java
  9. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/DenoListRvAdapter.java
  10. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/regular/RegularLocalTopupFragment.java
  11. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/Constants.java
  12. 1
      app/src/main/res/layout/activity_local_top_up.xml
  13. 9
      app/src/main/res/layout/fragment_data_pack_local_topup.xml
  14. 24
      app/src/main/res/layout/fragment_fixed_local_topup.xml
  15. 11
      app/src/main/res/layout/fragment_regular_local_topup.xml
  16. 229
      app/src/main/res/layout/layout_local_top_up_detail.xml

8
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 {

16
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(phone);
valueListener.onValueChanged(data);
}
else
valueListener.onValueChanged(data);
}
state = EditState.EDIT;
}

63
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;
}
}

6
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;
}
}

57
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 {

5
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);
}
}

44
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);
}
}

59
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;
@ -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<CardInfoDTO> carrierTypeListingDialog;
private GenericTextListingDialog<SubInfo> carrierPlanListingDialog;
@ -97,14 +115,12 @@ public class FixedChargeLocalTopupFragment extends BaseFragment {
@OnClick(R.id.continueBtn)
public void onContinuerBtnClicked()
{
public void onContinuerBtnClicked() {
((LocalTopUpActivityActionListener) getActivity()).getPresenter().promptPinForFixedTransaction();
}
private void promptCarrierPlanSelection() {
carrierPlanListingDialog = new GenericTextListingDialog<>();
carrierPlanListingDialog.setData(((LocalTopUpActivityActionListener) getActivity()).getPresenter().getAvailableCarrierPlanForFixedTopup());
@ -122,21 +138,19 @@ public class FixedChargeLocalTopupFragment extends BaseFragment {
}
private void promptCarrierTypeSelection() {
carrierTypeListingDialog = new GenericTextListingDialog<>();
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);
}
@ -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,8 +202,7 @@ public class FixedChargeLocalTopupFragment extends BaseFragment {
}
public class FixedChargeLocalTopupFragmentObserver extends DisposableObserver<LocalTopUpResponseDTO>
{
public class FixedChargeLocalTopupFragmentObserver extends DisposableObserver<LocalTopUpResponseDTO> {
@Override
public void onNext(LocalTopUpResponseDTO localTopUpResponseDTO) {
fixedTopUpData = localTopUpResponseDTO;
@ -187,6 +211,9 @@ public class FixedChargeLocalTopupFragment extends BaseFragment {
carrierPlanInputField.getEditTextView().setText("");
carrierPlanInputField.setVisibility(View.GONE);
carrierPlanInputFieldCaratIcon.setVisibility(View.GONE);
infoViewContainer.setVisibility(View.GONE);
infoView.setVisibility(View.GONE);
}
@Override

2
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<DenoListVH> {
}
public void selectItem(int position) {
if(denoList.size()<1)
return;
currentlySelectedIndex=position;
notifyDataSetChanged();
if(listener!=null)

1
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);

1
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);

1
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">
</com.gmeremit.online.gmeremittance_native.customwidgets.maskedittext.GmeMaskedEditText>

9
app/src/main/res/layout/fragment_data_pack_local_topup.xml

@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.gmeremit.online.gmeremittance_native.customwidgets.GMEFormInputField
@ -110,3 +114,4 @@
/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>

24
app/src/main/res/layout/fragment_fixed_local_topup.xml

@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.gmeremit.online.gmeremittance_native.customwidgets.GMEFormInputField
@ -79,20 +83,21 @@
<android.support.v7.widget.CardView
android:id="@+id/infoView"
android:layout_width="wrap_content"
android:visibility="gone"
android:id="@+id/infoViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="true"
app:cardElevation="@dimen/_2sdp"
app:cardCornerRadius="@dimen/_4sdp"
app:layout_constraintTop_toBottomOf="@id/view8"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="@dimen/_12sdp"
android:elevation="@dimen/_2sdp">
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Something"/>
<include layout="@layout/layout_local_top_up_detail"
android:visibility="gone"/>
</android.support.v7.widget.CardView>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
@ -103,7 +108,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fixed_top_up_text_hint_1"
app:layout_constraintTop_toBottomOf="@+id/infoView"
app:layout_constraintTop_toBottomOf="@+id/infoViewContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
@ -161,3 +166,4 @@
/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>

11
app/src/main/res/layout/fragment_regular_local_topup.xml

@ -1,10 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:layout_marginTop="@dimen/_15sdp"
@ -87,3 +93,4 @@
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>

229
app/src/main/res/layout/layout_local_top_up_detail.xml

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/infoView"
android:paddingTop="@dimen/_8sdp"
android:paddingBottom="@dimen/_8sdp"
android:layout_height="wrap_content">
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/detailTitleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_8sdp"
android:paddingEnd="@dimen/_6sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Detail"
android:textColor="@color/dark_gray"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/cellPhoneTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Cell Phone"
android:gravity="start"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/cellPhoneTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/detailTitleText"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/cellPhoneTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="010-123-456-789-010-123-456-789010-123-456-789-010-123-456-789"
android:textSize="@dimen/_11ssp"
android:gravity="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/cellPhoneTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/detailTitleText" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/chargeTypeTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Charge Type"
android:gravity="start"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/chargeTypeTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cellPhoneTxtView"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/chargeTypeTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="010-123-456-789-010-123-456-789010-123-456-789-010-123-456-789"
android:textSize="@dimen/_11ssp"
android:gravity="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/chargeTypeTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/cellPhoneTxtView" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/dataTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Data"
android:gravity="start"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/dataTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chargeTypeTxtView"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/dataTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="010-123-456-789-010-123-456-789010-123-456-789-010-123-456-789"
android:textSize="@dimen/_11ssp"
android:gravity="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/dataTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/chargeTypeTxtView" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/voiceTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Voice"
android:gravity="start"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/voiceTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dataTxtView"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/voiceTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="010-123-456-789-010-123-456-789010-123-456-789-010-123-456-789"
android:textSize="@dimen/_11ssp"
android:gravity="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/voiceTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/dataTxtView" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/smsTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="SMS"
android:gravity="start"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/smsTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/voiceTxtView"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/smsTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="010-123-456-789-010-123-456-789010-123-456-789-010-123-456-789"
android:textSize="@dimen/_11ssp"
android:gravity="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/smsTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/voiceTxtView" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/amountTitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="Payment Amount"
android:gravity="start"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/_11ssp"
app:layout_constraintEnd_toStartOf="@+id/amountTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/smsTxtView"
app:txtfontName="@string/semibold" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/amountTxtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_10sdp"
android:paddingEnd="@dimen/_10sdp"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:text="W 35,000"
android:textSize="@dimen/_11ssp"
android:gravity="end"
android:textColor="@color/colorPrimary"
app:txtfontName="@string/semibold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/amountTitleTxtView"
app:layout_constraintTop_toBottomOf="@+id/smsTxtView" />
</android.support.constraint.ConstraintLayout>
Loading…
Cancel
Save