Browse Source

Image validaiton fixes

master
Preyea Regmi 5 years ago
parent
commit
a9b5bf13b1
  1. 32
      .idea/assetWizardSettings.xml
  2. 1337
      app/src/main/assets/dummykeyRelatedInfo.json
  3. 50
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/model/KYCRelatedDataDTO.java
  4. 14
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java
  5. 144
      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/utils/ImageUtils.java
  7. BIN
      app/src/main/res/drawable/img_mobile_alien_registeration.png
  8. 4
      app/src/main/res/drawable/vd_gps.xml
  9. 6
      app/src/main/res/layout/fragment_kyc_auto_debit_prompt.xml
  10. 14
      app/src/main/res/layout/fragment_kyc_customer_detail.xml

32
.idea/assetWizardSettings.xml

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WizardSettings">
<option name="children">
<map>
<entry key="vectorWizard">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="vectorAssetStep">
<value>
<PersistentState>
<option name="values">
<map>
<entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="vd_gps" />
<entry key="sourceFile" value="$USER_HOME$/Desktop/gps-location-symbol.svg" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</component>
</project>

1337
app/src/main/assets/dummykeyRelatedInfo.json
File diff suppressed because it is too large
View File

50
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/model/KYCRelatedDataDTO.java

@ -18,34 +18,30 @@ public class KYCRelatedDataDTO {
@Expose @Expose
private List<IDTextDTO> cityList; private List<IDTextDTO> cityList;
@SerializedName("Occupation")
@Expose
private List<IDTextDTO> occupationList;
@SerializedName("Bank") @SerializedName("Bank")
@Expose @Expose
private List<IDTextDTO> bankList; private List<IDTextDTO> bankList;
@SerializedName("Id")
@SerializedName("IdType")
@Expose @Expose
private List<IDTypeDTO> idTypeList; private List<IDTypeDTO> idTypeList;
@SerializedName("SourceOfFund")
@Expose
private List<IDTextDTO> sourceOfFundList;
@SerializedName("branch")
@SerializedName("Branch")
@Expose @Expose
private List<IDTextDTO> gmeBranchList; private List<IDTextDTO> gmeBranchList;
@SerializedName("personalInformation")
@SerializedName("PersonalInformation")
@Expose @Expose
private PersonalInfoDTO personalInformation; private PersonalInfoDTO personalInformation;
@SerializedName("primaryInformation")
@SerializedName("PrimaryInformation")
@Expose @Expose
private PrimaryInformationDTO primaryInformation; private PrimaryInformationDTO primaryInformation;
@SerializedName("pictures")
@SerializedName("Pictures")
@Expose @Expose
private PicturesDTO pictures; private PicturesDTO pictures;
@ -62,13 +58,7 @@ public class KYCRelatedDataDTO {
this.cityList = cityList; this.cityList = cityList;
} }
public List<IDTextDTO> getOccupationList() {
return occupationList;
}
public void setOccupationList(List<IDTextDTO> occupationList) {
this.occupationList = occupationList;
}
public List<IDTextDTO> getBankList() { public List<IDTextDTO> getBankList() {
return bankList; return bankList;
@ -86,13 +76,7 @@ public class KYCRelatedDataDTO {
this.idTypeList = idTypeList; this.idTypeList = idTypeList;
} }
public List<IDTextDTO> getSourceOfFundList() {
return sourceOfFundList;
}
public void setSourceOfFundList(List<IDTextDTO> sourceOfFundList) {
this.sourceOfFundList = sourceOfFundList;
}
public List<IDTextDTO> getGmeBranchList() { public List<IDTextDTO> getGmeBranchList() {
return gmeBranchList; return gmeBranchList;
@ -153,16 +137,7 @@ public class KYCRelatedDataDTO {
return null; return null;
} }
public IDTextDTO getSelectedSourceOfFundFromId(String id) {
if (id == null || id.length() < 1)
return null;
for (IDTextDTO sourceOfFund : sourceOfFundList)
if (sourceOfFund.getId().equalsIgnoreCase(id))
return sourceOfFund;
return null;
}
public IDTextDTO getSelectedGmeBranchFromId(String id) { public IDTextDTO getSelectedGmeBranchFromId(String id) {
if (id == null || id.length() < 1) if (id == null || id.length() < 1)
@ -186,16 +161,7 @@ public class KYCRelatedDataDTO {
return null; return null;
} }
public IDTextDTO getSelectedOccupationFromId(String id) {
if (id == null || id.length() < 1)
return null;
for (IDTextDTO occupation : occupationList)
if (occupation.getId().equalsIgnoreCase(id))
return occupation;
return null;
}
public IDTextDTO getSelectedBankFromBankId(String id) { public IDTextDTO getSelectedBankFromBankId(String id) {
if (id == null || id.length() < 1) if (id == null || id.length() < 1)
@ -250,7 +216,7 @@ public class KYCRelatedDataDTO {
} }
public void logFormSubmissionData() { public void logFormSubmissionData() {
// Log.d("KYCRelatedDataDTO",this.toString());
Log.d("KYCRelatedDataDTO",this.toString());
} }
public KYCRequestDataDTO getFullFormPostData(String userId) { public KYCRequestDataDTO getFullFormPostData(String userId) {

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

@ -1,6 +1,8 @@
package com.gmeremit.online.gmeremittance_native.kycV3.presenter; package com.gmeremit.online.gmeremittance_native.kycV3.presenter;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.nfc.Tag;
import android.util.Log;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
@ -140,8 +142,8 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
} }
})); }));
getDummyKYCRelatedData();
// getKycRelatedData();
// getDummyKYCRelatedData();
getKycRelatedData();
} }
@Override @Override
@ -227,6 +229,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
this.view.getCustomerDetailViewContract().getForm1ViewBindings().getAddressChangeEvent().map(val -> validator.validateKoreaAddress(val.toString())), this.view.getCustomerDetailViewContract().getForm1ViewBindings().getAddressChangeEvent().map(val -> validator.validateKoreaAddress(val.toString())),
(isFullNameValid, isGenderValid, isDobValid, isEmailValid, isCityValid, isAddressValid) -> { (isFullNameValid, isGenderValid, isDobValid, isEmailValid, isCityValid, isAddressValid) -> {
boolean result = isFullNameValid && isEmailValid && isAddressValid && isDobValid && isGenderValid && isCityValid; boolean result = isFullNameValid && isEmailValid && isAddressValid && isDobValid && isGenderValid && isCityValid;
Log.d(TAG,"Form 1 valid: "+result);
customerDetailForm1Button.setValue(result); customerDetailForm1Button.setValue(result);
return result; return result;
} }
@ -256,6 +259,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
&& ((boolean) args[3]) && ((boolean) args[4]) && ((boolean) args[5]) && ((boolean) args[3]) && ((boolean) args[4]) && ((boolean) args[5])
&& ((boolean) args[6]) && ((boolean) args[7]) && ((boolean) args[8]) && ((boolean) args[6]) && ((boolean) args[7]) && ((boolean) args[8])
&& ((boolean) args[9]) && ((boolean) args[10]); && ((boolean) args[9]) && ((boolean) args[10]);
Log.d(TAG,"Form 2 valid: "+result);
customerDetailForm2Button.setValue(result); customerDetailForm2Button.setValue(result);
return result; return result;
@ -317,7 +321,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
case CustomerDetailFragment.GALLERY_REQUEST_PASSPORT: case CustomerDetailFragment.GALLERY_REQUEST_PASSPORT:
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
validator.validatePassportImage(data); validator.validatePassportImage(data);
passportImageLiveData.setValue(ImageUtils.blur(view.getContext(), data.getAbsolutePath(), (int) thumbnailHeight, (int) thumbnailWidth));
passportImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile( data.getAbsolutePath(), (int) thumbnailHeight, (int) thumbnailWidth));
} }
break; break;
@ -325,7 +329,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
case CustomerDetailFragment.GALLERY_REQUEST_ALTERNATE_ID: case CustomerDetailFragment.GALLERY_REQUEST_ALTERNATE_ID:
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
validator.validateAlternateIDImage(data); validator.validateAlternateIDImage(data);
alternateIDImageLiveData.setValue(ImageUtils.blur(view.getContext(), data.getAbsolutePath(), (int) thumbnailHeight, (int) thumbnailWidth));
alternateIDImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile( data.getAbsolutePath(), (int) thumbnailHeight, (int) thumbnailWidth));
} }
break; break;
@ -407,7 +411,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
public void getKycRelatedData() { public void getKycRelatedData() {
compositeDisposable.add( compositeDisposable.add(
this.gateway.getKycRelatedData(gateway.getAuth(), gateway.getUserID(), "2")
this.gateway.getKycRelatedData(gateway.getAuth(), gateway.getUserID(), "kyc")
.doOnSubscribe(sub -> view.showProgressBar(true, "")) .doOnSubscribe(sub -> view.showProgressBar(true, ""))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())

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

@ -7,6 +7,7 @@ import android.content.ClipData;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.location.Address; import android.location.Address;
import android.location.Geocoder; import android.location.Geocoder;
import android.net.Uri; import android.net.Uri;
@ -27,6 +28,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
@ -35,6 +37,9 @@ import androidx.lifecycle.ViewModelProviders;
import androidx.transition.AutoTransition; import androidx.transition.AutoTransition;
import androidx.transition.TransitionManager; import androidx.transition.TransitionManager;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.gmeremit.online.gmeremittance_native.BuildConfig; import com.gmeremit.online.gmeremittance_native.BuildConfig;
import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseFragment; import com.gmeremit.online.gmeremittance_native.base.BaseFragment;
@ -273,36 +278,106 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
private void subscribeToCustomerRelatedData(KYCV3ViewModel kycv3ViewModel) { private void subscribeToCustomerRelatedData(KYCV3ViewModel kycv3ViewModel) {
kycv3ViewModel.getCustomerDetailRelatedFormLiveData().observe(getViewLifecycleOwner(), val -> { kycv3ViewModel.getCustomerDetailRelatedFormLiveData().observe(getViewLifecycleOwner(), val -> {
ed_firstname.setText(val.getPersonalInformation().getFullName());
ed_email.setText(val.getPersonalInformation().getEmail());
ed_gender.setText(val.getSelectedGenderFromGenderId(val.getPersonalInformation().getGender()).toString());
ed_address.setText(val.getPersonalInformation().getAddress());
ed_city.setText(val.getSelectedCityFromId(val.getPersonalInformation().getCity()).toString());
ed_dob.setText(val.getPersonalInformation().getDob());
form1ViewBindings.cityPublishSubject.onNext(val.getSelectedCityFromId(val.getPersonalInformation().getCity()));
form1ViewBindings.genderPublishSubject.onNext(val.getSelectedGenderFromGenderId(val.getPersonalInformation().getGender()));
form1ViewBindings.dobPublishSubject.onNext(val.getPersonalInformation().getDob());
ed_primaryBank.setText(val.getSelectedBankFromBankId(val.getPrimaryInformation().getBankId()).toString());
ed_primaryAccountNumber.setText(val.getPrimaryInformation().getBankAccount());
ed_passportId.setText(val.getPrimaryInformation().getPassportNumber());
ed_passportIdIssueDate.setText(val.getPrimaryInformation().getPassportIssueDate());
ed_passportIdExpiryDate.setText(val.getPrimaryInformation().getPassportExpiryDate());
ed_idType.setText(val.getSelectedIdTYpeFromId(val.getPrimaryInformation().getAnotherIDTypeId()).toString());
ed_anotherId.setText(val.getPrimaryInformation().getAnotherIDNumber());
ed_anotherIssueDate.setText(val.getPrimaryInformation().getPassportIssueDate());
ed_anotherExpiryDate.setText(val.getPrimaryInformation().getPassportExpiryDate());
ed_branch.setText(val.getSelectedGmeBranchFromId(val.getPrimaryInformation().getBranchId()).toString());
ed_referral.setText(val.getPrimaryInformation().getRefferalCode());
form2ViewBindings.passportNoIssuedDateSubject.onNext(val.getPrimaryInformation().getPassportIssueDate());
form2ViewBindings.passportNoExpiryDateSubject.onNext(val.getPrimaryInformation().getPassportExpiryDate());
form2ViewBindings.alternateIDNoIssuedDateSubject.onNext(val.getPrimaryInformation().getPassportIssueDate());
form2ViewBindings.alternateIDNoExpiryDateSubject.onNext(val.getPrimaryInformation().getPassportExpiryDate());
form2ViewBindings.primaryBankPublishSubject.onNext(val.getSelectedBankFromBankId(val.getPrimaryInformation().getBankId()));
form2ViewBindings.idTypeSubject.onNext(val.getSelectedIdTYpeFromId(val.getPrimaryInformation().getAnotherIDTypeId()));
form2ViewBindings.branchSubject.onNext(val.getSelectedGmeBranchFromId(val.getPrimaryInformation().getBranchId()));
if (val.getPersonalInformation() != null) {
ed_firstname.setText(val.getPersonalInformation().getFullName());
ed_email.setText(val.getPersonalInformation().getEmail());
IDTextDTO selectedGender = val.getSelectedGenderFromGenderId(val.getPersonalInformation().getGender());
if (selectedGender != null) {
ed_gender.setText(selectedGender.toString());
form1ViewBindings.genderPublishSubject.onNext(selectedGender);
}
ed_address.setText(val.getPersonalInformation().getAddress());
IDTextDTO selectedCity = val.getSelectedCityFromId(val.getPersonalInformation().getCity());
if (selectedCity != null) {
ed_city.setText(selectedCity.toString());
form1ViewBindings.cityPublishSubject.onNext(selectedCity);
}
ed_dob.setText(val.getPersonalInformation().getDob());
form1ViewBindings.dobPublishSubject.onNext(val.getPersonalInformation().getDob());
}
if (val.getPrimaryInformation() != null) {
IDTextDTO selectedPrimaryBank = val.getSelectedBankFromBankId(val.getPrimaryInformation().getBankId());
if (selectedPrimaryBank != null) {
ed_primaryBank.setText(selectedPrimaryBank.toString());
form2ViewBindings.primaryBankPublishSubject.onNext(selectedPrimaryBank);
}
ed_primaryAccountNumber.setText(val.getPrimaryInformation().getBankAccount());
ed_passportId.setText(val.getPrimaryInformation().getPassportNumber());
ed_passportIdIssueDate.setText(val.getPrimaryInformation().getPassportIssueDate());
ed_passportIdExpiryDate.setText(val.getPrimaryInformation().getPassportExpiryDate());
IDTypeDTO selectedIDType = val.getSelectedIdTYpeFromId(val.getPrimaryInformation().getAnotherIDTypeId());
if (selectedIDType != null) {
ed_idType.setText(selectedIDType.toString());
form2ViewBindings.idTypeSubject.onNext(selectedIDType);
}
ed_anotherId.setText(val.getPrimaryInformation().getAnotherIDNumber());
ed_anotherIssueDate.setText(val.getPrimaryInformation().getPassportIssueDate());
ed_anotherExpiryDate.setText(val.getPrimaryInformation().getPassportExpiryDate());
IDTextDTO selectedGmeBranch = val.getSelectedGmeBranchFromId(val.getPrimaryInformation().getBranchId());
if (selectedGmeBranch != null) {
ed_branch.setText(selectedGmeBranch.toString());
form2ViewBindings.branchSubject.onNext(selectedGmeBranch);
}
ed_referral.setText(val.getPrimaryInformation().getRefferalCode());
form2ViewBindings.passportNoIssuedDateSubject.onNext(val.getPrimaryInformation().getPassportIssueDate());
form2ViewBindings.passportNoExpiryDateSubject.onNext(val.getPrimaryInformation().getPassportExpiryDate());
form2ViewBindings.alternateIDNoIssuedDateSubject.onNext(val.getPrimaryInformation().getPassportIssueDate());
form2ViewBindings.alternateIDNoExpiryDateSubject.onNext(val.getPrimaryInformation().getPassportExpiryDate());
if(val.getPictures().getPassportPicture()!=null&&val.getPictures().getPassportPicture().length()>0)
{
Glide.with(iv_passport_id.getContext())
.asBitmap()
.load(val.getPictures().getPassportPicture())
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
iv_passport_id.setImageBitmap(resource);
form3ViewBindings.passportIDDocPublishSubject.onNext(true);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
if(val.getPictures().getAnotherIDPicture()!=null&&val.getPictures().getAnotherIDPicture().length()>0)
{
Glide.with(iv_alternate_id.getContext())
.asBitmap()
.load(val.getPictures().getAnotherIDPicture())
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
iv_alternate_id.setImageBitmap(resource);
form3ViewBindings.alternateIDDocPublishSubject.onNext(true);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
}
}); });
@ -384,7 +459,10 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
@Override @Override
public void onNext(String s) { public void onNext(String s) {
ed_address.setText(s);
if (s != null && s.length() > 0)
ed_address.setText(s);
else
showToastMessage("Failed to obtain current adddress");
} }
@ -404,8 +482,6 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
} }
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
@ -1028,6 +1104,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
io.reactivex.subjects.PublishSubject<IDTypeDTO> idTypeSubject; io.reactivex.subjects.PublishSubject<IDTypeDTO> idTypeSubject;
io.reactivex.subjects.PublishSubject<IDTextDTO> branchSubject; io.reactivex.subjects.PublishSubject<IDTextDTO> branchSubject;
public Form2ViewBindings() { public Form2ViewBindings() {
primaryBankPublishSubject = PublishSubject.create(); primaryBankPublishSubject = PublishSubject.create();
passportNoIssuedDateSubject = PublishSubject.create(); passportNoIssuedDateSubject = PublishSubject.create();
@ -1036,6 +1113,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
alternateIDNoExpiryDateSubject = PublishSubject.create(); alternateIDNoExpiryDateSubject = PublishSubject.create();
idTypeSubject = PublishSubject.create(); idTypeSubject = PublishSubject.create();
branchSubject = PublishSubject.create(); branchSubject = PublishSubject.create();
} }
public Observable<IDTextDTO> getPrimaryBankChangeEvent() { public Observable<IDTextDTO> getPrimaryBankChangeEvent() {

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/ImageUtils.java

@ -33,7 +33,7 @@ public class ImageUtils {
return outputBitmap; return outputBitmap;
} }
private static Bitmap generateThumbnailFromImageFile(String photoPath,int thumbnailHeight, int thumbnailWidth) {
public static Bitmap generateThumbnailFromImageFile(String photoPath,int thumbnailHeight, int thumbnailWidth) {
BitmapFactory.Options bmOptions = new BitmapFactory.Options(); BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true; bmOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(photoPath, bmOptions); BitmapFactory.decodeFile(photoPath, bmOptions);

BIN
app/src/main/res/drawable/img_mobile_alien_registeration.png

After

Width: 439  |  Height: 515  |  Size: 158 KiB

4
app/src/main/res/drawable/vd_gps.xml

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="561"
android:viewportWidth="561" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/colorPrimary" android:pathData="M507.45,255C494.7,147.9 410.55,63.75 306,53.55V0h-51v53.55C147.9,63.75 63.75,147.9 53.55,255H0v51h53.55C66.3,413.1 150.45,497.25 255,507.45V561h51v-53.55C413.1,494.7 497.25,410.55 507.45,306H561v-51H507.45zM280.5,459C181.05,459 102,379.95 102,280.5S181.05,102 280.5,102S459,181.05 459,280.5S379.95,459 280.5,459z"/>
</vector>

6
app/src/main/res/layout/fragment_kyc_auto_debit_prompt.xml

@ -18,8 +18,8 @@
<ImageView <ImageView
android:layout_marginTop="@dimen/_13sdp" android:layout_marginTop="@dimen/_13sdp"
android:id="@+id/imageView" android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_160sdp"
android:layout_height="@dimen/_170sdp"
app:layout_constraintBottom_toTopOf="@+id/txt_pennytest_msg" app:layout_constraintBottom_toTopOf="@+id/txt_pennytest_msg"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
@ -27,7 +27,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.32999998" app:layout_constraintVertical_bias="0.32999998"
app:layout_constraintVertical_chainStyle="packed" app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/vd_bank_link_image" />
app:srcCompat="@drawable/img_mobile_alien_registeration" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView <com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

14
app/src/main/res/layout/fragment_kyc_customer_detail.xml

@ -226,19 +226,19 @@
style="@style/editetxtsingleline" style="@style/editetxtsingleline"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="24dp"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:singleLine="false" /> android:singleLine="false" />
</com.gmeremit.online.gmeremittance_native.customwidgets.GMETextInputLayout> </com.gmeremit.online.gmeremittance_native.customwidgets.GMETextInputLayout>
<ImageView <ImageView
android:paddingStart="@dimen/_5sdp"
android:id="@+id/img_gps" android:id="@+id/img_gps"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end" android:layout_gravity="center_vertical|end"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/gps" />
app:srcCompat="@drawable/vd_gps" />
</FrameLayout> </FrameLayout>
@ -734,8 +734,8 @@
<ImageView <ImageView
android:id="@+id/iv_passport_id" android:id="@+id/iv_passport_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:maxHeight="@dimen/_80sdp" android:maxHeight="@dimen/_80sdp"
android:maxWidth="@dimen/_80sdp" android:maxWidth="@dimen/_80sdp"
android:layout_marginStart="@dimen/_26sdp" android:layout_marginStart="@dimen/_26sdp"
@ -809,8 +809,8 @@
<ImageView <ImageView
android:id="@+id/iv_alternate_id" android:id="@+id/iv_alternate_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:layout_marginStart="@dimen/_26sdp" android:layout_marginStart="@dimen/_26sdp"
android:layout_marginEnd="@dimen/_26sdp" android:layout_marginEnd="@dimen/_26sdp"
android:scaleType="centerCrop" android:scaleType="centerCrop"

Loading…
Cancel
Save