Browse Source

UI almost done

master
Preyea Regmi 5 years ago
parent
commit
9a60879bca
  1. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseViewModel.java
  2. 18
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3PresenterInterface.java
  3. 114
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java
  4. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/KYCV3Activity.java
  5. 56
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/CustomerDetailFragment.java
  6. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/AdditionalFormModel.java
  7. 41
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/CustomerDetailErrorLiveDataDTO.java
  8. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/DocumentsFormModel.java
  9. 28
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/PersonalFormModel.java

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseViewModel.java

@ -11,6 +11,8 @@ public abstract class BaseViewModel extends ViewModel implements BasePresenterIn
return GmeApplication.getStringExtractor().getStringFromStringId(id);
}
@Override
public void onViewDestroyed() {
}
}

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

@ -4,14 +4,22 @@ import androidx.lifecycle.LiveData;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.PersonalFormModel;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto.CustomerDetailErrorLiveDataDTO;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto.PersonalFormModel;
import com.jakewharton.rxbinding3.InitialValueObservable;
public interface KYCV3PresenterInterface extends BasePresenterInterface {
void onCustomerDetailFormAvailabilityChanged(boolean isReady);
LiveData<PersonalFormModel> getCustomerDetailFormLiveData();
LiveData<PersonalFormModel> getCustomerDetailRelatedFormLiveData();
CustomerDetailErrorLiveDataDTO getCustomerDetailRelatedFormErrorLiveData();
LiveData<Boolean> getForm1SubmissionReadyLiveData();
LiveData<Boolean> getForm2SubmissionReadyLiveData();
LiveData<Boolean> getForm3SubmissionReadyLiveData();
interface KYCV3ViewContractInterface extends BaseContractInterface
{
@ -21,6 +29,12 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
interface KYCV3CustomerDetailViewContractInterface extends BaseContractInterface
{
InitialValueObservable<CharSequence> getFullNameTextChangeEvent();
InitialValueObservable<CharSequence> getGenderChangeEvent();
InitialValueObservable<CharSequence> getDobChangeEvent();
InitialValueObservable<CharSequence> getEmailChangeEvent();
InitialValueObservable<CharSequence> getAddressChangeEvent();
}
}

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

@ -1,13 +1,13 @@
package com.gmeremit.online.gmeremittance_native.kycV3.presenter;
import android.util.Log;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.gmeremit.online.gmeremittance_native.base.BaseViewModel;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.PersonalFormModel;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto.CustomerDetailErrorLiveDataDTO;
import com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto.PersonalFormModel;
import io.reactivex.Observable;
import io.reactivex.disposables.CompositeDisposable;
public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInterface {
@ -19,11 +19,21 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private MutableLiveData<PersonalFormModel> customerDetailForm;
private MutableLiveData<Boolean> customerDetailForm1Button;
private MutableLiveData<Boolean> customerDetailForm2Button;
private MutableLiveData<Boolean> customerDetailForm3Button;
private CustomerDetailErrorLiveDataDTO customerDetailErrorLiveDataDTO;
public KYCV3ViewModel(KYCV3PresenterInterface.KYCV3ViewContractInterface view, KYCV3GatewayInterface gatewayInterface) {
this.view = view;
this.gateway = gatewayInterface;
this.customerDetailForm = new MutableLiveData<>();
this.customerDetailForm1Button = new MutableLiveData<>();
this.customerDetailForm2Button = new MutableLiveData<>();
this.customerDetailForm3Button = new MutableLiveData<>();
this.customerDetailViewSubscriptions = new CompositeDisposable();
this.customerDetailErrorLiveDataDTO = new CustomerDetailErrorLiveDataDTO();
}
@Override
@ -37,17 +47,27 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
@Override
public void onViewDestroyed() {
protected void onCleared() {
super.onCleared();
}
@Override
public void onCustomerDetailFormAvailabilityChanged(boolean isReady) {
if (isReady) {
this.customerDetailViewSubscriptions.add(
this.view.getCustomerDetailViewContract().getFullNameTextChangeEvent().subscribe(val -> {
customerDetailForm.setValue(new PersonalFormModel(val.toString()));
}));
// this.customerDetailViewSubscriptions.add(
// Observable.combineLatest(
// this.view.getCustomerDetailViewContract().getFullNameTextChangeEvent(),
// this.view.getCustomerDetailViewContract().getGenderChangeEvent(),
// this.view.getCustomerDetailViewContract().getDobChangeEvent(),
// this.view.getCustomerDetailViewContract().getEmailChangeEvent(),
// this.view.getCustomerDetailViewContract().getAddressChangeEvent(),
// (a,b,c,d,e)->{
//
// }
// )
// this.view.getCustomerDetailViewContract().getFullNameTextChangeEvent().subscribe(val -> {
// customerDetailForm.setValue(new PersonalFormModel(val.toString()));
// }));
} else {
if (!customerDetailViewSubscriptions.isDisposed())
customerDetailViewSubscriptions.dispose();
@ -55,16 +75,86 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
@Override
public LiveData<PersonalFormModel> getCustomerDetailFormLiveData() {
public LiveData<PersonalFormModel> getCustomerDetailRelatedFormLiveData() {
return customerDetailForm;
}
@Override
public CustomerDetailErrorLiveDataDTO getCustomerDetailRelatedFormErrorLiveData() {
return customerDetailErrorLiveDataDTO;
}
@Override
public LiveData<Boolean> getForm1SubmissionReadyLiveData() {
return customerDetailForm1Button;
}
@Override
public LiveData<Boolean> getForm2SubmissionReadyLiveData() {
return customerDetailForm2Button;
}
@Override
public LiveData<Boolean> getForm3SubmissionReadyLiveData() {
return customerDetailForm3Button;
}
public class CustomerDetailViewValidator {
String fullName;
/**
* Personal Information
*/
PersonalFormModel personalFormModel;
/**
* Bank and Id Details
*/
public void validateFullName(String fullName) {
this.fullName = fullName;
personalFormModel.setFullName(fullName);
if (personalFormModel.isFullNameValid()) {
customerDetailForm1Button.setValue(personalFormModel.areAllFieldsValid());
} else {
}
}
public void validateGender(String gender) {
if (personalFormModel.isGenderValid()) {
customerDetailForm1Button.setValue(personalFormModel.areAllFieldsValid());
} else {
customerDetailForm1Button.setValue(false);
}
}
public void validatedob(String dateOfBirth) {
if (personalFormModel.isDOBValid()) {
} else {
}
}
public void validateEmail(String email) {
if (personalFormModel.isEmailValid()) {
} else {
}
}
public void validateKoreaAddress(String koreaAddress) {
if (personalFormModel.isAddressValid()) {
} else {
}
}
}
}

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

@ -98,11 +98,6 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
viewModel.onViewNotReady();
}
@Override
protected void onDestroy() {
super.onDestroy();
viewModel.onViewDestroyed();
}
@Override
public KYCV3CustomerDetailViewContractInterface getCustomerDetailViewContract() {

56
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/CustomerDetailFragment.java

@ -57,6 +57,15 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
@BindView(R.id.ed_address)
EditText ed_address;
@BindView(R.id.ed_dob)
EditText ed_dob;
@BindView(R.id.ed_gender)
EditText ed_gender;
@BindView(R.id.ed_email)
EditText ed_email;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_kyc_customer_detail, container, false);
@ -78,9 +87,30 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
form2.setVisibility(View.GONE);
form3.setVisibility(View.GONE);
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).getCustomerDetailFormLiveData().observe(this, val -> {
ed_address.setText(val.address);
});
KYCV3ViewModel kycv3ViewModel = ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class);
subscribeToSubmitButtonEnable(kycv3ViewModel);
subscribeToCustomerRelatedDataError(kycv3ViewModel);
subscribeToCustomerRelatedData(kycv3ViewModel);
}
private void subscribeToSubmitButtonEnable(KYCV3ViewModel kycv3ViewModel) {
kycv3ViewModel.getForm1SubmissionReadyLiveData().observe(getViewLifecycleOwner(),val->btnSubmit1.setEnabled(val));
kycv3ViewModel.getForm2SubmissionReadyLiveData().observe(getViewLifecycleOwner(),val->btnSubmit2.setEnabled(val));
kycv3ViewModel.getForm3SubmissionReadyLiveData().observe(getViewLifecycleOwner(),val->btnSubmit3.setEnabled(val));
}
private void subscribeToCustomerRelatedData(KYCV3ViewModel kycv3ViewModel) {
kycv3ViewModel.getCustomerDetailRelatedFormLiveData().observe(getViewLifecycleOwner(), val -> {});
}
private void subscribeToCustomerRelatedDataError(KYCV3ViewModel kycv3ViewModel) {
kycv3ViewModel.getCustomerDetailRelatedFormErrorLiveData().getFullNameErrorLiveData().observe(getViewLifecycleOwner(), error->{});
kycv3ViewModel.getCustomerDetailRelatedFormErrorLiveData().getGenderErrorLiveData().observe(getViewLifecycleOwner(), error->{});
kycv3ViewModel.getCustomerDetailRelatedFormErrorLiveData().getDateOfBirthErrorLiveData().observe(getViewLifecycleOwner(), error->{});
kycv3ViewModel.getCustomerDetailRelatedFormErrorLiveData().getEmailErrorLiveData().observe(getViewLifecycleOwner(), error->{});
kycv3ViewModel.getCustomerDetailRelatedFormErrorLiveData().getKoreaAddresLiveData().observe(getViewLifecycleOwner(), error->{});
}
@ -143,4 +173,24 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
public InitialValueObservable<CharSequence> getFullNameTextChangeEvent() {
return RxTextView.textChanges(ed_firstname);
}
@Override
public InitialValueObservable<CharSequence> getGenderChangeEvent() {
return RxTextView.textChanges(ed_gender);
}
@Override
public InitialValueObservable<CharSequence> getDobChangeEvent() {
return RxTextView.textChanges(ed_dob);
}
@Override
public InitialValueObservable<CharSequence> getEmailChangeEvent() {
return RxTextView.textChanges(ed_email);
}
@Override
public InitialValueObservable<CharSequence> getAddressChangeEvent() {
return RxTextView.textChanges(ed_address);
}
}

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/AdditionalFormModel.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/AdditionalFormModel.java

@ -1,4 +1,4 @@
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal;
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto;
/**
* A Simple POJO that resembles the data required for additional form.

41
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/CustomerDetailErrorLiveDataDTO.java

@ -0,0 +1,41 @@
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
public class CustomerDetailErrorLiveDataDTO {
private MutableLiveData<String> fullNameError;
private MutableLiveData<String> genderError;
private MutableLiveData<String> dateOfBirthError;
private MutableLiveData<String> emailError;
private MutableLiveData<String> koreaAddres;
public CustomerDetailErrorLiveDataDTO() {
fullNameError=new MutableLiveData<>();
genderError=new MutableLiveData<>();
dateOfBirthError=new MutableLiveData<>();
emailError=new MutableLiveData<>();
koreaAddres=new MutableLiveData<>();
}
public LiveData<String> getFullNameErrorLiveData() {
return fullNameError;
}
public LiveData<String> getGenderErrorLiveData() {
return genderError;
}
public LiveData<String> getDateOfBirthErrorLiveData() {
return dateOfBirthError;
}
public LiveData<String> getEmailErrorLiveData() {
return emailError;
}
public LiveData<String> getKoreaAddresLiveData() {
return koreaAddres;
}
}

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/DocumentsFormModel.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/DocumentsFormModel.java

@ -1,4 +1,4 @@
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal;
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto;
/**
* A Simple POJO that resembles the data required for document form.

28
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/PersonalFormModel.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/viewdto/PersonalFormModel.java

@ -1,4 +1,4 @@
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal;
package com.gmeremit.online.gmeremittance_native.kycV3.view.personal.viewdto;
/**
* A Simple POJO that resembles the data required for personal form.
@ -54,4 +54,30 @@ public class PersonalFormModel {
public void setAddress(String address) {
this.address = address;
}
public boolean isFullNameValid()
{
return false;
}
public boolean isGenderValid()
{
return false;
}
public boolean isDOBValid()
{
return false;
}
public boolean isEmailValid()
{
return false;
}
public boolean isAddressValid()
{
return false;
}
public boolean areAllFieldsValid() {
return false;
}
}
Loading…
Cancel
Save