Browse Source

API integration completed, testing is due

master
Preyea Regmi 5 years ago
parent
commit
5fd5acf680
  1. 7
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3PresenterInterface.java
  2. 66
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java
  3. 26
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/KYCV3Activity.java
  4. 32
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/penny/PerformPennyTestFragment.java

7
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3PresenterInterface.java

@ -19,6 +19,7 @@ import io.reactivex.Observable;
public interface KYCV3PresenterInterface extends BasePresenterInterface {
void onCustomerDetailFormReady(boolean isReady);
void onPennyTestFormReady(boolean isReady);
LiveData<KYCRelatedDataDTO> getCustomerDetailRelatedFormLiveData();
CustomerDetailErrorLiveDataDTO getCustomerDetailRelatedFormErrorLiveData();
@ -67,6 +68,10 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
void updateBankInfoUponVerification(String bankCode,String bankName);
LiveData<String> getPennyTestReferenceErrorLiveData();
void perfromPennyTest();
interface KYCV3ViewContractInterface extends BaseContractInterface
{
@ -78,6 +83,8 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
void navigateToPennyTestConfirmView();
void onPennyTestCompleted();
interface KYCV3CustomerDetailViewContractInterface extends BaseContractInterface
{

66
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java

@ -62,6 +62,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private MutableLiveData<Integer> selectedBankIconLiveData;
private MutableLiveData<Boolean> penntestReferenceSubmissionLiveData;
private MutableLiveData<String> penntestReferenceErrorMessageLiveData;
private final CompositeDisposable compositeDisposable;
@ -95,6 +96,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
selectedBankIconLiveData = new MutableLiveData<>();
this.penntestReferenceSubmissionLiveData = new MutableLiveData<>();
this.penntestReferenceErrorMessageLiveData = new MutableLiveData<>();
}
@ -138,11 +140,16 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
}));
setupForm3Validation();
getDummyKYCRelatedData();
// getKycRelatedData();
}
@Override
public void onPennyTestFormReady(boolean isReady) {
setupForm3Validation();
}
private void setupForm3Validation() {
compositeDisposable.add(
this.view.getPennyTestViewContract().getPennyTestReferenceViewBindings().subscribeWith(new DisposableObserver<CharSequence>() {
@ -283,6 +290,23 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
selectedBankIconLiveData.setValue(BankIconMapper.getBankIconFromBankCode(bankName));
}
@Override
public LiveData<String> getPennyTestReferenceErrorLiveData() {
return penntestReferenceErrorMessageLiveData;
}
@Override
public void perfromPennyTest() {
compositeDisposable.add(
this.gateway.postDataForPennyTest(this.gateway.getAuth(), this.gateway.getBankAccountNumber(), validator.getEnteredPennyTestReference(), this.gateway.getUserIDNumber())
.doOnSubscribe(subs->view.showProgressBar(true,""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(()->view.showProgressBar(false,""))
.subscribeWith(new PennyTestResultObserver())
);
}
public void checkImageStatus(int requestCode, int resultCode, File data, float thumbnailHeight, float thumbnailWidth) {
if (data == null) {
view.showToastMessage(getStringfromStringId(R.string.no_image_available_text));
@ -792,7 +816,14 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
public boolean validatePennyTestReference(CharSequence reference) {
this.enteredPennyTestReference = reference + "";
return reference == null || reference.length() != 4;
boolean result = reference == null || reference.length() != 4;
if (result)
penntestReferenceErrorMessageLiveData.setValue("Refrence code must be 4 digit");
else
penntestReferenceErrorMessageLiveData.setValue(null);
return !result;
}
@ -933,4 +964,35 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
}
public class PennyTestResultObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.SUCCESS,alertType -> view.onPennyTestCompleted());
} else {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED,null);
}
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
protected void unauthorizedAccess(String message) {
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
}

26
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/KYCV3Activity.java

@ -81,7 +81,6 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
}
private void setupViewPager() {
kycViewPagerAdapter = new GenericViewPagerAdapter(getSupportFragmentManager());
@ -107,11 +106,9 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
kycFormViewPager.setAdapter(kycViewPagerAdapter);
}
public void onAutoDebitScreenShown()
{
public void onAutoDebitScreenShown() {
TransitionManager.beginDelayedTransition(kyc_header_view);
page1TxtView.setTextColor(ContextCompat.getColor(page1TxtView.getContext(), R.color.white));
page1TxtView.setBackgroundResource(R.drawable.circular_valid_bg);
@ -125,8 +122,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
}
public void onPennyTestScreenShown()
{
public void onPennyTestScreenShown() {
TransitionManager.beginDelayedTransition(kyc_header_view);
page1TxtView.setTextColor(ContextCompat.getColor(page1TxtView.getContext(), R.color.white));
page1TxtView.setBackgroundResource(R.drawable.circular_valid_bg);
@ -137,8 +133,8 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
page3TxtView.setTextColor(ContextCompat.getColor(page3TxtView.getContext(), R.color.white));
page3TxtView.setBackgroundResource(R.drawable.circular_valid_bg);
}
public void onCustomerRegistration()
{
public void onCustomerRegistration() {
TransitionManager.beginDelayedTransition(kyc_header_view);
page1TxtView.setTextColor(ContextCompat.getColor(page1TxtView.getContext(), R.color.white));
@ -165,12 +161,16 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
}
@Override
public KYCV3CustomerDetailViewContractInterface getCustomerDetailViewContract() {
return customerDetailFragment;
}
@Override
public PennyTestViewContractInterface getPennyTestViewContract() {
return pennyTestFragment;
}
@Override
public void onKYCFormSubmittedSuccessfully() {
kycFormViewPager.setCurrentItem(1);
@ -181,6 +181,11 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
kycFormViewPager.setCurrentItem(2);
}
@Override
public void onPennyTestCompleted() {
exitView();
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@ -188,8 +193,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
@Override
public void onPageSelected(int position) {
switch (position)
{
switch (position) {
case 0:
onCustomerRegistration();
break;

32
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/penny/PerformPennyTestFragment.java

@ -4,6 +4,7 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
@ -17,6 +18,7 @@ import com.gmeremit.online.gmeremittance_native.base.BaseFragment;
import com.gmeremit.online.gmeremittance_native.kycV3.presenter.KYCV3PresenterInterface;
import com.gmeremit.online.gmeremittance_native.kycV3.presenter.KYCV3ViewModel;
import com.gmeremit.online.gmeremittance_native.utils.other.Utility;
import com.google.android.material.textfield.TextInputLayout;
import com.jakewharton.rxbinding3.widget.RxTextView;
import butterknife.BindView;
@ -41,9 +43,16 @@ public class PerformPennyTestFragment extends BaseFragment implements KYCV3Prese
@BindView(R.id.bankIcon)
ImageView bankIcon;
@BindView(R.id.depositReferenceInputWrapper)
TextInputLayout depositReferenceInputWrapper;
@BindView(R.id.ed_creditNumber)
EditText ed_creditNumber;
@BindView(R.id.pennyTestCompleteButton)
Button pennyTestCompleteButton;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_kyc_perform_penny_test, container, false);
@ -65,19 +74,18 @@ public class PerformPennyTestFragment extends BaseFragment implements KYCV3Prese
private void performDefaultAction(Bundle savedInstance) {
KYCV3ViewModel kycv3ViewModel = ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class);
kycv3ViewModel.getPennyTestMessageLiveData().observe(getViewLifecycleOwner(), message -> {
});
kycv3ViewModel.getSelectedBankNameLiveData().observe(getViewLifecycleOwner(), bankName -> {
bankNameTxtView.setText(bankName);
});
kycv3ViewModel.getEnteredBankAccountNoLiveData().observe(getViewLifecycleOwner(), bankAccountNumber -> {
bankAccNoTxtView.setText(bankAccountNumber);
});
kycv3ViewModel.getSelectedBankIconCodeLiveData().observe(getViewLifecycleOwner(), resIcon -> {
bankIcon.setImageResource(resIcon);
});
kycv3ViewModel.getPennyTestMessageLiveData().observe(getViewLifecycleOwner(), message -> txt_pennytest_msg.setText(message));
kycv3ViewModel.getSelectedBankNameLiveData().observe(getViewLifecycleOwner(), bankName -> bankNameTxtView.setText(bankName));
kycv3ViewModel.getEnteredBankAccountNoLiveData().observe(getViewLifecycleOwner(), bankAccountNumber -> bankAccNoTxtView.setText(bankAccountNumber));
kycv3ViewModel.getSelectedBankIconCodeLiveData().observe(getViewLifecycleOwner(), resIcon -> bankIcon.setImageResource(resIcon));
kycv3ViewModel.getPennyTestReferenceErrorLiveData().observe(getViewLifecycleOwner(), errorMessage -> depositReferenceInputWrapper.setError(errorMessage));
kycv3ViewModel.getPennyTestReferenceSubmissionLiveData().observe(getViewLifecycleOwner(), action -> pennyTestCompleteButton.setEnabled(action));
kycv3ViewModel.onPennyTestFormReady(true);
}
@OnClick(R.id.pennyTestCompleteButton)
public void perfromPennyTest() {
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).perfromPennyTest();
}
@OnClick(R.id.resend_request)

Loading…
Cancel
Save