Browse Source

renew User Id api implementation done

new_design
Santosh Bhandary 3 years ago
parent
commit
0e301b5528
  1. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeFragmentV2.java
  2. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/model/ExistingKYCRelatedDataDTO.java
  3. 10
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/presenter/ExistingKYCV3GatewayInterface.java
  4. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/presenter/ExistingKYCV3ViewModel.java
  5. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/ExistingKYCV3Activity.java
  6. 5
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/documents/ExistingKYCIDTypeFragment.java
  7. 42
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/personal/ExistingCustomerDetailFragment.java
  8. 55
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/personal/ExistingCustomerDetailViewLiveData.java
  9. 2
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/termsAndConditions/ExistingKycTermsAndConditionFragment.java
  10. 10
      app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3GatewayInterface.java
  11. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/login/LoginViewModelFactory.java
  12. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/login/presenter/LoginV2ViewModel.java
  13. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/login/view/LoginV2Activity.java
  14. 113
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryAddEditFragment.java
  15. 42
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryTermsAndConditionFragment.java
  16. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/RecipientAddEditActivity.java
  17. 29
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddEditBaseV3ViewModel.java
  18. 7
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddV3ContractInterface.java
  19. 300
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java
  20. 1
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientPresenterInterface.java
  21. 27
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/add/RecipientAddV3ViewModel.java
  22. 21
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/edit/RecipientEditV3ViewModel.java
  23. 6
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3Fragment.java
  24. 34
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3TermsFragment.java
  25. 65
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java
  26. 28
      app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientlistingV3/RecipientListingV3Activity.java
  27. 1
      app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/existingcustomer/view/ExistingCustomerRegisterV2Activity.java
  28. 3
      app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/newcustomer/view/NewRegisterV2Activity.java
  29. 26
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/RenewIdViewModelFactory.java
  30. 45
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/gateway/RenewFileDownloadGateway.java
  31. 49
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/gateway/RenewIdV2Gateway.java
  32. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/model/RenewIdApiResponse.java
  33. 48
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/model/RenewIdRequestDataDTO.java
  34. 8
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2InteractorInterface.java
  35. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2Presenter.java
  36. 17
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2PresenterInterface.java
  37. 262
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2ViewModel.java
  38. 473
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewIdActivity.java
  39. 139
      app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewUserIdLiveData.java
  40. 4
      app/src/main/java/com/swifttech/remit/jmecustomer/features/sendmoney/view/SendMoneyV2Activity.java
  41. 14
      app/src/main/java/com/swifttech/remit/jmecustomer/features/webbrowser/WebBrowserFragmentV2.java
  42. 1
      app/src/main/java/com/swifttech/remit/jmecustomer/utils/https/API_URL.java
  43. 8
      app/src/main/java/com/swifttech/remit/jmecustomer/utils/https/ApiEndpoints.java
  44. 387
      app/src/main/res/layout/activity_renew_id_layout.xml
  45. 2
      app/src/main/res/layout/fragment_beneficiary_add_edit.xml
  46. 2
      app/src/main/res/layout/fragment_beneficiary_add_edit_v3.xml
  47. 1
      app/src/main/res/layout/fragment_existing_kyc_customer_detail.xml
  48. 2
      app/src/main/res/layout/layout_sendmoney_toolbar.xml
  49. 3
      app/src/main/res/values/strings.xml

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/home/view/HomeFragmentV2.java

@ -166,7 +166,7 @@ public class HomeFragmentV2 extends BaseFragment implements
menuList.add(new MenuItem(getString(R.string.transaction_report_text), R.drawable.icv_menu_transaction_report, 5));
menuList.add(new MenuItem(getString(R.string.jme_account_statement_text), R.drawable.icv_menu_wallet_statement, 6));
menuList.add(new MenuItem(getString(R.string.notice_text), R.drawable.icv_notice, 7));
menuList.add(new MenuItem(getString(R.string.recipient_text), R.drawable.icv_receipient, 8));
// menuList.add(new MenuItem(getString(R.string.recipient_text), R.drawable.icv_receipient, 8));
menuList.add(new MenuItem(getString(R.string.renewId_text), R.drawable.icv_renew_id, 9));
return menuList;
}

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/model/ExistingKYCRelatedDataDTO.java

@ -138,7 +138,7 @@ public class ExistingKYCRelatedDataDTO {
return null;
}
public ExistingIDTextDTO getIDypeFromId(String id) {
public ExistingIDTextDTO getIDTypeFromId(String id) {
if (id == null || id.length() < 1)
return null;
for (ExistingIDTextDTO item : idType) {

10
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/presenter/ExistingKYCV3GatewayInterface.java

@ -14,16 +14,16 @@ import okhttp3.ResponseBody;
public interface ExistingKYCV3GatewayInterface extends PrivilegedGatewayInterface {
Observable<ResponseBody> getKycRelatedData(String auth, String customerID, String type);
Observable<ResponseBody> getKycRelatedData(String auth, String customerID, String type);
List<ExistingNativeCountry> getNativeCountryList(Context context);
List<ExistingNativeCountry> getNativeCountryList(Context context);
Observable<ResponseBody> validateParameters(String idType, String idNumber);
Observable<ResponseBody> validateParameters(String idType, String idNumber);
Observable<ResponseBody> submitKYCForm(String auth, ExistingKYCRequestDataDTO requestBody);
Observable<ResponseBody> submitKYCForm(String auth, ExistingKYCRequestDataDTO requestBody);
void saveSenderId(String senderId);
void saveSenderId(String senderId);
ExistingKYCRelatedDataDTO getMockedData();
}

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/presenter/ExistingKYCV3ViewModel.java

@ -238,7 +238,7 @@ public class ExistingKYCV3ViewModel extends BaseViewModel implements ExistingKYC
customerDetailLiveData.getSourceOfFundLiveData().postValue(new FormInputStateDTO<>(true, null, sourceOfFund));
customerDetailLiveData.getMonthlyIncomeLiveData().postValue(new FormInputStateDTO<>(true, null, data.getMonthlyIncomeFromId(existingPersonalInfoDTO.getMonthlyIncome())));
customerDetailLiveData.getBusinessTypeLiveData().postValue(new FormInputStateDTO<>(true, null, data.getBusinessTypeFromId(existingPersonalInfoDTO.getBusinessType())));
customerDetailLiveData.getIdTypeLiveData().postValue(new FormInputStateDTO<>(true, null, data.getIDypeFromId(existingPersonalInfoDTO.getIdType())));
customerDetailLiveData.getIdTypeLiveData().postValue(new FormInputStateDTO<>(true, null, data.getIDTypeFromId(existingPersonalInfoDTO.getIdType())));
customerDetailLiveData.getMobileNumberLiveData().postValue(new FormInputStateDTO<>(true, null, mobileNumber));
customerDetailLiveData.getAddressLiveData().postValue(new FormInputStateDTO<>(true, null, existingPersonalInfoDTO.getAdditionalAddress()));
customerDetailLiveData.getVisaStatusLiveData().postValue(new FormInputStateDTO<>(true, null, data.getVisaStatusFromId(existingPersonalInfoDTO.getVisaStatus())));

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/ExistingKYCV3Activity.java

@ -26,8 +26,6 @@ import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.presenter.E
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.view.documents.ExistingKYCIDTypeFragment;
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.view.personal.ExistingCustomerDetailFragment;
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.view.termsAndConditions.ExistingKycTermsAndConditionFragment;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailFragment;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import java.util.ArrayList;

5
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/documents/ExistingKYCIDTypeFragment.java

@ -393,7 +393,10 @@ public class ExistingKYCIDTypeFragment extends BaseFragment {
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
public void onRequestPermissionsResult(
int requestCode,
String[] permissions,
int[] grantResults) {
switch (requestCode) {
case REQUEST_PERMISSION_ID_FRONT:
if (grantResults.length > 0

42
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/personal/ExistingCustomerDetailFragment.java

@ -79,8 +79,6 @@ public class ExistingCustomerDetailFragment extends BaseFragment implements Exis
@BindView(R.id.ed_purposeOfRegistration)
EditText ed_purposeOfRegistration;
@BindView(R.id.addressWrapper)
TextInputLayout addressWrapper;
@ -101,8 +99,8 @@ public class ExistingCustomerDetailFragment extends BaseFragment implements Exis
private GenericTextListingDialog<ExistingIDTextDTO> occupationSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> sourceOfFundSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> monthlyIncomeSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> busineessTypeSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> purposeOfRegisgtrationDialog;
private GenericTextListingDialog<ExistingIDTextDTO> businessTypeSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> purposeOfRegistrationDialog;
private GenericTextListingDialog<ExistingIDTextDTO> idTypeSelectionDialog;
private GenericTextListingDialog<ExistingIDTextDTO> visaStatusSelectionDialog;
@ -476,41 +474,41 @@ public class ExistingCustomerDetailFragment extends BaseFragment implements Exis
@OnClick(R.id.ed_businesstype)
public void promptBusinessType() {
hideKeyBoard();
if (busineessTypeSelectionDialog == null)
busineessTypeSelectionDialog = new GenericTextListingDialog<>();
if (businessTypeSelectionDialog == null)
businessTypeSelectionDialog = new GenericTextListingDialog<>();
busineessTypeSelectionDialog.setData(kycv3ViewModel.getBusinessTypeList());
busineessTypeSelectionDialog.disableSearch(true);
busineessTypeSelectionDialog.setListener(sourceOfFund ->
businessTypeSelectionDialog.setData(kycv3ViewModel.getBusinessTypeList());
businessTypeSelectionDialog.disableSearch(true);
businessTypeSelectionDialog.setListener(sourceOfFund ->
{
busineessTypeSelectionDialog.dismiss();
businessTypeSelectionDialog.dismiss();
ed_businesstype.setText(sourceOfFund.toString());
businessTypeSelectSubject.onNext(sourceOfFund);
});
busineessTypeSelectionDialog.setHintAndTitle(getString(R.string.searchBusinessType_text), getString(R.string.selectBusiness_text), getString(R.string.no_result_found_text));
if (!busineessTypeSelectionDialog.isAdded())
busineessTypeSelectionDialog.show(getActivity().getSupportFragmentManager(), "BUSINESSTYPECHOOSER");
businessTypeSelectionDialog.setHintAndTitle(getString(R.string.searchBusinessType_text), getString(R.string.selectBusiness_text), getString(R.string.no_result_found_text));
if (!businessTypeSelectionDialog.isAdded())
businessTypeSelectionDialog.show(getActivity().getSupportFragmentManager(), "BUSINESSTYPECHOOSER");
}
@OnClick(R.id.ed_purposeOfRegistration)
public void promptPurposeOfRegistration() {
hideKeyBoard();
if (purposeOfRegisgtrationDialog == null)
purposeOfRegisgtrationDialog = new GenericTextListingDialog<>();
if (purposeOfRegistrationDialog == null)
purposeOfRegistrationDialog = new GenericTextListingDialog<>();
purposeOfRegisgtrationDialog.setData(kycv3ViewModel.getPurposeOfRegistrationList());
purposeOfRegisgtrationDialog.disableSearch(true);
purposeOfRegisgtrationDialog.setListener(purPoseOfRegistration ->
purposeOfRegistrationDialog.setData(kycv3ViewModel.getPurposeOfRegistrationList());
purposeOfRegistrationDialog.disableSearch(true);
purposeOfRegistrationDialog.setListener(purPoseOfRegistration ->
{
purposeOfRegisgtrationDialog.dismiss();
purposeOfRegistrationDialog.dismiss();
ed_purposeOfRegistration.setText(purPoseOfRegistration.toString());
purposeOfRegistrationSubject.onNext(purPoseOfRegistration);
});
purposeOfRegisgtrationDialog.setHintAndTitle(getString(R.string.searchPurposeOfRegistration_text), getString(R.string.selectPurposeOfRegistration_text), getString(R.string.no_result_found_text));
if (!purposeOfRegisgtrationDialog.isAdded())
purposeOfRegisgtrationDialog.show(getActivity().getSupportFragmentManager(), "PURPOSE_OF_REGISTRATION_CHOOSER");
purposeOfRegistrationDialog.setHintAndTitle(getString(R.string.searchPurposeOfRegistration_text), getString(R.string.selectPurposeOfRegistration_text), getString(R.string.no_result_found_text));
if (!purposeOfRegistrationDialog.isAdded())
purposeOfRegistrationDialog.show(getActivity().getSupportFragmentManager(), "PURPOSE_OF_REGISTRATION_CHOOSER");
}

55
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/personal/ExistingCustomerDetailViewLiveData.java

@ -39,97 +39,42 @@ public class ExistingCustomerDetailViewLiveData {
return occupationsLiveData;
}
public void setOccupationsLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> occupationsLiveData) {
this.occupationsLiveData = occupationsLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getEmployerNameLiveData() {
return employerNameLiveData;
}
public void setEmployerNameLiveData(MutableLiveData<FormInputStateDTO<String>> employerNameLiveData) {
this.employerNameLiveData = employerNameLiveData;
}
public MutableLiveData<Boolean> getAllFieldsValid() {
return allFieldsValid;
}
public void setAllFieldsValid(MutableLiveData<Boolean> allFieldsValid) {
this.allFieldsValid = allFieldsValid;
}
public void setAllFieldsValid(boolean allFieldsValid) {
this.allFieldsValid.setValue(allFieldsValid);
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getSourceOfFundLiveData() {
return sourceOfFundLiveData;
}
public void setSourceOfFundLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> sourceOfFundLiveData) {
this.sourceOfFundLiveData = sourceOfFundLiveData;
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getPurposeOfRegistrationLiveData() {
return purposeOfRegistrationLiveData;
}
public void setPurposeOfRegistrationLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> purposeOfRegistrationLiveData) {
this.purposeOfRegistrationLiveData = purposeOfRegistrationLiveData;
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getMonthlyIncomeLiveData() {
return monthlyIncomeLiveData;
}
public void setMonthlyIncomeLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> monthlyIncomeLiveData) {
this.monthlyIncomeLiveData = monthlyIncomeLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getMobileNumberLiveData() {
return mobileNumberLiveData;
}
public void setMobileNumberLiveData(MutableLiveData<FormInputStateDTO<String>> mobileNumberLiveData) {
this.mobileNumberLiveData = mobileNumberLiveData;
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getBusinessTypeLiveData() {
return businessTypeLiveData;
}
public void setBusinessTypeLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> businessTypeLiveData) {
this.businessTypeLiveData = businessTypeLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getAddressLiveData() {
return addressLiveData;
}
public void setAddressLiveData(MutableLiveData<FormInputStateDTO<String>> addressLiveData) {
this.addressLiveData = addressLiveData;
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getIdTypeLiveData() {
return idTypeLiveData;
}
public void setIdTypeLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> idTypeLiveData) {
this.idTypeLiveData = idTypeLiveData;
}
public MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> getVisaStatusLiveData() {
return visaStatusLiveData;
}
public void setVisaStatusLiveData(MutableLiveData<FormInputStateDTO<ExistingIDTextDTO>> visaStatusLiveData) {
this.visaStatusLiveData = visaStatusLiveData;
}
public MutableLiveData<Boolean> getAllFieldsValidLiveData() {
return allFieldsValid;
}

2
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/existingCustomer/view/termsAndConditions/ExistingKycTermsAndConditionFragment.java

@ -8,6 +8,7 @@ import android.webkit.WebView;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProvider;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.presenter.ExistingKYCV3ViewModel;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
@ -41,6 +42,5 @@ public class ExistingKycTermsAndConditionFragment extends WebBrowserFragmentV2 {
setWebRequestData(webRequestModel);
loadWebView();
kycv3ViewModel = new ViewModelProvider(requireActivity()).get(ExistingKYCV3ViewModel.class);
}
}

10
app/src/main/java/com/swifttech/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3GatewayInterface.java

@ -14,16 +14,16 @@ import okhttp3.ResponseBody;
public interface KYCV3GatewayInterface extends PrivilegedGatewayInterface {
Observable<ResponseBody> getKycRelatedData(String auth,String customerID,String type);
Observable<ResponseBody> getKycRelatedData(String auth, String customerID, String type);
List<NativeCountry> getNativeCountryList(Context context);
List<NativeCountry> getNativeCountryList(Context context);
Observable<ResponseBody> validateParameters(String idType, String idNumber);
Observable<ResponseBody> validateParameters(String idType, String idNumber);
Observable<ResponseBody> submitKYCForm(KYCRelatedDataDTO kycRelatedDataDTO,String auth, KYCRequestDataDTO requestBody);
Observable<ResponseBody> submitKYCForm(KYCRelatedDataDTO kycRelatedDataDTO, String auth, KYCRequestDataDTO requestBody);
void saveSenderId(String senderId);
void saveSenderId(String senderId);
KYCRelatedDataDTO getMockedData();
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/login/LoginViewModelFactory.java

@ -5,7 +5,7 @@ import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.swifttech.remit.jmecustomer.features.login.gateway.LoginV2Gateway;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2Presenter;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2ViewModel;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2PresenterInterface;
public class LoginViewModelFactory implements ViewModelProvider.Factory {
@ -20,6 +20,6 @@ public class LoginViewModelFactory implements ViewModelProvider.Factory {
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
return (T) new LoginV2Presenter(view,new LoginV2Gateway());
return (T) new LoginV2ViewModel(view,new LoginV2Gateway());
}
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/login/presenter/LoginV2Presenter.java → app/src/main/java/com/swifttech/remit/jmecustomer/features/login/presenter/LoginV2ViewModel.java

@ -22,7 +22,7 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;
public class LoginV2Presenter extends BaseViewModel implements LoginV2PresenterInterface, LoginV2InteractorInterface {
public class LoginV2ViewModel extends BaseViewModel implements LoginV2PresenterInterface, LoginV2InteractorInterface {
private final LoginV2ContractInterface view;
@ -36,7 +36,7 @@ public class LoginV2Presenter extends BaseViewModel implements LoginV2PresenterI
private String newToken;
public LoginV2Presenter(LoginV2ContractInterface view, LoginV2Gateway gateway) {
public LoginV2ViewModel(LoginV2ContractInterface view, LoginV2Gateway gateway) {
this.view = view;
this.gateway = gateway;
remitAuthManager = RemitAuthManager.getGmeAuthManager((AppCompatActivity) view.getContext());

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/login/view/LoginV2Activity.java

@ -24,7 +24,7 @@ import com.swifttech.remit.jmecustomer.base.BaseActivity;
import com.swifttech.remit.jmecustomer.common.model.FormInputStateDTO;
import com.swifttech.remit.jmecustomer.features.home.view.HomeActivityV2;
import com.swifttech.remit.jmecustomer.features.login.LoginViewModelFactory;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2Presenter;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2ViewModel;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginV2PresenterInterface;
import com.swifttech.remit.jmecustomer.features.login.presenter.LoginViewLiveData;
import com.swifttech.remit.jmecustomer.features.registerv2.newcustomer.view.NewRegisterV2Activity;
@ -94,7 +94,7 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene
private void initialize() {
this.presenter = new ViewModelProvider(this, new LoginViewModelFactory(this)).get(LoginV2Presenter.class);
this.presenter = new ViewModelProvider(this, new LoginViewModelFactory(this)).get(LoginV2ViewModel.class);
LoginViewLiveData loginRelatedViewEvents = this.presenter.getLoginRelatedViewEvents(new LoginViewLiveData.LoginViewBindings(
RxTextView.textChanges(usernameId).skipInitialValue(),

113
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryAddEditFragment.java

@ -1,6 +1,5 @@
package com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputFilter;
@ -48,23 +47,23 @@ public class BeneficiaryAddEditFragment extends BaseFragment implements Recipie
public static final String TAG = RecipientAddEditActivity.class.getSimpleName();
private RecipientAccountNoTextWatcher recieverAccountNoTextWatcher;
private RecipientAccountNoTextWatcher receiverAccountNoTextWatcher;
private RecipientFirstNameTextWatcher recieverFirstNameTextWatcher;
private RecipientMiddleNameTextWatcher recieverMiddleNameTextWatcher;
private RecipientLastNameTextWatcher recieverLastNameTextWatcher;
private RecipientFullNameTextWatcher recieverFullNameTextWatcher;
private RecipientFirstNameTextWatcher receiverFirstNameTextWatcher;
private RecipientMiddleNameTextWatcher receiverMiddleNameTextWatcher;
private RecipientLastNameTextWatcher receiverLastNameTextWatcher;
private RecipientFullNameTextWatcher receiverFullNameTextWatcher;
private RecipientLocalFirstNameTextWatcher recieverFirstNameLocalTextWatcher;
private RecipientLocalMiddleNameTextWatcher recieverMiddleNameLocalTextWatcher;
private RecipientLocalLastNameTextWatcher recieverLastNameLocalTextWatcher;
private RecipientLocalFullNameTextWatcher recieverLocalFullNameTextWatcher;
private RecipientLocalFirstNameTextWatcher receiverFirstNameLocalTextWatcher;
private RecipientLocalMiddleNameTextWatcher receiverMiddleNameLocalTextWatcher;
private RecipientLocalLastNameTextWatcher receiverLastNameLocalTextWatcher;
private RecipientLocalFullNameTextWatcher receiverLocalFullNameTextWatcher;
private RecipientCityTextWatcher recieverCityTextWatcher;
private RecipientAddressTextWatcher recieverAddressTextWatcher;
private RecipientMobileNumberTextWatcher recieverMobileNoTextWatcher;
private RecipientEmailTextWatcher recieverEmailTextWatcher;
private RecipientIdNumberTextWatcher recieverIdNumberTextWatcher;
private RecipientCityTextWatcher receiverCityTextWatcher;
private RecipientAddressTextWatcher receiverAddressTextWatcher;
private RecipientMobileNumberTextWatcher receiverMobileNoTextWatcher;
private RecipientEmailTextWatcher receiverEmailTextWatcher;
private RecipientIdNumberTextWatcher receiverIdNumberTextWatcher;
GenericImageWithTextListingDialog<CountryServiceModel> countryListingDialog;
GenericImageWithTextListingDialog<NativeCountry> nativeCountryListingDialog;
@ -123,23 +122,23 @@ public class BeneficiaryAddEditFragment extends BaseFragment implements Recipie
private void initTextWatchers() {
Log.d(TAG, "Textwatcher Init");
recieverAccountNoTextWatcher = new RecipientAccountNoTextWatcher();
recieverFirstNameTextWatcher = new RecipientFirstNameTextWatcher();
recieverMiddleNameTextWatcher = new RecipientMiddleNameTextWatcher();
recieverLastNameTextWatcher = new RecipientLastNameTextWatcher();
recieverFullNameTextWatcher = new RecipientFullNameTextWatcher();
receiverAccountNoTextWatcher = new RecipientAccountNoTextWatcher();
receiverFirstNameTextWatcher = new RecipientFirstNameTextWatcher();
receiverMiddleNameTextWatcher = new RecipientMiddleNameTextWatcher();
receiverLastNameTextWatcher = new RecipientLastNameTextWatcher();
receiverFullNameTextWatcher = new RecipientFullNameTextWatcher();
recieverFirstNameLocalTextWatcher = new RecipientLocalFirstNameTextWatcher();
recieverMiddleNameLocalTextWatcher = new RecipientLocalMiddleNameTextWatcher();
recieverLastNameLocalTextWatcher = new RecipientLocalLastNameTextWatcher();
recieverLocalFullNameTextWatcher = new RecipientLocalFullNameTextWatcher();
receiverFirstNameLocalTextWatcher = new RecipientLocalFirstNameTextWatcher();
receiverMiddleNameLocalTextWatcher = new RecipientLocalMiddleNameTextWatcher();
receiverLastNameLocalTextWatcher = new RecipientLocalLastNameTextWatcher();
receiverLocalFullNameTextWatcher = new RecipientLocalFullNameTextWatcher();
recieverCityTextWatcher = new RecipientCityTextWatcher();
recieverAddressTextWatcher = new RecipientAddressTextWatcher();
recieverMobileNoTextWatcher = new RecipientMobileNumberTextWatcher();
recieverEmailTextWatcher = new RecipientEmailTextWatcher();
recieverIdNumberTextWatcher = new RecipientIdNumberTextWatcher();
receiverCityTextWatcher = new RecipientCityTextWatcher();
receiverAddressTextWatcher = new RecipientAddressTextWatcher();
receiverMobileNoTextWatcher = new RecipientMobileNumberTextWatcher();
receiverEmailTextWatcher = new RecipientEmailTextWatcher();
receiverIdNumberTextWatcher = new RecipientIdNumberTextWatcher();
}
@ -435,44 +434,44 @@ public class BeneficiaryAddEditFragment extends BaseFragment implements Recipie
@Override
public void registerTextWatchers(boolean action) {
if (action) {
binding.edReceiverAccountNo.addTextChangedListener(recieverAccountNoTextWatcher);
binding.edReceiverAccountNo.addTextChangedListener(receiverAccountNoTextWatcher);
binding.edReceiverFirstName.addTextChangedListener(recieverFirstNameTextWatcher);
binding.edReceiverMiddleName.addTextChangedListener(recieverMiddleNameTextWatcher);
binding.edReceiverLastName.addTextChangedListener(recieverLastNameTextWatcher);
binding.edReceiverFullName.addTextChangedListener(recieverFullNameTextWatcher);
binding.edReceiverFirstName.addTextChangedListener(receiverFirstNameTextWatcher);
binding.edReceiverMiddleName.addTextChangedListener(receiverMiddleNameTextWatcher);
binding.edReceiverLastName.addTextChangedListener(receiverLastNameTextWatcher);
binding.edReceiverFullName.addTextChangedListener(receiverFullNameTextWatcher);
binding.edReceiverLocalFirstName.addTextChangedListener(recieverFirstNameLocalTextWatcher);
binding.edReceiverLocalMiddleName.addTextChangedListener(recieverMiddleNameLocalTextWatcher);
binding.edReceiverLocalLastName.addTextChangedListener(recieverLastNameLocalTextWatcher);
binding.edReceiverLocalFullName.addTextChangedListener(recieverLocalFullNameTextWatcher);
binding.edReceiverLocalFirstName.addTextChangedListener(receiverFirstNameLocalTextWatcher);
binding.edReceiverLocalMiddleName.addTextChangedListener(receiverMiddleNameLocalTextWatcher);
binding.edReceiverLocalLastName.addTextChangedListener(receiverLastNameLocalTextWatcher);
binding.edReceiverLocalFullName.addTextChangedListener(receiverLocalFullNameTextWatcher);
binding.edReceiverCity.addTextChangedListener(recieverCityTextWatcher);
binding.edReceiverAddress.addTextChangedListener(recieverAddressTextWatcher);
binding.edReceiverMobileNo.addTextChangedListener(recieverMobileNoTextWatcher);
binding.edReceiverEmail.addTextChangedListener(recieverEmailTextWatcher);
binding.edReceiverIdNumber.addTextChangedListener(recieverIdNumberTextWatcher);
binding.edReceiverCity.addTextChangedListener(receiverCityTextWatcher);
binding.edReceiverAddress.addTextChangedListener(receiverAddressTextWatcher);
binding.edReceiverMobileNo.addTextChangedListener(receiverMobileNoTextWatcher);
binding.edReceiverEmail.addTextChangedListener(receiverEmailTextWatcher);
binding.edReceiverIdNumber.addTextChangedListener(receiverIdNumberTextWatcher);
} else {
binding.edReceiverAccountNo.addTextChangedListener(recieverAccountNoTextWatcher);
binding.edReceiverAccountNo.addTextChangedListener(receiverAccountNoTextWatcher);
binding.edReceiverFirstName.addTextChangedListener(recieverFirstNameTextWatcher);
binding.edReceiverMiddleName.addTextChangedListener(recieverMiddleNameTextWatcher);
binding.edReceiverLastName.addTextChangedListener(recieverLastNameTextWatcher);
binding.edReceiverFullName.addTextChangedListener(recieverFullNameTextWatcher);
binding.edReceiverFirstName.addTextChangedListener(receiverFirstNameTextWatcher);
binding.edReceiverMiddleName.addTextChangedListener(receiverMiddleNameTextWatcher);
binding.edReceiverLastName.addTextChangedListener(receiverLastNameTextWatcher);
binding.edReceiverFullName.addTextChangedListener(receiverFullNameTextWatcher);
binding.edReceiverLocalFirstName.addTextChangedListener(recieverFirstNameLocalTextWatcher);
binding.edReceiverLocalMiddleName.addTextChangedListener(recieverMiddleNameLocalTextWatcher);
binding.edReceiverLocalLastName.addTextChangedListener(recieverLastNameLocalTextWatcher);
binding.edReceiverLocalFullName.addTextChangedListener(recieverLocalFullNameTextWatcher);
binding.edReceiverLocalFirstName.addTextChangedListener(receiverFirstNameLocalTextWatcher);
binding.edReceiverLocalMiddleName.addTextChangedListener(receiverMiddleNameLocalTextWatcher);
binding.edReceiverLocalLastName.addTextChangedListener(receiverLastNameLocalTextWatcher);
binding.edReceiverLocalFullName.addTextChangedListener(receiverLocalFullNameTextWatcher);
binding.edReceiverCity.addTextChangedListener(recieverCityTextWatcher);
binding.edReceiverAddress.addTextChangedListener(recieverAddressTextWatcher);
binding.edReceiverMobileNo.addTextChangedListener(recieverMobileNoTextWatcher);
binding.edReceiverEmail.addTextChangedListener(recieverEmailTextWatcher);
binding.edReceiverIdNumber.addTextChangedListener(recieverIdNumberTextWatcher);
binding.edReceiverCity.addTextChangedListener(receiverCityTextWatcher);
binding.edReceiverAddress.addTextChangedListener(receiverAddressTextWatcher);
binding.edReceiverMobileNo.addTextChangedListener(receiverMobileNoTextWatcher);
binding.edReceiverEmail.addTextChangedListener(receiverEmailTextWatcher);
binding.edReceiverIdNumber.addTextChangedListener(receiverIdNumberTextWatcher);
}
}

42
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/BeneficiaryTermsAndConditionFragment.java

@ -1,42 +0,0 @@
package com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import androidx.annotation.Nullable;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_TERMS_N_CONDITIONS;
public class BeneficiaryTermsAndConditionFragment extends WebBrowserFragmentV2 {
private static String TAG = BeneficiaryTermsAndConditionFragment.class.getSimpleName();
private String currentLoadedUrl="";
@Override
protected void doTask(WebRequestModel webRequestModel, WebView webView) {
if(webRequestModel!=null&&!currentLoadedUrl.equalsIgnoreCase(webRequestModel.getUrl())) {
this.currentLoadedUrl=webRequestModel.getUrl();
webView.loadUrl(webRequestModel.getUrl());
Log.d(this.getClass().getSimpleName(),currentLoadedUrl);
}
}
@Override
protected void proceedButtonClicked() {
Log.d(TAG, "proceedButtonClicked: ");
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
showAcceptOption(true);
WebRequestModel webRequestModel = new WebRequestModel("", JME_TERMS_N_CONDITIONS,null);
setWebRequestData(webRequestModel);
loadWebView();
}
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientlisting/view/recipientaddedit/RecipientAddEditActivity.java

@ -14,7 +14,6 @@ import com.swifttech.remit.jmecustomer.common.customwidgets.GenericViewPagerAdap
import com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView;
import com.swifttech.remit.jmecustomer.features.recipientlisting.model.recipientlisting.ReceiverInfoModel;
import com.swifttech.remit.jmecustomer.features.recipientlisting.presenter.recipientaddedit.RecipientAddContractInterface;
import com.swifttech.remit.jmecustomer.features.recipientlisting.presenter.recipientaddedit.RecipientAddEditBaseViewModel;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import java.util.ArrayList;
@ -57,8 +56,9 @@ public class RecipientAddEditActivity extends BaseActivity implements RecipientA
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recipient_add_edit);
ButterKnife.bind(this);
setupViewPager();
init();
setupViewPager();
}

29
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddEditBaseV3ViewModel.java

@ -5,6 +5,7 @@ import android.text.TextUtils;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BasePresenter;
import com.swifttech.remit.jmecustomer.base.BaseViewModel;
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog;
import com.swifttech.remit.jmecustomer.common.view.AnswerInputDialog;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.model.NativeCountry;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientaddeditV3.countryservice.CountryServiceModel;
@ -15,6 +16,7 @@ import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipi
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientaddeditV3.dynamicvalidation.ValidationRuleModel;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.AgentV3Model;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model;
import com.swifttech.remit.jmecustomer.features.sendmoney.model.SendMoneyRequiredDataV3;
import com.swifttech.remit.jmecustomer.features.sendmoney.model.payoutmode.BankBranchDTO;
import java.util.List;
@ -24,6 +26,9 @@ public abstract class RecipientAddEditBaseV3ViewModel extends BaseViewModel impl
protected final RecipientAddV3ContractInterface view;
protected RecipientDetailValidatorV3 validator;
protected String sucessMessage=null;
protected String receiverId=null;
protected SendMoneyRequiredDataV3 sendMoneyRequiredDataV3;
public RecipientAddEditBaseV3ViewModel(
@ -265,14 +270,36 @@ public abstract class RecipientAddEditBaseV3ViewModel extends BaseViewModel impl
@Override
public void proceedToEditSucess() {
}
@Override
public void proceedToAddSucess() {
if(sucessMessage!=null ){
view.getRecipientAddEditV3ContractInterface().promptToSendMoney(new GenericPromptDialog.GenericDialogPromptListener() {
@Override
public void onNegativeBtnPressed() {
view.onAddSuccess(receiverId);
}
@Override
public void onPositiveBtnPressed() {
if(sendMoneyRequiredDataV3!=null){
view.getRecipientAddEditV3ContractInterface().redirectToSendMoney(sendMoneyRequiredDataV3);
}
}
}, sucessMessage);
}
}
@Override
public void showEmailCodePopUp(){
view.getRecipientTermsAndConditionsContract().showEmailCodePromptDialog();
}
private boolean shouldPromptToInputAnswer(DropDownDTO optionType) {
return (optionType != null && ("Other (Please specify)".equalsIgnoreCase(optionType.getText())));
return (optionType != null && ("Other (please specify)".equalsIgnoreCase(optionType.getText())));
}
}

7
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddV3ContractInterface.java

@ -16,7 +16,14 @@ public interface RecipientAddV3ContractInterface extends BaseContractInterface
void showTermsAndConditionScreen();
RecipientAddEditV3ContractInterface getRecipientAddEditV3ContractInterface();
RecipientTermsAndConditionsContract getRecipientTermsAndConditionsContract();
interface RecipientTermsAndConditionsContract extends BaseContractInterface{
void showEmailCodePromptDialog();
}
interface RecipientAddEditV3ContractInterface extends BaseContractInterface {

300
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java

@ -173,20 +173,20 @@ public class RecipientDetailValidatorV3 {
recipientInfo.setCountryCode(selectedCountryServiceData.getCountryCode());
recipientInfo.setCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.updateValueToWidgetSelectedCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetSelectedCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.showSelectedCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
view.getRecipientAddEditV3ContractInterface().showSelectedCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
recipientInfo.setPaymentMethod(null);
view.updateValueToWidgetSelectedPaymentMethod(null);
view.setSubmitButtonEnabled(false);
view.showPaymentSelectionView(true);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetSelectedPaymentMethod(null);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().showPaymentSelectionView(true);
//By default we update native country same as selected Country
if(recipientInfo==null || TextUtils.isEmpty(recipientInfo.getNativeCountry())){
view.updateValueToWidgetNativeCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.showNativeCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetNativeCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.getRecipientAddEditV3ContractInterface().showNativeCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
recipientInfo.setNativeCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
recipientInfo.setNativeCountryCode(selectedCountryServiceData.getCountryCode());
recipientInfo.setNativeCountryId(selectedCountryServiceData.getCountryId());
@ -202,11 +202,11 @@ public class RecipientDetailValidatorV3 {
recipientInfo.setCountryCode(selectedCountryServiceData.getCountryCode());
recipientInfo.setCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.updateValueToWidgetSelectedCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetSelectedCountry(Utils.formatToUpperCaseSafely(selectedCountryServiceData.getCountryName()));
view.showSelectedCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
view.getRecipientAddEditV3ContractInterface().showSelectedCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedCountryServiceData.getCountryCode()));
view.showPaymentSelectionView(true);
view.getRecipientAddEditV3ContractInterface().showPaymentSelectionView(true);
}
@ -214,7 +214,7 @@ public class RecipientDetailValidatorV3 {
recipientInfo.setPaymentMethod(new PaymentMethodV3Model(selectedServiceType.getId(), selectedServiceType.getText(), selectedServiceType.getDescription(), selectedServiceType.getCurrency()));
view.updateValueToWidgetSelectedPaymentMethod(selectedServiceType.getDescription());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetSelectedPaymentMethod(selectedServiceType.getDescription());
//If current agent if not null, persist associated account number
@ -224,9 +224,9 @@ public class RecipientDetailValidatorV3 {
recipientInfo.getAgent().setAccountNo(accountNo);
}
view.updateValueToWidgetBankName(null);
view.updateValueToWidgetBranchName(null);
view.setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBankName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBranchName(null);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
ValidationRuleModel branchValidationRule = validationRuleModelMap.get(FIELD_BANK_NAME);
if (branchValidationRule != null) {
@ -239,17 +239,17 @@ public class RecipientDetailValidatorV3 {
if (validationRuleModel != null) {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (recipientInfo.getAgent() == null) {
view.setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
validationRuleModel.updateValidity(false);
view.setErrorOnWidgetAccountNo(stringExtractor.getStringFromStringId(R.string.select_bank_first));
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetAccountNo(stringExtractor.getStringFromStringId(R.string.select_bank_first));
} else if (error == null) {
recipientInfo.getAgent().setAccountNo(text);
view.setErrorOnWidgetAccountNo(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetAccountNo(null);
validateAll();
} else {
recipientInfo.getAgent().setAccountNo(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetAccountNo(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetAccountNo(error);
}
}
}
@ -261,12 +261,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setFirstName(text);
view.setErrorOnWidgetFirstName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetFirstName(null);
validateAll();
} else {
recipientInfo.setFirstName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetFirstName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetFirstName(error);
}
}
}
@ -277,12 +277,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setMiddleName(text);
view.setErrorOnWidgetMiddleName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetMiddleName(null);
validateAll();
} else {
recipientInfo.setMiddleName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetMiddleName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetMiddleName(error);
}
}
}
@ -293,12 +293,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setLastName(text);
view.setErrorOnWidgetLastName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLastName(null);
validateAll();
} else {
recipientInfo.setLastName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetLastName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLastName(error);
}
}
}
@ -311,12 +311,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setFullName(text);
view.setErrorOnWidgetFullName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetFullName(null);
validateAll();
} else {
recipientInfo.setFullName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetFullName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetFullName(error);
}
}
}
@ -328,12 +328,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setCity(text);
view.setErrorOnWidgetCity(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetCity(null);
validateAll();
} else {
recipientInfo.setCity(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetCity(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetCity(error);
}
}
}
@ -345,12 +345,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setAddress(text);
view.setErrorOnWidgetAddress(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetAddress(null);
validateAll();
} else {
view.setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
recipientInfo.setAddress(null);
view.setErrorOnWidgetAddress(error);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetAddress(error);
}
}
}
@ -362,12 +362,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setMobile(text);
view.setErrorOnWidgetMobileNumber(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetMobileNumber(null);
validateAll();
} else {
recipientInfo.setMobile(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetMobileNumber(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetMobileNumber(error);
}
}
}
@ -381,17 +381,17 @@ public class RecipientDetailValidatorV3 {
if (Utils.isValidEmail(text)) {
recipientInfo.setEmail(text);
view.setErrorOnWidgetEmail(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetEmail(null);
validateAll();
} else {
recipientInfo.setEmail(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetEmail(stringExtractor.getStringFromStringId(R.string.email_valid_error));
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetEmail(stringExtractor.getStringFromStringId(R.string.email_valid_error));
}
} else {
recipientInfo.setEmail(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetEmail(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetEmail(error);
}
}
}
@ -403,12 +403,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setIdNumber(text);
view.setErrorOnWidgetIDNumber(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetIDNumber(null);
validateAll();
} else {
recipientInfo.setIdNumber(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetIDNumber(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetIDNumber(error);
}
}
}
@ -420,12 +420,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setLocalFirstName(text);
view.setErrorOnWidgetLocalFirstName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalFirstName(null);
validateAll();
} else {
recipientInfo.setLocalFirstName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetLocalFirstName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalFirstName(error);
}
}
}
@ -437,12 +437,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setLocalMiddleName(text);
view.setErrorOnWidgetLocalMiddleName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalMiddleName(null);
validateAll();
} else {
recipientInfo.setLocalMiddleName(null);
view.setSubmitButtonEnabled(false);
view.setErrorOnWidgetLocalMiddleName(error);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalMiddleName(error);
}
}
}
@ -454,12 +454,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text);
if (error == null) {
recipientInfo.setLocalLastName(text);
view.setErrorOnWidgetLocalLastName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalLastName(null);
validateAll();
} else {
view.setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
recipientInfo.setLocalLastName(null);
view.setErrorOnWidgetLocalLastName(error);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalLastName(error);
}
}
}
@ -470,12 +470,12 @@ public class RecipientDetailValidatorV3 {
String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(fullName);
if (error == null) {
recipientInfo.setLocalFullName(fullName);
view.setErrorOnWidgetLocalFullName(null);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalFullName(null);
validateAll();
} else {
view.setSubmitButtonEnabled(false);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
recipientInfo.setLocalFullName(null);
view.setErrorOnWidgetLocalFullName(error);
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetLocalFullName(error);
}
}
@ -489,8 +489,8 @@ public class RecipientDetailValidatorV3 {
if (validationRuleModel != null) {
recipientInfo.updateSelectedBank(selectedBank);
validationRuleModel.updateValidity(true);
view.updateValueToWidgetBankName(selectedBank.toString());
view.setErrorOnWidgetBank(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBankName(selectedBank.toString());
view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetBank(null);
if (selectedBank.getPayoutPartner() != null && selectedBank.getPayoutPartner().length() > 0)
@ -505,14 +505,14 @@ public class RecipientDetailValidatorV3 {
ValidationRuleModel branchValidationRule = validationRuleModelMap.get(FIELD_BRANCH_NAME);
// if (branchValidationRule != null && branchValidationRule.isFieldRequired() && "True".equalsIgnoreCase(selectedBank.getBranchRequired())) {
if (branchValidationRule != null && branchValidationRule.isFieldRequired()) {
view.updateValueToWidgetBranchName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBranchName(null);
recipientInfo.getAgent().setBranch(null);
branchValidationRule.updateValidity(false);
view.updateValidationRuleToWidgetBranchName(true, null);
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetBranchName(true, null);
} else {
//We conclude that branch is not a required field
recipientInfo.getAgent().setBranch(null);
view.updateValidationRuleToWidgetBranchName(false, null);
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetBranchName(false, null);
if (branchValidationRule != null)
branchValidationRule.updateValidity(true);
@ -523,7 +523,7 @@ public class RecipientDetailValidatorV3 {
ValidationRuleModel accountValidationRule = validationRuleModelMap.get(FIELD_ACCOUNT_NO);
if (accountValidationRule != null) {
if ("True".equalsIgnoreCase(selectedBank.getIsAccountRequired())) {
view.updateValidationRuleToWidgetAccountNo(true,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetAccountNo(true,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(accountValidationRule.getKeyboardType(), accountValidationRule.isLocalKeyboardAllowed(),
accountValidationRule.getMaxFieldLengthInt()));
updateAccountNo(recipientInfo.getAgent().getAccountNo());
@ -533,7 +533,7 @@ public class RecipientDetailValidatorV3 {
//We conclude that account is not a required field
//Account number is removed from model just before sending to server using @clearAccountIfNotRequired()
accountValidationRule.updateValidity(true);
view.updateValidationRuleToWidgetAccountNo(false,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetAccountNo(false,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(accountValidationRule.getKeyboardType(), accountValidationRule.isLocalKeyboardAllowed(),
accountValidationRule.getMaxFieldLengthInt()));
}
@ -551,7 +551,7 @@ public class RecipientDetailValidatorV3 {
if (validationRuleModel != null) {
if (recipientInfo.updateBranch(selectedBranch)) {
view.updateValueToWidgetBranchName(selectedBranch.getName());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBranchName(selectedBranch.getName());
validationRuleModel.updateValidity(true);
validateAll();
}
@ -565,10 +565,10 @@ public class RecipientDetailValidatorV3 {
if (validationRuleModel != null) {
recipientInfo.updateProvince(selectedProvinces);
validationRuleModel.updateValidity(true);
view.updateValueToWidgetProvince(selectedProvinces.toString());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetProvince(selectedProvinces.toString());
//Reseting previously selected district
view.updateValueToWidgetDistrict(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetDistrict(null);
recipientInfo.setDistrictId(null);
@ -579,13 +579,13 @@ public class RecipientDetailValidatorV3 {
ValidationRuleModel districtValidationRule = validationRuleModelMap.get(FIELD_DISTRICT);
if (districtValidationRule != null)
districtValidationRule.updateValidity(true);
view.updateValidationRuleToWidgetDistrict(false, null);
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetDistrict(false, null);
} else {
ValidationRuleModel districtValidationRule = validationRuleModelMap.get(FIELD_DISTRICT);
if (districtValidationRule != null)
districtValidationRule.updateValidity(false);
view.updateValidationRuleToWidgetDistrict(true, null);
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetDistrict(true, null);
}
@ -598,7 +598,7 @@ public class RecipientDetailValidatorV3 {
return;
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_DISTRICT);
if (validationRuleModel != null) {
view.updateValueToWidgetDistrict(selectedDistrict.toString());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetDistrict(selectedDistrict.toString());
recipientInfo.updateDistrict(selectedDistrict);
validationRuleModel.updateValidity(true);
validateAll();
@ -610,7 +610,7 @@ public class RecipientDetailValidatorV3 {
return;
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_TRANSFER_REASON);
if (validationRuleModel != null) {
view.updateValueToWidgetTransferReason(selectedTransferReason.toString());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetTransferReason(selectedTransferReason.toString());
recipientInfo.updateTransferReason(selectedTransferReason);
validationRuleModel.updateValidity(true);
validateAll();
@ -623,7 +623,7 @@ public class RecipientDetailValidatorV3 {
return;
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_ID_TYPE);
if (validationRuleModel != null) {
view.updateValueToWidgetIDType(selectedIDType.toString());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetIDType(selectedIDType.toString());
recipientInfo.updateIdType(selectedIDType);
validationRuleModel.updateValidity(true);
validateAll();
@ -635,7 +635,7 @@ public class RecipientDetailValidatorV3 {
return;
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_REALATION_GROUP);
if (validationRuleModel != null) {
view.updateValueToWidgetRelation(selectedRelation.toString());
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetRelation(selectedRelation.toString());
recipientInfo.updateRelation(selectedRelation);
validationRuleModel.updateValidity(true);
validateAll();
@ -689,7 +689,7 @@ public class RecipientDetailValidatorV3 {
switch (rule.getField()) {
case FIELD_BANK_NAME:
view.updateValidationRuleToWidgetBankName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetBankName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -698,13 +698,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_BANK_NAME, rule);
} else {
recipientInfo.setAgent(null);
view.updateValueToWidgetBankName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBankName(null);
}
view.addOptionalAsHintToWidgetBankName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetBankName(rule.isOptional());
break;
case FIELD_BRANCH_NAME:
view.updateValidationRuleToWidgetBranchName(
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetBranchName(
isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),
rule.isLocalKeyboardAllowed(),
@ -720,16 +720,16 @@ public class RecipientDetailValidatorV3 {
AgentV3Model agentV3Model = recipientInfo.getAgent();
if (agentV3Model != null) {
agentV3Model.setBranch(null);
view.updateValueToWidgetBranchName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetBranchName(null);
}
}
view.addOptionalAsHintToWidgetBranch(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetBranch(rule.isOptional());
break;
case FIELD_ACCOUNT_NO:
view.updateValidationRuleToWidgetAccountNo(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetAccountNo(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -740,15 +740,15 @@ public class RecipientDetailValidatorV3 {
AgentV3Model agentV3Model = recipientInfo.getAgent();
if (agentV3Model != null) {
agentV3Model.setAccountNo(null);
view.updateValueToWidgetAccountNo(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetAccountNo(null);
}
}
view.addOptionalAsHintToWidgetAccountNumber(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetAccountNumber(rule.isOptional());
break;
case FIELD_ID_TYPE:
view.updateValidationRuleToWidgetIDType(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetIDType(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -757,13 +757,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_ID_TYPE, rule);
} else {
recipientInfo.setIdType(null);
view.updateValueToWidgetIDType(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetIDType(null);
}
view.addOptionalAsHintToWidgetIDType(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetIDType(rule.isOptional());
break;
case FIELD_ID_NUMBER:
view.updateValidationRuleToWidgetIDNumber(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetIDNumber(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -772,13 +772,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_ID_NUMBER, rule);
} else {
recipientInfo.setIdNumber(null);
view.updateValueToWidgetIDNumber(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetIDNumber(null);
}
view.addOptionalAsHintToWidgetIDNumber(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetIDNumber(rule.isOptional());
break;
case FIELD_FIRST_NAME:
view.updateValidationRuleToWidgetFirstName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetFirstName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -787,14 +787,14 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_FIRST_NAME, rule);
} else {
recipientInfo.setFirstName(null);
view.updateValueToWidgetFirstName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetFirstName(null);
}
view.addOptionalAsHintToWidgetFirstName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetFirstName(rule.isOptional());
break;
case FIELD_MIDDLE_NAME:
view.updateValidationRuleToWidgetMiddleName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetMiddleName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -803,14 +803,14 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_MIDDLE_NAME, rule);
} else {
recipientInfo.setMiddleName(null);
view.updateValueToWidgetMiddleName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetMiddleName(null);
}
view.addOptionalAsHintToWidgetMiddleName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetMiddleName(rule.isOptional());
break;
case FIELD_LAST_NAME:
view.updateValidationRuleToWidgetLastName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetLastName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -819,14 +819,14 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_LAST_NAME, rule);
} else {
recipientInfo.setLastName(null);
view.updateValueToWidgetLastName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetLastName(null);
}
view.addOptionalAsHintToWidgetLastName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetLastName(rule.isOptional());
break;
case FIELD_FULL_NAME:
view.updateValidationRuleToWidgetFullName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetFullName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -836,13 +836,13 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setFullName(null);
view.updateValueToWidgetFullName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetFullName(null);
}
view.addOptionalAsHintToWidgetFullName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetFullName(rule.isOptional());
break;
case FIELD_FIRST_NAME_IN_LOCAL:
view.updateValidationRuleToWidgetLocalFirstName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetLocalFirstName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -851,13 +851,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_FIRST_NAME_IN_LOCAL, rule);
} else {
recipientInfo.setLocalFirstName(null);
view.updateValueToWidgetLocalFirstName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetLocalFirstName(null);
}
view.addOptionalAsHintToWidgetLocalFirstName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetLocalFirstName(rule.isOptional());
break;
case FIELD_MIDDLE_NAME_IN_LOCAL:
view.updateValidationRuleToWidgetLocalMiddleName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetLocalMiddleName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -866,13 +866,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_MIDDLE_NAME_IN_LOCAL, rule);
} else {
recipientInfo.setLocalMiddleName(null);
view.updateValueToWidgetLocalMiddleName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetLocalMiddleName(null);
}
view.addOptionalAsHintToWidgetLocalMiddleName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetLocalMiddleName(rule.isOptional());
break;
case FIELD_LAST_NAME_IN_LOCAL:
view.updateValidationRuleToWidgetLocalLastName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetLocalLastName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -881,13 +881,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_LAST_NAME_IN_LOCAL, rule);
} else {
recipientInfo.setLocalLastName(null);
view.updateValueToWidgetLocalLastName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetLocalLastName(null);
}
view.addOptionalAsHintToWidgetLocalLastName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetLocalLastName(rule.isOptional());
break;
case FIELD_LOCAL_NAME:
view.updateValidationRuleToWidgetLocalFullName(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetLocalFullName(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -896,13 +896,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_LOCAL_NAME, rule);
} else {
recipientInfo.setLocalFullName(null);
view.updateValueToWidgetLocalFullName(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetLocalFullName(null);
}
view.addOptionalAsHintToWidgetLocalFullName(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetLocalFullName(rule.isOptional());
break;
case FIELD_MOBILE_NUMBER:
view.updateValidationRuleToWidgetMobileNumber(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetMobileNumber(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -911,13 +911,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_MOBILE_NUMBER, rule);
} else {
recipientInfo.setMobile(null);
view.updateValueToWidgetMobileNumber(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetMobileNumber(null);
}
view.addOptionalAsHintToWidgetMobileNumber(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetMobileNumber(rule.isOptional());
break;
case FIELD_PROVINCE:
view.updateValidationRuleToWidgetProvince(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetProvince(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -927,13 +927,13 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setStateId(null);
recipientInfo.setState(null);
view.updateValueToWidgetProvince(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetProvince(null);
}
view.addOptionalAsHintToWidgetProvince(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetProvince(rule.isOptional());
break;
case FIELD_DISTRICT:
view.updateValidationRuleToWidgetDistrict(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetDistrict(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -943,13 +943,13 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setDistrictId(null);
recipientInfo.setDistrict(null);
view.updateValueToWidgetDistrict(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetDistrict(null);
}
view.addOptionalAsHintToWidgetDistrict(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetDistrict(rule.isOptional());
break;
case FIELD_CITY:
view.updateValidationRuleToWidgetCity(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetCity(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -958,13 +958,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_CITY, rule);
} else {
recipientInfo.setCity(null);
view.updateValueToWidgetCity(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetCity(null);
}
view.addOptionalAsHintToWidgetCity(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetCity(rule.isOptional());
break;
case FIELD_ADDRESS:
view.updateValidationRuleToWidgetAddress(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetAddress(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -973,13 +973,13 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_ADDRESS, rule);
} else {
recipientInfo.setAddress(null);
view.updateValueToWidgetAddress(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetAddress(null);
}
view.addOptionalAsHintToWidgetAddress(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetAddress(rule.isOptional());
break;
case FIELD_REALATION_GROUP:
view.updateValidationRuleToWidgetRelation(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetRelation(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -989,13 +989,13 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setRelationshipId(null);
recipientInfo.setRelationship(null);
view.updateValueToWidgetRelation(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetRelation(null);
}
view.addOptionalAsHintToWidgetRelation(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetRelation(rule.isOptional());
break;
case FIELD_TRANSFER_REASON:
view.updateValidationRuleToWidgetTransferReason(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetTransferReason(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -1006,13 +1006,13 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setPurposeOfRemitId(null);
recipientInfo.setPurposeOfRemit(null);
view.updateValueToWidgetTransferReason(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetTransferReason(null);
}
view.addOptionalAsHintToWidgetTransferReason(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetTransferReason(rule.isOptional());
break;
case FIELD_EMAIL:
view.updateValidationRuleToWidgetEmail(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetEmail(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -1021,14 +1021,14 @@ public class RecipientDetailValidatorV3 {
validationRuleModelMap.put(FIELD_EMAIL, rule);
} else {
recipientInfo.setEmail(null);
view.updateValueToWidgetEmail(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetEmail(null);
}
view.addOptionalAsHintToWidgetEmail(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetEmail(rule.isOptional());
break;
case FIELD_NATIVE_COUNTRY:
view.updateValidationRuleToWidgetNativeCountry(isFieldRequired,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetNativeCountry(isFieldRequired,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
if (isFieldRequired) {
@ -1038,9 +1038,9 @@ public class RecipientDetailValidatorV3 {
} else {
recipientInfo.setNativeCountry(null);
view.updateValueToWidgetNativeCountry(null);
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetNativeCountry(null);
}
view.addOptionalAsHintToWidgetNativeCountry(rule.isOptional());
view.getRecipientAddEditV3ContractInterface().addOptionalAsHintToWidgetNativeCountry(rule.isOptional());
break;
}
@ -1064,7 +1064,7 @@ public class RecipientDetailValidatorV3 {
break;
}
}
view.setSubmitButtonEnabled(areAllFormValid);
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(areAllFormValid);
}
@ -1087,7 +1087,7 @@ public class RecipientDetailValidatorV3 {
if (recipientInfo.getAgent() != null && recipientInfo.getAgent().getId() != null) {
PaymentBankModel selectedBank = availableDynamicValidationModel.getBankFromId(recipientInfo.getAgent().getId());
if (selectedBank != null && !"True".equalsIgnoreCase(selectedBank.getBranchRequired())) {
view.updateValidationRuleToWidgetBranchName(false, null);
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetBranchName(false, null);
rule.updateValidity(true);
recipientInfo.getAgent().setBranch(null);
}
@ -1102,7 +1102,7 @@ public class RecipientDetailValidatorV3 {
if (recipientInfo.getAgent() != null && recipientInfo.getAgent().getId() != null) {
PaymentBankModel selectedBank = availableDynamicValidationModel.getBankFromId(recipientInfo.getAgent().getId());
if (selectedBank != null && !"True".equalsIgnoreCase(selectedBank.getIsAccountRequired())) {
view.updateValidationRuleToWidgetAccountNo(false,
view.getRecipientAddEditV3ContractInterface().updateValidationRuleToWidgetAccountNo(false,
EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(),
rule.getMaxFieldLengthInt()));
@ -1164,7 +1164,7 @@ public class RecipientDetailValidatorV3 {
case FIELD_MOBILE_NUMBER:
if (rule.isFieldRequired() && !rule.isOptional()) {
clearMobileNumberPrefixAndUpdate();
view.showMobilePrefixAndFlag(gateway.getMobilePrefixFromCountryCode(recipientInfo.getCountryCode()), CountryFlagMapper.getFlagFromCountryCode(recipientInfo.getCountryCode()));
view.getRecipientAddEditV3ContractInterface().showMobilePrefixAndFlag(gateway.getMobilePrefixFromCountryCode(recipientInfo.getCountryCode()), CountryFlagMapper.getFlagFromCountryCode(recipientInfo.getCountryCode()));
}
break;
@ -1213,8 +1213,8 @@ public class RecipientDetailValidatorV3 {
return;
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_NATIVE_COUNTRY);
if (validationRuleModel != null) {
view.updateValueToWidgetNativeCountry(selectedNativeCountry.toString());
view.showNativeCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedNativeCountry.getCountryCode()));
view.getRecipientAddEditV3ContractInterface().updateValueToWidgetNativeCountry(selectedNativeCountry.toString());
view.getRecipientAddEditV3ContractInterface().showNativeCountryFlag(CountryFlagMapper.getFlagFromCountryCode(selectedNativeCountry.getCountryCode()));
recipientInfo.setNativeCountry(selectedNativeCountry.getText());
recipientInfo.setNativeCountryCode(selectedNativeCountry.getCountryCode());
recipientInfo.setNativeCountryId(selectedNativeCountry.getId());
@ -1229,8 +1229,8 @@ public class RecipientDetailValidatorV3 {
public void updateBankValidationWhenPartnerHasChanged() {
ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_BANK_NAME);
if (validationRuleModel != null) {
// view.setErrorOnWidgetBank(stringExtractor.getStringFromStringId(R.string.select_different_bank_text));
view.setSubmitButtonEnabled(false);
// view.getRecipientAddEditV3ContractInterface().setErrorOnWidgetBank(stringExtractor.getStringFromStringId(R.string.select_different_bank_text));
view.getRecipientAddEditV3ContractInterface().setSubmitButtonEnabled(false);
}
}
}

1
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/RecipientPresenterInterface.java

@ -30,6 +30,7 @@ public interface RecipientPresenterInterface extends BasePresenterInterface {
void proceedToEditSucess();
void proceedToAddSucess();
void showEmailCodePopUp();
WebRequestModel getWebRequestDataForTermsAndCondition();

27
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/add/RecipientAddV3ViewModel.java

@ -329,20 +329,10 @@ public class RecipientAddV3ViewModel extends RecipientAddEditBaseV3ViewModel {
@Override
protected void onSuccess(GenericResponseDataModel<ReceiverInfoV3Model> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
String send_money_to_string = t.getMsg()+" \n "+getStringfromStringId(R.string.recipient_add_success_message_text).replace("xxx", getReceiverName(t.getData()));
view.getRecipientAddEditV3ContractInterface().promptToSendMoney(new GenericPromptDialog.GenericDialogPromptListener() {
@Override
public void onNegativeBtnPressed() {
view.onAddSuccess(t.getData().getReceiverId());
}
@Override
public void onPositiveBtnPressed() {
SendMoneyRequiredDataV3 sendMoneyRequiredDataV3=new SendMoneyRequiredDataV3(t.getData());
view.getRecipientAddEditV3ContractInterface().redirectToSendMoney(sendMoneyRequiredDataV3);
}
}, send_money_to_string);
return;
sucessMessage = t.getMsg()+" \n "+getStringfromStringId(R.string.recipient_add_success_message_text).replace("xxx", getReceiverName(t.getData()));
receiverId=t.getData().getReceiverId();
sendMoneyRequiredDataV3=new SendMoneyRequiredDataV3(t.getData());
view.showTermsAndConditionScreen();
} else {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@ -350,17 +340,26 @@ public class RecipientAddV3ViewModel extends RecipientAddEditBaseV3ViewModel {
@Override
public void onFailed(String message) {
sucessMessage = null;
receiverId = null;
sendMoneyRequiredDataV3 = null;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
sucessMessage = null;
receiverId=null;
sendMoneyRequiredDataV3=null;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
protected void unauthorizedAccess(String message) {
sucessMessage = null;
receiverId=null;
sendMoneyRequiredDataV3=null;
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.exitView());
}

21
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientaddeditV3/edit/RecipientEditV3ViewModel.java

@ -98,7 +98,6 @@ public class RecipientEditV3ViewModel extends RecipientAddEditBaseV3ViewModel {
}
@Override
public WebRequestModel getWebRequestDataForTermsAndCondition() {
return new WebRequestModel(getStringfromStringId(R.string.terms_and_condition_title_text), JME_TERMS_N_CONDITIONS, null);
@ -434,20 +433,19 @@ public class RecipientEditV3ViewModel extends RecipientAddEditBaseV3ViewModel {
@Override
protected void onSuccess(GenericResponseDataModel<ReceiverInfoV3Model> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
String send_money_to_string = t.getMsg() + " \n " + getStringfromStringId(R.string.recipient_add_success_message_text).replace("xxx", getReceiverName(t.getData()));
sucessMessage = t.getMsg() + " \n " + getStringfromStringId(R.string.recipient_add_success_message_text).replace("xxx", getReceiverName(t.getData()));
receiverId = t.getData().getReceiverId();
sendMoneyRequiredDataV3 = new SendMoneyRequiredDataV3(t.getData());
view.getRecipientAddEditV3ContractInterface().promptToSendMoney(new GenericPromptDialog.GenericDialogPromptListener() {
@Override
public void onNegativeBtnPressed() {
view.onEditSuccess(t.getData().getReceiverId());
view.onEditSuccess(receiverId);
}
@Override
public void onPositiveBtnPressed() {
SendMoneyRequiredDataV3 sendMoneyRequiredDataV3 = new SendMoneyRequiredDataV3(t.getData());
view.getRecipientAddEditV3ContractInterface().redirectToSendMoney(sendMoneyRequiredDataV3);
}
}, send_money_to_string);
return;
}, sucessMessage);
} else {
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@ -455,17 +453,26 @@ public class RecipientEditV3ViewModel extends RecipientAddEditBaseV3ViewModel {
@Override
public void onFailed(String message) {
sucessMessage = null;
receiverId = null;
sendMoneyRequiredDataV3 = null;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
sucessMessage = null;
receiverId = null;
sendMoneyRequiredDataV3 = null;
view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null);
}
@Override
protected void unauthorizedAccess(String message) {
sucessMessage = null;
receiverId = null;
sendMoneyRequiredDataV3 = null;
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, null);
}

6
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3Fragment.java

@ -43,7 +43,7 @@ import com.swifttech.remit.jmecustomer.features.sendmoney.view.verification.Term
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import static android.view.View.GONE;
import static com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit.RecipientAddEditActivity.RECIPIENT_INFO_BUNDLE_KEY;
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3;
import static com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserV2Activity.WEB_BROWSWER_URL_BUNDLE_KEY;
public class BeneficiaryAddEditV3Fragment extends BaseFragment implements RecipientAddV3ContractInterface.RecipientAddEditV3ContractInterface, View.OnClickListener {
@ -96,7 +96,7 @@ public class BeneficiaryAddEditV3Fragment extends BaseFragment implements Recipi
}
private void init() {
recipientToBeEdited = getArguments().getParcelable(RECIPIENT_INFO_BUNDLE_KEY);
recipientToBeEdited = getArguments().getParcelable(RECIPIENT_INFO_BUNDLE_KEY_v3);
if (recipientToBeEdited != null) {
RecipientEditV3ViewModelFactory recipientEditViewModelFactory = new RecipientEditV3ViewModelFactory((RecipientAddV3ContractInterface) getActivity(),recipientToBeEdited);
viewModel = new ViewModelProvider(requireActivity(), recipientEditViewModelFactory).get(RecipientEditV3ViewModel.class);
@ -222,7 +222,7 @@ public class BeneficiaryAddEditV3Fragment extends BaseFragment implements Recipi
@Override
public void redirectToSendMoney(SendMoneyRequiredDataV3 sendMoneyRequiredDataV3) {
Intent intent = new Intent(getActivity(), SendMoneyV2Activity.class);
intent.putExtra(RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY, sendMoneyRequiredDataV3);
intent.putExtra(RECIPIENT_INFO_BUNDLE_KEY_v3, sendMoneyRequiredDataV3);
startActivity(intent);
}

34
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3TermsFragment.java

@ -8,6 +8,8 @@ import android.webkit.WebView;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProvider;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericEditTextPromptDialog;
import com.swifttech.remit.jmecustomer.features.kyc.newCustomer.view.termsAndCondition.NewKycTermsAndConditionFragment;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.RecipientAddEditBaseV3ViewModel;
@ -20,9 +22,10 @@ import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel;
import static com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit.RecipientAddEditActivity.RECIPIENT_INFO_BUNDLE_KEY;
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3;
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_TERMS_N_CONDITIONS;
public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 {
public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 implements RecipientAddV3ContractInterface.RecipientTermsAndConditionsContract, GenericEditTextPromptDialog.GenericEditTextPromptListener {
private RecipientAddEditBaseV3ViewModel viewModel;
private ReceiverInfoV3Model recipientToBeEdited;
private static String TAG = NewKycTermsAndConditionFragment.class.getSimpleName();
@ -47,19 +50,19 @@ public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 {
if (recipientToBeEdited != null) {
viewModel.proceedToEditSucess();
} else {
viewModel.proceedToAddSucess();
viewModel.showEmailCodePopUp();
}
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recipientToBeEdited = getArguments().getParcelable(RECIPIENT_INFO_BUNDLE_KEY);
recipientToBeEdited = getArguments().getParcelable(RECIPIENT_INFO_BUNDLE_KEY_v3);
if (recipientToBeEdited != null) {
RecipientEditV3ViewModelFactory recipientEditViewModelFactory = new RecipientEditV3ViewModelFactory((RecipientAddV3ContractInterface) getActivity(),recipientToBeEdited);
RecipientEditV3ViewModelFactory recipientEditViewModelFactory = new RecipientEditV3ViewModelFactory((RecipientAddV3ContractInterface) getActivity(), recipientToBeEdited);
viewModel = new ViewModelProvider(requireActivity(), recipientEditViewModelFactory).get(RecipientEditV3ViewModel.class);
} else {
RecipientAddV3ViewModelFactory recipientAddViewModelFactory = new RecipientAddV3ViewModelFactory((RecipientAddV3ContractInterface)getActivity(),recipientToBeEdited);
RecipientAddV3ViewModelFactory recipientAddViewModelFactory = new RecipientAddV3ViewModelFactory((RecipientAddV3ContractInterface) getActivity(), recipientToBeEdited);
viewModel = new ViewModelProvider(requireActivity(), recipientAddViewModelFactory).get(RecipientAddV3ViewModel.class);
}
showAcceptOption(true);
@ -69,4 +72,25 @@ public class BeneficiaryAddEditV3TermsFragment extends WebBrowserFragmentV2 {
}
@Override
public void showEmailCodePromptDialog() {
GenericEditTextPromptDialog genericPromptDialog = new GenericEditTextPromptDialog();
genericPromptDialog.setTitleMessage(getString(R.string.enterCodeFromEmail_text));
genericPromptDialog.setCancellable(false);
genericPromptDialog.setListener(this);
if (!genericPromptDialog.isAdded())
genericPromptDialog.show(getActivity().getSupportFragmentManager(), "PROMPTEDITTEXT");
}
@Override
public void onEmailCodeNegativeButtonPressed() {
}
@Override
public void onEmailCodePositiveBtnPressed(String emailCode) {
//@Todo email code submit API implementation
viewModel.proceedToAddSucess();
}
}

65
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java

@ -3,35 +3,19 @@ package com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipi
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BaseActivity;
import com.swifttech.remit.jmecustomer.common.customwidgets.GenericViewPagerAdapter;
import com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView;
import com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit.BeneficiaryAddEditFragment;
import com.swifttech.remit.jmecustomer.features.recipientlisting.view.recipientaddedit.BeneficiaryAddEditTermsFragment;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recipientaddeditV3.RecipientAddEditV3Gateway;
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericEditTextPromptDialog;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.RecipientAddEditBaseV3ViewModel;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.RecipientAddV3ContractInterface;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.RecipientPresenterInterface;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.add.RecipientAddV3ViewModel;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recipientaddeditV3.edit.RecipientEditV3ViewModel;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import java.util.ArrayList;
import java.util.List;
@ -39,14 +23,12 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import static android.view.View.GONE;
public class RecipientAddEditV3Activity extends BaseActivity implements RecipientAddV3ContractInterface, View.OnClickListener,ViewPager.OnPageChangeListener {
public class RecipientAddEditV3Activity extends BaseActivity implements RecipientAddV3ContractInterface, View.OnClickListener,ViewPager.OnPageChangeListener, WebBrowserFragmentV2.WebBrowserFragmentActionListener {
public static final String TAG = RecipientAddEditV3Activity.class.getSimpleName();
public static final int RECIPIENT_INFO_ACTION_EDIT_REQUEST_CODE = 19134;
public static final String RECIPIENT_UPDATED_ID_BUNDLE_KEY = "RECIPIENT_UPDATED_ID_BUNDLE_KEY";
public static final int RECIPIENT_ACTION_EDIT_REQUEST_CODE_v3 = 21345;
public static final String RECIPIENT_UPDATE_ID_BUNDLE_KEY_V3 = "RECIPIENT_UPDATED_ID_BUNDLE_KEY_V3";
@BindView(R.id.toolbar_title)
@ -60,7 +42,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
private ReceiverInfoV3Model recipientToBeEdited;
public static String RECIPIENT_INFO_BUNDLE_KEY = "recipientInfoKey";
public static String RECIPIENT_INFO_BUNDLE_KEY_v3 = "recipientInfoKeyV3";
@BindView(R.id.addBeneficiaryV3ViewPager)
ViewPager addBeneficiaryV3ViewPager;
@ -75,8 +57,9 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recipient_add_edit_v3);
ButterKnife.bind(this);
setupViewPager();
init();
setupViewPager();
}
private void setupViewPager() {
@ -87,7 +70,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
Bundle bundle = new Bundle();
bundle.putParcelable(RECIPIENT_UPDATED_ID_BUNDLE_KEY, recipientToBeEdited);
bundle.putParcelable(RECIPIENT_INFO_BUNDLE_KEY_v3, recipientToBeEdited);
beneficiaryAddEditV3Fragment = new BeneficiaryAddEditV3Fragment();
@ -113,7 +96,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
}
private void init() {
recipientToBeEdited = getIntent().getParcelableExtra(RECIPIENT_INFO_BUNDLE_KEY);
recipientToBeEdited = getIntent().getParcelableExtra(RECIPIENT_INFO_BUNDLE_KEY_v3);
iv_cancel.setVisibility(View.INVISIBLE);
}
@ -135,7 +118,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
@Override
public void onBackPressed() {
Intent returnIntent = new Intent();
returnIntent.putExtra(RECIPIENT_UPDATED_ID_BUNDLE_KEY, "");
returnIntent.putExtra(RECIPIENT_UPDATE_ID_BUNDLE_KEY_V3, "");
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
@ -145,7 +128,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
@Override
public void onEditSuccess(String recipientIdToBeUpdated) {
Intent returnIntent = new Intent();
returnIntent.putExtra(RECIPIENT_UPDATED_ID_BUNDLE_KEY, recipientIdToBeUpdated);
returnIntent.putExtra(RECIPIENT_UPDATE_ID_BUNDLE_KEY_V3, recipientIdToBeUpdated);
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
@ -153,22 +136,26 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
@Override
public void onAddSuccess(String recipientIdToBeUpdated) {
Intent returnIntent = new Intent();
returnIntent.putExtra(RECIPIENT_UPDATED_ID_BUNDLE_KEY, recipientIdToBeUpdated);
returnIntent.putExtra(RECIPIENT_UPDATE_ID_BUNDLE_KEY_V3, recipientIdToBeUpdated);
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
@Override
public void showTermsAndConditionScreen() {
addBeneficiaryV3ViewPager.setCurrentItem(1);
}
@Override
public RecipientAddEditV3ContractInterface getRecipientAddEditV3ContractInterface() {
return beneficiaryAddEditV3Fragment;
}
@Override
public RecipientTermsAndConditionsContract getRecipientTermsAndConditionsContract() {
return beneficiaryAddEditV3TermsFragment;
}
@Override
@ -204,4 +191,16 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
public void onPageScrollStateChanged(int state) {
}
@Override
public void updateTitle(String title) {
}
@Override
public void webViewActionCompleted() {
}
}

28
app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientlistingV3/RecipientListingV3Activity.java

@ -1,26 +1,22 @@
package com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientlistingV3;
import android.content.Intent;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import android.os.Bundle;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.widget.EditText;
import android.widget.FrameLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BaseActivity;
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog;
import com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView;
import com.swifttech.remit.jmecustomer.common.customwidgets.LineDividerItemDecoration;
import com.swifttech.remit.jmecustomer.common.customwidgets.TextWatcherAdapter;
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.adapter.RecipientListingV3RvAdapter;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recipientlistingV3.RecipientListingV3Gateway;
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model;
@ -198,7 +194,7 @@ public class RecipientListingV3Activity extends BaseActivity
public void redirectToSendMoney(SendMoneyRequiredDataV3 sendMoneyRequiredDataV3) {
Intent intent = new Intent(RecipientListingV3Activity.this, SendMoneyV2Activity.class);
intent.putExtra(RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY, sendMoneyRequiredDataV3);
intent.putExtra(RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3, sendMoneyRequiredDataV3);
startActivity(intent);
}
@ -206,8 +202,8 @@ public class RecipientListingV3Activity extends BaseActivity
@Override
public void proceedToEditRecipient(ReceiverInfoV3Model recipientInfoModel) {
Intent intent = new Intent(getApplicationContext(), RecipientAddEditV3Activity.class);
intent.putExtra(RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY, recipientInfoModel);
startActivityForResult(intent, RecipientAddEditV3Activity.RECIPIENT_INFO_ACTION_EDIT_REQUEST_CODE);
intent.putExtra(RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3, recipientInfoModel);
startActivityForResult(intent, RecipientAddEditV3Activity.RECIPIENT_ACTION_EDIT_REQUEST_CODE_v3);
}
@Override
@ -249,7 +245,7 @@ public class RecipientListingV3Activity extends BaseActivity
switch (v.getId()) {
case R.id.addReceipient:
startActivityForResult(new Intent(this, RecipientAddEditV3Activity.class), RecipientAddEditV3Activity.RECIPIENT_INFO_ACTION_EDIT_REQUEST_CODE);
startActivityForResult(new Intent(this, RecipientAddEditV3Activity.class), RecipientAddEditV3Activity.RECIPIENT_ACTION_EDIT_REQUEST_CODE_v3);
break;
case R.id.iv_back:
@ -262,8 +258,8 @@ public class RecipientListingV3Activity extends BaseActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RecipientAddEditV3Activity.RECIPIENT_INFO_ACTION_EDIT_REQUEST_CODE && resultCode == RESULT_OK) {
presenter.onRecipentUpdatedSucesss(data.getStringExtra(RecipientAddEditV3Activity.RECIPIENT_UPDATED_ID_BUNDLE_KEY));
if (requestCode == RecipientAddEditV3Activity.RECIPIENT_ACTION_EDIT_REQUEST_CODE_v3 && resultCode == RESULT_OK) {
presenter.onRecipentUpdatedSucesss(data.getStringExtra(RecipientAddEditV3Activity.RECIPIENT_UPDATE_ID_BUNDLE_KEY_V3));
}
}

1
app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/existingcustomer/view/ExistingCustomerRegisterV2Activity.java

@ -166,6 +166,7 @@ public class ExistingCustomerRegisterV2Activity extends BaseActivity implements
@Override
public void onEmailCodePositiveBtnPressed(String emailCode) {
//@Todo email code submit API implementation
presenter.performLoginInternally();
}

3
app/src/main/java/com/swifttech/remit/jmecustomer/features/registerv2/newcustomer/view/NewRegisterV2Activity.java

@ -344,7 +344,7 @@ public class NewRegisterV2Activity extends BaseActivity implements NewRegisterV2
public void showEmailCodePromptDialog() {
GenericEditTextPromptDialog genericPromptDialog = new GenericEditTextPromptDialog();
genericPromptDialog.setTitleMessage(getString(R.string.enterCodeFromEmail_text));
genericPromptDialog.setCancellable(true);
genericPromptDialog.setCancellable(false);
genericPromptDialog.setListener(this);
if (!genericPromptDialog.isAdded())
genericPromptDialog.show(getSupportFragmentManager(), "PROMPTEDITTEXT");
@ -356,6 +356,7 @@ public class NewRegisterV2Activity extends BaseActivity implements NewRegisterV2
@Override
public void onEmailCodePositiveBtnPressed(String emailCode) {
//@Todo email code submit API implementation
presenter.performLoginInternally();
}
}

26
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/RenewIdViewModelFactory.java

@ -1,4 +1,28 @@
package com.swifttech.remit.jmecustomer.features.renewId;
class RenewIdViewModelFactory {
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.swifttech.remit.jmecustomer.features.login.gateway.LoginV2Gateway;
import com.swifttech.remit.jmecustomer.features.renewId.gateway.RenewFileDownloadGateway;
import com.swifttech.remit.jmecustomer.features.renewId.gateway.RenewIdV2Gateway;
import com.swifttech.remit.jmecustomer.features.renewId.presenter.RenewIdV2PresenterInterface;
import com.swifttech.remit.jmecustomer.features.renewId.presenter.RenewIdV2ViewModel;
public class RenewIdViewModelFactory implements ViewModelProvider.Factory {
private final RenewIdV2PresenterInterface.RenewIdContractInterface view;
public RenewIdViewModelFactory(RenewIdV2PresenterInterface.RenewIdContractInterface view) {
this.view = view;
}
@SuppressWarnings("unchecked")
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
return (T) new RenewIdV2ViewModel(view, new RenewIdV2Gateway(), new RenewFileDownloadGateway(),new LoginV2Gateway());
}
}

45
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/gateway/RenewFileDownloadGateway.java

@ -0,0 +1,45 @@
package com.swifttech.remit.jmecustomer.features.renewId.gateway;
import android.content.Context;
import com.swifttech.remit.jmecustomer.base.PrivilegedGateway;
import com.swifttech.remit.jmecustomer.utils.https.HttpClientV2;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import okio.BufferedSink;
import okio.Okio;
import retrofit2.Response;
public class RenewFileDownloadGateway extends PrivilegedGateway {
public Observable<Response<ResponseBody>> downloadFile(String url) {
return HttpClientV2.getInstance().downloadFile(url);
}
public File getTempFile(Context context, String fileName) throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File storageDir = context.getCacheDir();
File image = File.createTempFile(
fileName+"_"+timeStamp,
".jpg",
storageDir
);
return image;
}
public File writeToFile(Response<ResponseBody> responseBody, File file) throws Exception {
BufferedSink sink = Okio.buffer(Okio.sink(file));
sink.writeAll(responseBody.body().source());
sink.flush();
sink.close();
return file;
}
}

49
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/gateway/RenewIdV2Gateway.java

@ -1,4 +1,51 @@
package com.swifttech.remit.jmecustomer.features.renewId.gateway;
class RenewIdV2Gateway {
import com.swifttech.remit.jmecustomer.base.PrivilegedGateway;
import com.swifttech.remit.jmecustomer.features.kyc.existingCustomer.model.ExistingPersonalInfoDTO;
import com.swifttech.remit.jmecustomer.features.renewId.model.RenewIdRequestDataDTO;
import com.swifttech.remit.jmecustomer.features.renewId.presenter.RenewIdV2InteractorInterface;
import com.swifttech.remit.jmecustomer.utils.https.HttpClientV2;
import java.io.File;
import java.util.HashMap;
import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
public class RenewIdV2Gateway extends PrivilegedGateway implements RenewIdV2InteractorInterface.RenewIdV2GatewayInterface {
@Override
public Observable<ResponseBody> renewUserId(String auth, RenewIdRequestDataDTO requestBody) {
HashMap<String, RequestBody> map = new HashMap<>();
map.put("userId", createStringUploadValue(requestBody.getUserId()));
File idFront = null;
File idBack = null;
if (requestBody.getIdFront() != null) {
idFront = requestBody.getIdFront();
idBack = requestBody.getIdBack();
}
return HttpClientV2.getInstance().postRenewUserId(auth, map,
createImageUploadFieldFromFile("idFront", idFront),
createImageUploadFieldFromFile("idBack", idBack)
);
}
private RequestBody createStringUploadValue(String value) {
return RequestBody.create(MediaType.parse("text/plain"), value);
}
private MultipartBody.Part createImageUploadFieldFromFile(String key, File file) {
if (file == null)
return null;
RequestBody idImageRequest = RequestBody.create(MediaType.parse("image/jpeg"), file);
return MultipartBody.Part.createFormData(key, file.getName() + ".jpeg", idImageRequest);
}
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/model/RenewIdApiResponse.java

@ -1,4 +0,0 @@
package com.swifttech.remit.jmecustomer.features.renewId.model;
class RenewIdApiResponse {
}

48
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/model/RenewIdRequestDataDTO.java

@ -0,0 +1,48 @@
package com.swifttech.remit.jmecustomer.features.renewId.model;
import com.swifttech.remit.jmecustomer.utils.Utils;
import java.io.File;
public class RenewIdRequestDataDTO {
String userId;
File idFront;
File idBack;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public File getIdFront() {
return idFront;
}
public void setIdFront(File idFront) {
this.idFront = idFront;
}
public File getIdBack() {
return idBack;
}
public void setIdBack(File idBack) {
this.idBack = idBack;
}
public boolean isUserIdValid() {
return Utils.isStringNotNullOrEmpty(this.userId);
}
public boolean isFrontIdImageFileValid() {
return idFront != null;
}
public boolean isBackIdImageFileValid() {
return idBack != null;
}
}

8
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2InteractorInterface.java

@ -2,13 +2,17 @@ package com.swifttech.remit.jmecustomer.features.renewId.presenter;
import com.swifttech.remit.jmecustomer.base.BaseInteractorInterface;
import com.swifttech.remit.jmecustomer.base.PrivilegedGatewayInterface;
import com.swifttech.remit.jmecustomer.features.renewId.model.RenewIdRequestDataDTO;
interface RenewIdV2InteractorInterface extends BaseInteractorInterface {
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RenewIdV2InteractorInterface extends BaseInteractorInterface {
interface RenewIdV2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<ResponseBody> renewUserId(String auth, RenewIdRequestDataDTO requestBody);
}
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2Presenter.java

@ -1,4 +0,0 @@
package com.swifttech.remit.jmecustomer.features.renewId.presenter;
class RenewIdV2Presenter {
}

17
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2PresenterInterface.java

@ -2,11 +2,24 @@ package com.swifttech.remit.jmecustomer.features.renewId.presenter;
import com.swifttech.remit.jmecustomer.base.BaseContractInterface;
import com.swifttech.remit.jmecustomer.base.BasePresenterInterface;
import com.swifttech.remit.jmecustomer.features.renewId.view.RenewUserIdLiveData;
interface RenewIdV2PresenterInterface extends BasePresenterInterface {
import java.io.File;
interface RenewIdContractInterface extends BaseContractInterface {
public interface RenewIdV2PresenterInterface extends BasePresenterInterface {
void renewUserId();
void checkImageStatus(int requestCode, int resultCode, File data);
void renewIdSuccessPopup();
RenewUserIdLiveData bindRenewUserIdForm(RenewUserIdLiveData.RenewUserIdBinding binding);
interface RenewIdContractInterface extends BaseContractInterface {
void onRenewUserIdSuccess();
void exitReneUserIdView();
}
}

262
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/presenter/RenewIdV2ViewModel.java

@ -0,0 +1,262 @@
package com.swifttech.remit.jmecustomer.features.renewId.presenter;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BaseViewModel;
import com.swifttech.remit.jmecustomer.common.customwidgets.CustomAlertDialog;
import com.swifttech.remit.jmecustomer.common.model.FormInputStateDTO;
import com.swifttech.remit.jmecustomer.features.login.gateway.LoginV2Gateway;
import com.swifttech.remit.jmecustomer.features.renewId.gateway.RenewFileDownloadGateway;
import com.swifttech.remit.jmecustomer.features.renewId.gateway.RenewIdV2Gateway;
import com.swifttech.remit.jmecustomer.features.renewId.model.RenewIdRequestDataDTO;
import com.swifttech.remit.jmecustomer.features.renewId.view.RenewIdActivity;
import com.swifttech.remit.jmecustomer.features.renewId.view.RenewUserIdLiveData;
import com.swifttech.remit.jmecustomer.utils.Constants;
import com.swifttech.remit.jmecustomer.utils.ImageUtils;
import com.swifttech.remit.jmecustomer.utils.https.GenericApiObserverResponseV2;
import com.swifttech.remit.jmecustomer.utils.https.GenericResponseDataModel;
import com.swifttech.remit.jmecustomer.utils.https.MessageResponseDataModel;
import java.io.File;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;
import static android.app.Activity.RESULT_OK;
public class RenewIdV2ViewModel extends BaseViewModel implements RenewIdV2PresenterInterface {
private final RenewIdContractInterface view;
private final RenewIdV2Gateway renewIdV2Gateway;
private final RenewFileDownloadGateway renewFileDownloadGateway;
private final LoginV2Gateway loginGateway;
private final CompositeDisposable compositeDisposable;
private final RenewUserIdLiveData renewUserIdLiveData;
private RenewUserIdLiveData.RenewUserIdBinding viewBindings;
private RenewUserIdValidator validator;
private String userId;
private static final int THUMBNAIL_HEIGHT = 150;
private static final int THUMBNAIL_WIDTH = 150;
public RenewIdV2ViewModel(
RenewIdContractInterface view,
RenewIdV2Gateway renewIdV2Gateway,
RenewFileDownloadGateway renewFileDownloadGateway,
LoginV2Gateway loginGateWay
) {
this.compositeDisposable = new CompositeDisposable();
renewUserIdLiveData = new RenewUserIdLiveData();
this.view = view;
this.renewIdV2Gateway = renewIdV2Gateway;
this.renewFileDownloadGateway = renewFileDownloadGateway;
this.loginGateway = loginGateWay;
this.validator=new RenewUserIdValidator(new RenewIdRequestDataDTO());
}
@Override
public void renewUserId() {
postUserIdToServer(validator.getRenewIdRequestDataDTO(), view::onRenewUserIdSuccess);
}
private void postUserIdToServer(RenewIdRequestDataDTO renewIdRequestDataDTO, Runnable endWithTask) {
userId = renewIdRequestDataDTO.getUserId();
compositeDisposable.add(
this.renewIdV2Gateway.renewUserId(renewIdV2Gateway.getAuth(), renewIdRequestDataDTO)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(new RewNewIdUploadObserver(endWithTask))
);
}
public class RewNewIdUploadObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
Runnable task;
public RewNewIdUploadObserver(Runnable task) {
this.task = task;
}
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
if (task != null) {
loginGateway.updateUserId(userId);
if (task != null)
task.run();
}
} 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.FAILED, null);
}
@Override
protected void unauthorizedAccess(String message) {
renewIdV2Gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
@Override
public void checkImageStatus(int requestCode, int resultCode, File data) {
if (data == null) {
view.showToastMessage(getStringfromStringId(R.string.no_image_available_text));
return;
}
switch (requestCode) {
case RenewIdActivity.CAMERA_REQUEST_ID_FRONT:
case RenewIdActivity.GALLERY_REQUEST_ID_FRONT:
if (resultCode == RESULT_OK) {
if (validator.validateUserFrontImg(data))
renewUserIdLiveData.setRenewIdFrontImgLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
renewUserIdLiveData.setRenewIdFrontImgLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
case RenewIdActivity.CAMERA_REQUEST_ID_BACK:
case RenewIdActivity.GALLERY_REQUEST_ID_BACK:
if (resultCode == RESULT_OK) {
if (validator.validateUserBackImg(data))
renewUserIdLiveData.setRenewIdBackImgLiveData(new FormInputStateDTO<>(true, null, ImageUtils.generateThumbnailFromImageFile(data.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)));
else
renewUserIdLiveData.setRenewIdBackImgLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.imageLoadingFailed_text), null));
}
break;
}
}
@Override
public void renewIdSuccessPopup() {
view.showPopUpMessage(view.getContext().getResources().getString(R.string.renewIdSucess_text), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitReneUserIdView());
}
@Override
public RenewUserIdLiveData bindRenewUserIdForm(RenewUserIdLiveData.RenewUserIdBinding binding) {
bindRenewUserIdView(binding);
return renewUserIdLiveData;
}
@Override
public void onViewDestroyed() {
super.onViewDestroyed();
if (compositeDisposable != null && !compositeDisposable.isDisposed())
compositeDisposable.dispose();
}
private void bindRenewUserIdView(RenewUserIdLiveData.RenewUserIdBinding viewBindings) {
this.viewBindings = viewBindings;
compositeDisposable.add(
Observable.combineLatest(
viewBindings.getUserIdResultObservable().map(validator::validateUserId),
viewBindings.getIdFrontRenewResultObservable(),
viewBindings.getIdBackRenewResultObservable(),
(isUserIdValid, isFrontIdPictureValid, isBackIdPictureValid) ->
isUserIdValid && isFrontIdPictureValid && isBackIdPictureValid
).subscribeWith(new DisposableObserver<Boolean>() {
@Override
public void onNext(Boolean validationResult) {
renewUserIdLiveData.setIsAllDataValid(validationResult);
}
@Override
public void onError(Throwable e) {
renewUserIdLiveData.setIsAllDataValid(false);
}
@Override
public void onComplete() {
}
})
);
}
@Override
public void onViewReady() {
}
@Override
public void onViewNotReady() {
}
public class RenewUserIdValidator {
/**
* Customer Information
*/
RenewIdRequestDataDTO renewIdRequestDataDTO;
public RenewUserIdValidator(RenewIdRequestDataDTO renewIdRequestDataDTO) {
this.renewIdRequestDataDTO = renewIdRequestDataDTO;
}
public RenewIdRequestDataDTO getRenewIdRequestDataDTO() {
return renewIdRequestDataDTO;
}
boolean validateUserId(CharSequence data) {
renewIdRequestDataDTO.setUserId(data != null ? data.toString() : null);
if (renewIdRequestDataDTO.isUserIdValid()) {
renewUserIdLiveData.setUserIdLiveData(new FormInputStateDTO<>(true, null, null));
return true;
} else {
renewUserIdLiveData.setUserIdLiveData(new FormInputStateDTO<>(false, view.getContext().getResources().getString(R.string.invalidUserId), null));
return false;
}
}
boolean validateUserFrontImg(File data) {
renewIdRequestDataDTO.setIdFront(data);
if (renewIdRequestDataDTO.isFrontIdImageFileValid()) {
return true;
} else {
view.showToastMessage(view.getContext().getResources().getString(R.string.invalidFrontIdImage_text));
return false;
}
}
boolean validateUserBackImg(File data) {
renewIdRequestDataDTO.setIdFront(data);
if (renewIdRequestDataDTO.isFrontIdImageFileValid()) {
return true;
} else {
view.showToastMessage(view.getContext().getResources().getString(R.string.invalidBackIdImage_text));
return false;
}
}
}
}

473
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewIdActivity.java

@ -1,16 +1,483 @@
package com.swifttech.remit.jmecustomer.features.renewId.view;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.ClipData;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.iid.FirebaseInstanceId;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.swifttech.remit.jmecustomer.BuildConfig;
import com.swifttech.remit.jmecustomer.R;
import com.swifttech.remit.jmecustomer.base.BaseActivity;
import com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView;
import com.swifttech.remit.jmecustomer.common.model.FormInputStateDTO;
import com.swifttech.remit.jmecustomer.common.view.MTextInputEditText;
import com.swifttech.remit.jmecustomer.common.view.MTextInputLayout;
import com.swifttech.remit.jmecustomer.common.view.MTextView;
import com.swifttech.remit.jmecustomer.features.home.view.HomeActivityV2;
import com.swifttech.remit.jmecustomer.features.renewId.RenewIdViewModelFactory;
import com.swifttech.remit.jmecustomer.features.renewId.presenter.RenewIdV2PresenterInterface;
import com.swifttech.remit.jmecustomer.features.renewId.presenter.RenewIdV2ViewModel;
import com.swifttech.remit.jmecustomer.utils.other.Utility;
import com.theartofdev.edmodo.cropper.CropImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import id.zelory.compressor.Compressor;
import io.reactivex.subjects.PublishSubject;
public class RenewIdActivity extends BaseActivity implements RenewIdV2PresenterInterface.RenewIdContractInterface, View.OnClickListener {
public static final int REQUEST_PERMISSION_ID_FRONT = 2004;
public static final int REQUEST_PERMISSION_ID_BACK = 2005;
public static final int CAMERA_REQUEST_ID_FRONT = 1000;
public static final int CAMERA_REQUEST_ID_BACK = 2000;
public static final int GALLERY_REQUEST_ID_FRONT = 6000;
public static final int GALLERY_REQUEST_ID_BACK = 7000;
private static final int COMPRESS_QUALITY = 70;
@BindView(R.id.toolbar_title)
GmeTextView toolBarTitle;
@BindView(R.id.iv_back)
ImageView imageBack;
@BindView(R.id.iv_cancel)
View imageCancel;
@BindView(R.id.ed_user_id)
MTextInputEditText edUserId;
@BindView(R.id.frontIDImageview)
ImageView frontIDImageview;
@BindView(R.id.backIDImageview)
ImageView backIDImageview;
@BindView(R.id.frontIdSampleTextView)
GmeTextView frontIdSampleTextView;
@BindView(R.id.backIdSampleTextView)
GmeTextView backIdSampleTextView;
@BindView(R.id.userIdWrapper)
MTextInputLayout userIdWrapper;
@BindView(R.id.frontIdProgressView)
ProgressBar frontIdProgressView;
@BindView(R.id.backIdProgressView)
ProgressBar backIdProgressView;
@BindView(R.id.btnRenewId)
Button btnRenewId;
@BindView(R.id.idTypeFrontLabelTxtView)
MTextView idTypeFrontLabelTxtView;
@BindView(R.id.idTypeBackLabelTxtView)
MTextView idTypeBackLabelTxtView;
@BindView(R.id.rootView)
LinearLayout rootView;
private RenewUserIdLiveData.RenewUserIdBinding renewUserIdBinding;
private RenewIdV2ViewModel viewModel;
private PublishSubject<Boolean> frontIdLoadedSubject;
private PublishSubject<Boolean> backIdLoadedSubject;
private Uri photoURI = null;
private File photoFile;
private int currentRequest;
public class RenewIdActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_renew_id_layout);
ButterKnife.bind(this);
initialize();
}
private void initialize() {
toolBarTitle.setText(getString(R.string.renewId_text));
RenewIdViewModelFactory renewIdViewModelFactory = new RenewIdViewModelFactory(this);
viewModel = new ViewModelProvider(this, renewIdViewModelFactory).get(RenewIdV2ViewModel.class);
subscribeToIdLiveData(getRenewUserIdBinding());
}
private RenewUserIdLiveData.RenewUserIdBinding getRenewUserIdBinding() {
frontIdLoadedSubject = PublishSubject.create();
backIdLoadedSubject = PublishSubject.create();
return new RenewUserIdLiveData.RenewUserIdBinding(
RxTextView.textChanges(edUserId).skipInitialValue(),
frontIdLoadedSubject,
backIdLoadedSubject
);
}
private void subscribeToIdLiveData(RenewUserIdLiveData.RenewUserIdBinding viewBindings) {
RenewUserIdLiveData liveData = viewModel.bindRenewUserIdForm(viewBindings);
liveData.getUserIdLiveData().observe(this, this::onUserIdSelected);
liveData.getRenewIdFrontImgLiveData().observe(this, this::onFrontImageSelected);
liveData.getRenewIdBackImgLiveData().observe(this, this::onBackImageSelected);
liveData.getRenewIdFrontImgIsLoadingLiveData().observe(this, this::onFrontIdImageIsLoading);
liveData.getRenewIdBackImgIsLoadingLiveData().observe(this, this::onBackIdImageIsLoading);
liveData.getRenewIdFrontImgLabelLiveData().observe(this, this::onFrontImageLabelChange);
liveData.getRenewIdBackImgLabelLiveData().observe(this, this::onBackIdImageLabelChange);
liveData.getIsAllDataValid().observe(this, result -> btnRenewId.setEnabled(result));
}
private void onUserIdSelected(FormInputStateDTO<String> data) {
if (data.isValid()) {
if (data.hasData()) {
edUserId.setText(data.getData());
} else
userIdWrapper.setError(null);
} else
userIdWrapper.setError(data.getErrorMessage());
}
private void onFrontImageSelected(FormInputStateDTO<Bitmap> data) {
if (data.isValid()) {
if (data.hasData()) {
Utility.showImageFromBitmap(this, frontIDImageview, data.getData());
frontIdLoadedSubject.onNext(true);
} else
frontIDImageview.setImageResource(R.drawable.ic_another_id_picture);
} else
showToastMessage(data.getErrorMessage());
}
private void onBackImageSelected(FormInputStateDTO<Bitmap> data) {
if (data.isValid()) {
if (data.hasData()) {
Utility.showImageFromBitmap(this, backIDImageview, data.getData());
backIdLoadedSubject.onNext(true);
} else
backIDImageview.setImageResource(R.drawable.ic_another_id_picture);
} else
showToastMessage(data.getErrorMessage());
}
private void onFrontIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
frontIdProgressView.setVisibility(View.VISIBLE);
frontIDImageview.setVisibility(View.INVISIBLE);
} else {
frontIdProgressView.setVisibility(View.INVISIBLE);
frontIDImageview.setVisibility(View.VISIBLE);
}
}
}
}
private void onBackIdImageIsLoading(FormInputStateDTO<Boolean> data) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData()) {
backIdProgressView.setVisibility(View.VISIBLE);
backIDImageview.setVisibility(View.INVISIBLE);
} else {
backIdProgressView.setVisibility(View.INVISIBLE);
backIDImageview.setVisibility(View.VISIBLE);
}
}
}
}
@OnClick(R.id.frontIdSampleTextView)
public void onFrontIdSamplePhotoClicked() {
Utility.showImageDialog(this, getResources().getString(R.string.frontIdSample_text), R.drawable.sample_id_front);
}
@OnClick(R.id.backIdSampleTextView)
public void onBackIdSamplePhotoClicked() {
Utility.showImageDialog(this, getResources().getString(R.string.backIdSample_text), R.drawable.sample_id_back);
}
@OnClick(R.id.frontIDImageViewContainer)
public void promptFrontIDImage() {
askPermission(CAMERA_REQUEST_ID_FRONT, GALLERY_REQUEST_ID_FRONT, REQUEST_PERMISSION_ID_FRONT);
}
@OnClick(R.id.backIDImageViewContainer)
public void promptBackIDImage() {
askPermission(CAMERA_REQUEST_ID_BACK, GALLERY_REQUEST_ID_BACK, REQUEST_PERMISSION_ID_BACK);
}
@OnClick(R.id.btnRenewId)
public void onClick() {
viewModel.renewUserId();
}
private void askPermission(int cameraReqCode, int galleryReqCode, int permissonReqCode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int cameraPermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
if (Settings.System.canWrite(this) && cameraPermission == PackageManager.PERMISSION_GRANTED) {
// cameraorGalleryChooser(cameraReqCode, galleryReqCode);
takeAPicture(cameraReqCode, 0);
} else {
/* requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, permissonReqCode);*/
requestPermissions(new String[]{Manifest.permission.CAMERA}, permissonReqCode);
}
} else {
takeAPicture(cameraReqCode, 0);
// cameraorGalleryChooser(cameraReqCode, galleryReqCode);
}
}
private void takeAPicture(int requestCode, int i) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
takePictureIntent.putExtra("jmecustomer.intent.extras.CAMERA_FACING", i);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
photoFile = null;
try {
photoFile = createImageFileInCache();
} catch (Exception ex) {
}
if (photoFile != null) {
photoURI = FileProvider.getUriForFile(this,
BuildConfig.APPLICATION_ID + ".fileprovider",
photoFile);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP) {
takePictureIntent.setClipData(ClipData.newRawUri("", photoURI));
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, requestCode);
}
}
}
private File createImageFileInCache() throws Exception {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getCacheDir();
File image = File.createTempFile(
imageFileName,
".jpg",
storageDir
);
return image;
}
@Override
public void onRequestPermissionsResult(
int requestCode,
String[] permissions,
int[] grantResults) {
switch (requestCode) {
case REQUEST_PERMISSION_ID_FRONT:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_FRONT, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_FRONT, GALLERY_REQUEST_ID_FRONT);
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
}
break;
case REQUEST_PERMISSION_ID_BACK:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
takeAPicture(CAMERA_REQUEST_ID_BACK, 0);
// cameraorGalleryChooser(CAMERA_REQUEST_ID_BACK, GALLERY_REQUEST_ID_BACK);
} else {
Snackbar.make(rootView.getRootView(), getString(R.string.permission_denied_text), Snackbar.LENGTH_LONG).show();
}
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
try {
if (requestCode == CAMERA_REQUEST_ID_BACK ||
requestCode == CAMERA_REQUEST_ID_FRONT
) {
if (resultCode == RESULT_OK) {
requestToCropImage(requestCode);
}
} else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(intent);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
File imageFile = createCompressedImageFileFromUri(resultUri);
viewModel.checkImageStatus(currentRequest, resultCode, imageFile);
} else {
showToastMessage(result.getError().getMessage());
}
} else {
if (resultCode == RESULT_OK) {
photoURI = intent.getData();
requestToCropImage(requestCode);
}
}
} catch (NullPointerException ex) {
ex.printStackTrace();
}
super.onActivityResult(requestCode, resultCode, intent);
}
private void requestToCropImage(int currentRequest) {
this.currentRequest = currentRequest;
CropImage.activity(photoURI)
.setCropMenuCropButtonTitle(getString(R.string.done_text))
.start(this);
}
private void onFrontImageLabelChange(FormInputStateDTO<String> data) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData().length() == 0) {
idTypeFrontLabelTxtView.setText(getString(R.string.front_id_text));
frontIDImageview.setImageResource(R.drawable.ic_another_id_picture);
} else
idTypeFrontLabelTxtView.setText(data.getData());
}
}
}
private void onBackIdImageLabelChange(FormInputStateDTO<String> data) {
if (data.isValid()) {
if (data.hasData()) {
if (data.getData().length() == 0) {
idTypeBackLabelTxtView.setText(getString(R.string.backId_text));
backIDImageview.setImageResource(R.drawable.ic_another_id_picture);
} else
idTypeBackLabelTxtView.setText(data.getData());
}
}
}
@Override
public void onRenewUserIdSuccess() {
viewModel.renewIdSuccessPopup();
}
@Override
public void exitReneUserIdView() {
Intent intent = new Intent (this, HomeActivityV2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
@Override
protected void onResume() {
super.onResume();
viewModel.onViewReady();
}
@Override
protected void onPause() {
super.onPause();
viewModel.onViewNotReady();
}
@Override
protected void onStart() {
super.onStart();
imageBack.setOnClickListener(this);
imageCancel.setOnClickListener(this);
}
@Override
protected void onStop() {
super.onStop();
imageBack.setOnClickListener(null);
imageCancel.setOnClickListener(null);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_back:
onBackPressed();
break;
case R.id.iv_cancel:
finish();
break;
}
}
private File createCompressedImageFileFromUri(Uri data) {
File compressedBitmap = null;
try {
compressedBitmap = new Compressor(this)
.setCompressFormat(Bitmap.CompressFormat.JPEG)
.setQuality(COMPRESS_QUALITY)
.compressToFile(new File(data.getPath()));
} catch (Exception e) {
}
return compressedBitmap;
}
}

139
app/src/main/java/com/swifttech/remit/jmecustomer/features/renewId/view/RenewUserIdLiveData.java

@ -0,0 +1,139 @@
package com.swifttech.remit.jmecustomer.features.renewId.view;
import android.graphics.Bitmap;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.swifttech.remit.jmecustomer.common.model.FormInputStateDTO;
import io.reactivex.Observable;
public class RenewUserIdLiveData {
private MutableLiveData<FormInputStateDTO<String>> userIdLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> renewIdFrontImgLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> renewIdFrontImgIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> renewIdFrontImgLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> renewIdBackImgLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> renewIdBackImgIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> renewIdBackImgLabelLiveData;
private MutableLiveData<Boolean> isAllDataValid;
public RenewUserIdLiveData() {
userIdLiveData = new MutableLiveData<>();
renewIdFrontImgLiveData = new MutableLiveData<>();
renewIdFrontImgIsLoadingLiveData = new MutableLiveData<>();
renewIdFrontImgLabelLiveData = new MutableLiveData<>();
renewIdBackImgLiveData = new MutableLiveData<>();
renewIdBackImgIsLoadingLiveData = new MutableLiveData<>();
renewIdBackImgLabelLiveData = new MutableLiveData<>();
renewIdFrontImgLiveData = new MutableLiveData<>();
isAllDataValid = new MutableLiveData<>();
}
public MutableLiveData<Boolean> getIsAllDataValid() {
return isAllDataValid;
}
public void setIsAllDataValid(Boolean isAllDataValid) {
this.isAllDataValid.setValue(isAllDataValid);
}
public LiveData<FormInputStateDTO<String>> getUserIdLiveData() {
return userIdLiveData;
}
public void setUserIdLiveData(FormInputStateDTO<String> userIdLiveData) {
this.userIdLiveData.postValue(userIdLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getRenewIdFrontImgLiveData() {
return renewIdFrontImgLiveData;
}
public void setRenewIdFrontImgLiveData(FormInputStateDTO<Bitmap> renewIdFrontImgLiveData) {
this.renewIdFrontImgLiveData.postValue(renewIdFrontImgLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getRenewIdFrontImgIsLoadingLiveData() {
return renewIdFrontImgIsLoadingLiveData;
}
public void setRenewIdFrontImgIsLoadingLiveData(FormInputStateDTO<Boolean> renewIdFrontImgIsLoadingLiveData) {
this.renewIdFrontImgIsLoadingLiveData.postValue(renewIdFrontImgIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getRenewIdFrontImgLabelLiveData() {
return renewIdFrontImgLabelLiveData;
}
public void setRenewIdFrontImgLabelLiveData(FormInputStateDTO<String> renewIdFrontImgLabelLiveData) {
this.renewIdFrontImgLabelLiveData.postValue(renewIdFrontImgLabelLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getRenewIdBackImgLiveData() {
return renewIdBackImgLiveData;
}
public void setRenewIdBackImgLiveData(FormInputStateDTO<Bitmap> renewIdBackImgLiveData) {
this.renewIdBackImgLiveData.postValue(renewIdBackImgLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getRenewIdBackImgIsLoadingLiveData() {
return renewIdBackImgIsLoadingLiveData;
}
public void setRenewIdBackImgIsLoadingLiveData(FormInputStateDTO<Boolean> renewIdBackImgIsLoadingLiveData) {
this.renewIdBackImgIsLoadingLiveData.postValue(renewIdBackImgIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getRenewIdBackImgLabelLiveData() {
return renewIdBackImgLabelLiveData;
}
public void setRenewIdBackImgLabelLiveData(FormInputStateDTO<String> renewIdBackImgLabelLiveData) {
this.renewIdBackImgLabelLiveData.postValue(renewIdBackImgLabelLiveData);
}
public static class RenewUserIdBinding {
private Observable<CharSequence> userIdResultObservable;
private Observable<Boolean> idFrontRenewResultObservable;
private Observable<Boolean> idBackRenewResultObservable;
public RenewUserIdBinding(
Observable<CharSequence> userIdResultObservable,
Observable<Boolean> idFrontRenewResultObservable,
Observable<Boolean> idBackRenewResultObservable)
{
this.userIdResultObservable = userIdResultObservable;
this.idFrontRenewResultObservable = idFrontRenewResultObservable;
this.idBackRenewResultObservable = idBackRenewResultObservable;
}
public Observable<CharSequence> getUserIdResultObservable() {
return userIdResultObservable;
}
public Observable<Boolean> getIdFrontRenewResultObservable() {
return idFrontRenewResultObservable;
}
public Observable<Boolean> getIdBackRenewResultObservable() {
return idBackRenewResultObservable;
}
}
}

4
app/src/main/java/com/swifttech/remit/jmecustomer/features/sendmoney/view/SendMoneyV2Activity.java

@ -24,7 +24,7 @@ import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserFragmentV2;
import butterknife.BindView;
import butterknife.ButterKnife;
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY;
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3;
public class SendMoneyV2Activity extends BaseActivity implements SendMoneyActionListener, SendMoneyV2PresenterInterface.SendMoneyV2ContractInterface, WebBrowserFragmentV2.WebBrowserFragmentActionListener, View.OnClickListener {
@ -70,7 +70,7 @@ public class SendMoneyV2Activity extends BaseActivity implements SendMoneyAction
if (savedInstanceState == null) {
try {
sendMoneyRequiredData = getIntent().getExtras().getParcelable(RECIPIENT_INFO_BUNDLE_KEY);
sendMoneyRequiredData = getIntent().getExtras().getParcelable(RECIPIENT_INFO_BUNDLE_KEY_v3);
} catch (Exception e) {
sendMoneyRequiredData = null;

14
app/src/main/java/com/swifttech/remit/jmecustomer/features/webbrowser/WebBrowserFragmentV2.java

@ -65,8 +65,8 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
@BindView(R.id.webView)
WebView webView;
@BindView(R.id.nestedScrollView)
NestedScrollView nestedScrollView;
@BindView(R.id.nestedScrollView)
NestedScrollView nestedScrollView;
@BindView(R.id.checkBoxAgreeConsent)
AppCompatCheckBox checkBoxAgreeConsent;
@ -126,7 +126,7 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
this.showAcceptOption = showAcceptOption;
}
public void setButtonText(String btnLabel){
public void setButtonText(String btnLabel) {
btnProceed.setText(btnLabel);
}
@ -169,10 +169,10 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
// if diff is zero, then the bottom has been reached
if (diff == 0 && showAcceptOption == true && isPageLoadSucess == true) {
Log.i(TAG,diff+" is true ");
Log.i(TAG, diff + " is true ");
llBottom.setVisibility(View.VISIBLE);
}else{
Log.i(TAG,diff+" "+showAcceptOption+" "+isPageLoadSucess);
} else {
Log.i(TAG, diff + " " + showAcceptOption + " " + isPageLoadSucess);
}
}
@ -218,7 +218,7 @@ public abstract class WebBrowserFragmentV2 extends BaseFragment implements View.
super.onPageStarted(view, url, favicon);
isPageLoadSucess = false;
if (webView.getProgress() != 100) {
showProgressBar(true, "");
showProgressBar(false, "");
}
}

1
app/src/main/java/com/swifttech/remit/jmecustomer/utils/https/API_URL.java

@ -83,6 +83,7 @@ public class API_URL {
public static final String UPLOAD_EXISTING_KYC_V3 = "v1/mobile/RegisterKycExistingCustomer";
public static final String KYC_RELATED_DATA_V3 = "v4/mobile/loadform/{customer}/{type}";
public static final String FETCH_AUTO_DEBIT_DATA_V4 ="v4/GetKftcParameters/{userId}";
public static final String RENEW_USER_ID ="v1/mobile/RenewID";

8
app/src/main/java/com/swifttech/remit/jmecustomer/utils/https/ApiEndpoints.java

@ -303,4 +303,12 @@ public interface ApiEndpoints {
Observable<ResponseBody> getNoticeDetail(@Header("Authorization") String token, @Body() JsonObject jsonObject);
@Multipart
@POST(API_URL.RENEW_USER_ID)
Observable<ResponseBody> postRenewUserId(
@Header("Authorization") String token,
@PartMap() Map<String, RequestBody> partMap,
@Part MultipartBody.Part frontIdImageFile,
@Part MultipartBody.Part backIdImageFile
);
}

387
app/src/main/res/layout/activity_renew_id_layout.xml

@ -1,9 +1,390 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout 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:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".features.renewId.view.RenewIdActivity">
android:background="@color/m_layout_bg_color"
android:orientation="vertical">
</androidx.constraintlayout.widget.ConstraintLayout>
<include layout="@layout/layout_sendmoney_toolbar" />
<androidx.core.widget.NestedScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginTop="@dimen/_5sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<LinearLayout
android:id="@+id/form1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_3sdp"
android:orientation="vertical"
android:padding="@dimen/_8sdp">
<com.swifttech.remit.jmecustomer.common.view.MTextInputLayout
android:id="@+id/userIdWrapper"
style="@style/MTextInputLayoutForm"
android:hint="@string/userId"
app:errorEnabled="true"
app:errorTextAppearance="@style/MTextInpuLayoutErrorStyle">
<com.swifttech.remit.jmecustomer.common.view.MTextInputEditText
android:id="@+id/ed_user_id"
style="@style/MTextInputEditText"
android:imeOptions="actionDone"
android:inputType="text"
/>
</com.swifttech.remit.jmecustomer.common.view.MTextInputLayout>
<com.swifttech.remit.jmecustomer.common.view.MTextView
style="@style/MFormTitleDescriptionTextView"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_10sdp"
android:drawablePadding="@dimen/_5sdp"
android:gravity="bottom"
android:text="@string/primaryIdDocuments_text"
android:textColor="@android:color/black"
app:drawableStartCompat="@drawable/icv_vd_media"
tools:ignore="HardcodedText" />
<androidx.cardview.widget.CardView
android:id="@+id/frontIDImageViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_4sdp"
app:cardCornerRadius="@dimen/_8sdp"
app:cardElevation="@dimen/_2sdp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:background="@drawable/ic_rounded_white"
android:orientation="horizontal">
<ImageView
android:id="@+id/frontIDImageview"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_72sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/view9"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/icv_upload_image"
tools:ignore="ContentDescription" />
<ProgressBar
android:id="@+id/frontIdProgressView"
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/frontIDImageview"
app:layout_constraintEnd_toEndOf="@+id/frontIDImageview"
app:layout_constraintStart_toStartOf="@+id/frontIDImageview"
app:layout_constraintTop_toTopOf="@id/frontIDImageview" />
<View
android:id="@+id/view9"
android:layout_width="@dimen/_1sdp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp"
android:background="@color/gray"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/idTypeFrontLabelTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/frontIDImageview"
app:layout_constraintTop_toTopOf="parent" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeFrontLabelTxtView"
style="@style/MLabelTextView"
android:layout_width="0dp"
android:gravity="start"
android:paddingStart="@dimen/_20sdp"
android:paddingEnd="@dimen/_20sdp"
android:text="@string/front_id_text"
app:layout_constraintBottom_toBottomOf="@+id/frontIDImageview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/view9"
app:layout_constraintTop_toTopOf="@+id/frontIDImageview"
app:layout_constraintVertical_bias="0.019"
tools:ignore="HardcodedText" />
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView
android:id="@+id/frontIdSampleTextView"
style="@style/MLabelTextView"
android:layout_width="wrap_content"
android:layout_marginBottom="@dimen/_5sdp"
android:padding="@dimen/_5sdp"
android:text="@string/view_sample_text"
android:textColor="@color/m_blue_text_link"
app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/frontIDImageview" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeFrontHintTxtView"
style="@style/MLabelTextView"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:gravity="start"
android:text="@string/pleaseProvideFrontPhoto_text"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/frontIDImageview"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/backIDImageViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_4sdp"
app:cardCornerRadius="@dimen/_8sdp"
app:cardElevation="@dimen/_2sdp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/backIDImageview"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_72sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/view10"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/icv_upload_image"
tools:ignore="ContentDescription" />
<ProgressBar
android:id="@+id/backIdProgressView"
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/backIDImageview"
app:layout_constraintEnd_toEndOf="@+id/backIDImageview"
app:layout_constraintStart_toStartOf="@+id/backIDImageview"
app:layout_constraintTop_toTopOf="@id/backIDImageview" />
<View
android:id="@+id/view10"
android:layout_width="@dimen/_1sdp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp"
android:background="@color/gray"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/idTypeBackLabelTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/backIDImageview"
app:layout_constraintTop_toTopOf="parent" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeBackLabelTxtView"
style="@style/MLabelTextView"
android:layout_width="0dp"
android:gravity="start"
android:paddingStart="@dimen/_20sdp"
android:paddingEnd="@dimen/_20sdp"
android:text="@string/backId_text"
app:layout_constraintBottom_toBottomOf="@+id/backIDImageview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/view10"
app:layout_constraintTop_toTopOf="@+id/backIDImageview"
app:layout_constraintVertical_bias="0.01999999"
tools:ignore="HardcodedText" />
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView
android:id="@+id/backIdSampleTextView"
style="@style/MLabelTextView"
android:layout_width="wrap_content"
android:layout_marginBottom="@dimen/_5sdp"
android:padding="@dimen/_5sdp"
android:text="@string/view_sample_text"
android:textColor="@color/m_blue_text_link"
app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/backIDImageview" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeBackHintTxtView"
style="@style/MLabelTextView"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:gravity="start"
android:text="@string/provideBackIdPhoto_text"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/backIDImageview"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/sideIDImageViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_4sdp"
android:visibility="gone"
app:cardCornerRadius="@dimen/_8sdp"
app:cardElevation="@dimen/_2sdp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/sideIDImageview"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_72sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/view13"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/icv_upload_image"
tools:ignore="ContentDescription" />
<ProgressBar
android:id="@+id/sideIdProgressView"
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/sideIDImageview"
app:layout_constraintEnd_toEndOf="@+id/sideIDImageview"
app:layout_constraintStart_toStartOf="@+id/sideIDImageview"
app:layout_constraintTop_toTopOf="@id/sideIDImageview" />
<View
android:id="@+id/view13"
android:layout_width="@dimen/_1sdp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp"
android:background="@color/gray"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"
app:layout_constraintEnd_toStartOf="@+id/idTypeSideLabelTxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/sideIDImageview"
app:layout_constraintTop_toTopOf="parent" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeSideLabelTxtView"
style="@style/MLabelTextView"
android:layout_width="0dp"
android:gravity="start"
android:paddingStart="@dimen/_20sdp"
android:paddingEnd="@dimen/_20sdp"
android:text="@string/sideId_text"
app:layout_constraintBottom_toBottomOf="@+id/sideIDImageview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/view13"
app:layout_constraintTop_toTopOf="@+id/sideIDImageview"
app:layout_constraintVertical_bias="0.019999999"
tools:ignore="HardcodedText" />
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView
android:id="@+id/sideIdSampleTextView"
style="@style/MLabelTextView"
android:layout_width="wrap_content"
android:layout_marginBottom="@dimen/_5sdp"
android:padding="@dimen/_5sdp"
android:text="@string/view_sample_text"
android:textColor="@color/m_blue_text_link"
app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sideIDImageview" />
<com.swifttech.remit.jmecustomer.common.view.MTextView
android:id="@+id/idTypeSideHintTxtView"
style="@style/MLabelTextView"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:gravity="start"
android:text="@string/provideSideFacingIdPhoto_text"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sideIDImageview" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeButton
android:id="@+id/btnRenewId"
style="@style/MButton"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_15sdp"
android:enabled="false"
android:text="@string/renewId_text" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

2
app/src/main/res/layout/fragment_beneficiary_add_edit.xml

@ -527,6 +527,7 @@
android:gravity="center"
android:maxLines="2"
android:singleLine="false"
android:visibility="gone"
android:text="@string/i_have_read_to_text"
android:textColor="@color/darkgray2"
android:textSize="@dimen/_11ssp" />
@ -538,6 +539,7 @@
android:layout_marginTop="@dimen/_5sdp"
android:gravity="center"
android:paddingTop="@dimen/_4sdp"
android:visibility="gone"
android:paddingBottom="@dimen/_4sdp"
android:text="@string/jme_terms_n_conditions"
android:textColor="@color/blue"

2
app/src/main/res/layout/fragment_beneficiary_add_edit_v3.xml

@ -526,6 +526,7 @@
android:layout_marginTop="@dimen/_8sdp"
android:gravity="center"
android:maxLines="2"
android:visibility="gone"
android:singleLine="false"
android:text="@string/i_have_read_to_text"
android:textColor="@color/darkgray2"
@ -539,6 +540,7 @@
android:gravity="center"
android:paddingTop="@dimen/_4sdp"
android:paddingBottom="@dimen/_4sdp"
android:visibility="gone"
android:text="@string/jme_terms_n_conditions"
android:textColor="@color/blue"
android:textSize="@dimen/_11ssp" />

1
app/src/main/res/layout/fragment_existing_kyc_customer_detail.xml

@ -50,6 +50,7 @@
android:id="@+id/ed_employerName"
app:endIconMode="clear_text"
app:errorEnabled="true"
android:padding="@dimen/_5sdp"
style="@style/MTextInputEditText"
android:imeOptions="actionNext"
android:inputType="text"

2
app/src/main/res/layout/layout_sendmoney_toolbar.xml

@ -7,7 +7,7 @@
android:background="@color/white"
android:id="@+id/generic_toolbar"
android:orientation="horizontal"
tools:showIn="@layout/activity_recipients_list">
>
<ImageView
android:id="@+id/iv_back"

3
app/src/main/res/values/strings.xml

@ -1041,4 +1041,7 @@ All the configurations are done from backend web application system which allows
<string name="emailCode_text">Email code</string>
<string name="enterCodeFromEmail">Enter code you received from email to proceed</string>
<string name="renewId_text">Renew ID</string>
<string name="invalidUserId">Invalid user Id</string>
<string name="userId">User Id</string>
<string name="renewIdSucess_text">Thank you, your Id is updated sucessfully</string>
</resources>
Loading…
Cancel
Save