Browse Source

KYC doc image preloader ui fixes

master
Preyea Regmi 5 years ago
parent
commit
70da6c7532
  1. 64
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customer_support/view/CustomerSupportFragment.java
  2. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3PresenterInterface.java
  3. 25
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java
  4. 60
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/CustomerDetailFragment.java
  5. 29
      app/src/main/res/layout/fragment_customer_support.xml
  6. 18
      app/src/main/res/layout/fragment_kyc_customer_detail.xml

64
app/src/main/java/com/gmeremit/online/gmeremittance_native/customer_support/view/CustomerSupportFragment.java

@ -27,6 +27,7 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.CustomProgressDial
import com.gmeremit.online.gmeremittance_native.homeV2.HomeParentViewContractV2;
import com.gmeremit.online.gmeremittance_native.supportV2.view.SupportActivityV2;
import com.gmeremit.online.gmeremittance_native.utils.ChatUtils;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.zoyi.channel.plugin.android.ChannelIO;
import com.zoyi.channel.plugin.android.ChannelPluginCompletionStatus;
import com.zoyi.channel.plugin.android.Guest;
@ -45,8 +46,8 @@ import static com.gmeremit.online.gmeremittance_native.base.PrefKeys.USER_COOUNT
public class CustomerSupportFragment extends DialogFragment implements CustomerSupportContract.IView, OnBootListener {
private static final String CUSTOMER_SUPPORT_IS_GUEST_USER = "GUEST_USER_BUNDLE_KEY";
@BindView(R.id.viewLiveChat)
View viewLiveChat;
@BindView(R.id.viewFaceBook)
View viewFaceBook;
@BindView(R.id.viewCall)
View viewCall;
@ -109,6 +110,20 @@ public class CustomerSupportFragment extends DialogFragment implements CustomerS
}
private void showFaceBookPage() {
Intent intent = null;
String facebookUrl = getFacebookUri();
String fb_uri = "";
if (Utils.isAppInstalled("com.facebook.katana", getActivity().getPackageManager())) {
fb_uri = "fb://facewebmodal/f?href=" + facebookUrl;
} else {
fb_uri = facebookUrl;
}
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(fb_uri + facebookUrl));
startActivity(intent);
dismissDialog();
}
public void showProgressBar(boolean action, String message) {
try {
if (action) {
@ -189,11 +204,11 @@ public class CustomerSupportFragment extends DialogFragment implements CustomerS
}
@OnClick({R.id.viewLiveChat, R.id.viewCall, R.id.chatView, R.id.btnCancel})
@OnClick({R.id.viewFaceBook, R.id.viewCall, R.id.chatView, R.id.btnCancel})
public void onClick(View view) {
switch (view.getId()) {
case R.id.viewLiveChat:
presenter.onSupportLiveChatClicked();
case R.id.viewFaceBook:
showFaceBookPage();
break;
case R.id.viewCall:
presenter.onSupportCallClicked();
@ -303,4 +318,43 @@ public class CustomerSupportFragment extends DialogFragment implements CustomerS
dismissDialog();
}
public String getFacebookUri() {
String localeCode = GmeApplication.getStorage().getString(USER_COOUNTRY_CODE, "NP");
Log.d("CurrentUserNativeCode", localeCode);
switch (localeCode.toUpperCase()) {
case "KH":
return "https://www.facebook.com/gmecambodia/?ref=br_rs";
case "TH":
return "https://www.facebook.com/gmethailand/?ref=br_rs";
case "LK":
return "https://www.facebook.com/gmeremitsrilanka/?ref=br_rs";
case "MN":
return "https://www.facebook.com/gmemongolia/?ref=br_rs";
case "MM":
return "https://www.facebook.com/gmemyanmar/?ref=br_rs";
case "NP":
return "https://www.facebook.com/gmenepal/?ref=br_rs";
case "ID":
return "https://www.facebook.com/gmeindonesia/?ref=br_rs";
case "BD":
return "https://www.facebook.com/gmebangladesh/?ref=br_rs";
case "RU":
return "https://www.facebook.com/gmenepal/?ref=br_rs";
case "UZ":
return "https://www.facebook.com/gmeuzbekistan/?ref=br_rs";
case "VN":
return "https://www.facebook.com/gmevietnam/?ref=br_rs";
case "PH":
return "https://www.facebook.com/gmephilippines/?ref=br_rs";
case "IN":
return "https://www.facebook.com/gmeremitindia/?ref=br_rs";
case "PK":
return "https://www.facebook.com/gmepakistan/?ref=br_rs";
default:
return "https://www.facebook.com/gmenepal/?ref=br_rs";
}
}
}

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

@ -30,7 +30,9 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
LiveData<Boolean> getForm3SubmissionReadyLiveData();
LiveData<Boolean> getForm2AlternateIdNumberFieldAccessLiveData();
LiveData<Bitmap> getPassportImageLiveData();
LiveData<Boolean> getPassportImageLoadingLiveData();
LiveData<Bitmap> getAlternateImageLiveData();
LiveData<Boolean> getAlternateImageLoadingLiveData();
LiveData<Boolean> getAlternateIdIssueDateRequireLiveData();
LiveData<Boolean> getAlternateIdExpiryDateRequireLiveData();
LiveData<Boolean> getIsCustomerKoreanLiveData();

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

@ -65,7 +65,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private MutableLiveData<Boolean> customerDetailForm3Button;
private MutableLiveData<Boolean> alternateIDNumberFieldEnableLiveData;
private MutableLiveData<Bitmap> passportImageLiveData;
private MutableLiveData<Boolean> passportImageLoadingLiveData;
private MutableLiveData<Bitmap> alternateIDImageLiveData;
private MutableLiveData<Boolean> alternateIDImageLoadingLiveData;
private MutableLiveData<Boolean> alternateIDIssueVisibilityDateRequireLiveData;
private MutableLiveData<Boolean> alternateIDExpiryDateVisibilityLiveData;
@ -123,7 +125,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
this.alternateIdRelatedViewResetLiveData = new MutableLiveData<>();
this.alternateIDNumberFieldEnableLiveData = new MutableLiveData<>();
this.passportImageLiveData = new MutableLiveData<>();
this.passportImageLoadingLiveData = new MutableLiveData<>();
this.alternateIDImageLiveData = new MutableLiveData<>();
this.alternateIDImageLoadingLiveData = new MutableLiveData<>();
this.alternateIDIssueVisibilityDateRequireLiveData = new MutableLiveData<>();
this.alternateIDExpiryDateVisibilityLiveData = new MutableLiveData<>();
this.customerDetailViewSubscriptions = new CompositeDisposable();
@ -191,7 +195,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (shouldRedirectToPennyTestScreen)
new Handler().postDelayed(() -> requestPennyTestFromServer("N"), 300);
//new Handler().postDelayed(()->customerKoreanLiveData.setValue(!isCustomerKorean),5000);
}
@ -250,6 +253,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (data.arePicturesAvailable()) {
if (data.getPictures().getPassportPicture() != null && data.getPictures().getPassportPicture().length() > 0)
compositeDisposable.add(fileDownloadGateway.downloadFile(data.getPictures().getPassportPicture())
.doOnSubscribe(subs -> passportImageLoadingLiveData.postValue(true))
.delaySubscription(1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.map(responseBody -> {
@ -258,6 +262,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return file;
})
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> passportImageLoadingLiveData.setValue(false))
.subscribeWith(new DisposableObserver<File>() {
@Override
public void onNext(File downloadedFile) {
@ -267,7 +272,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override
public void onError(Throwable e) {
// data.getPictures().setPassportImageAsFile(null);
}
@Override
@ -280,6 +285,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (data.getPictures().getAnotherIDPicture() != null && data.getPictures().getAnotherIDPicture().length() > 0)
compositeDisposable.add(fileDownloadGateway.downloadFile(data.getPictures().getAnotherIDPicture())
.doOnSubscribe(subs -> alternateIDImageLoadingLiveData.postValue(true))
.delaySubscription(1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.map(responseBody -> {
@ -288,6 +294,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return file;
})
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> alternateIDImageLoadingLiveData.setValue(false))
.subscribeWith(new DisposableObserver<File>() {
@Override
public void onNext(File downloadedFile) {
@ -297,7 +304,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override
public void onError(Throwable e) {
// data.getPictures().setAlternateIDImageAsFile(null);
}
@Override
@ -499,11 +506,21 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return passportImageLiveData;
}
@Override
public LiveData<Boolean> getPassportImageLoadingLiveData() {
return passportImageLoadingLiveData;
}
@Override
public LiveData<Bitmap> getAlternateImageLiveData() {
return alternateIDImageLiveData;
}
@Override
public LiveData<Boolean> getAlternateImageLoadingLiveData() {
return alternateIDImageLoadingLiveData;
}
@Override
public LiveData<Boolean> getAlternateIdIssueDateRequireLiveData() {
return alternateIDIssueVisibilityDateRequireLiveData;
@ -1042,7 +1059,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(val.getId());
anotherIdPictureLabeliveData.setValue(getAnotherIdTranslatedLable(val.getText()));
if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(val.getText()) || ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(val.getText())||ID_TYPE_DRIVING_LICENSE.equalsIgnoreCase(val.getText())) {
if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(val.getText()) || ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(val.getText()) || ID_TYPE_DRIVING_LICENSE.equalsIgnoreCase(val.getText())) {
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(1);
} else {
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(0);

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

@ -291,7 +291,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
private void performDefaultAction(Bundle savedInstance) {
form2.setVisibility(GONE);
form3.setVisibility(GONE);
ed_firstname.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
ed_firstname.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
KYCV3ViewModel kycv3ViewModel = ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class);
subscribeToCustomerRelatedDataError(kycv3ViewModel);
@ -385,15 +385,15 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
btnSubmit2.setVisibility(GONE);
form3.setVisibility(View.VISIBLE);
if (val.getPictures().getPassportPicture() != null && val.getPictures().getPassportPicture().length() > 0) {
progressbar_passport_id.setVisibility(View.VISIBLE);
// if (val.getPictures().getPassportPicture() != null && val.getPictures().getPassportPicture().length() > 0) {
// progressbar_passport_id.setVisibility(View.VISIBLE);
////
// }
//
}
if (val.getPictures().getAnotherIDPicture() != null && val.getPictures().getAnotherIDPicture().length() > 0) {
progressbar_alternate_id.setVisibility(View.VISIBLE);
//
}
// if (val.getPictures().getAnotherIDPicture() != null && val.getPictures().getAnotherIDPicture().length() > 0) {
// progressbar_alternate_id.setVisibility(View.VISIBLE);
////
// }
}
}
@ -402,15 +402,45 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
});
kycv3ViewModel.getPassportImageLiveData().observe(getViewLifecycleOwner(), bitmap -> {
progressbar_passport_id.setVisibility(GONE);
Utility.showImageFromBitmap(getActivity(), iv_passport_id, bitmap);
form3ViewBindings.passportIDDocPublishSubject.onNext(true);
if (bitmap != null) {
Utility.showImageFromBitmap(getActivity(), iv_passport_id, bitmap);
form3ViewBindings.passportIDDocPublishSubject.onNext(true);
} else
iv_passport_id.setImageResource(R.drawable.ic_passport_picture);
});
kycv3ViewModel.getPassportImageLoadingLiveData().observe(getViewLifecycleOwner(),action->{
if(action)
{
iv_passport_id.setVisibility(View.INVISIBLE);
progressbar_passport_id.setVisibility(View.VISIBLE);
}
else
{
progressbar_passport_id.setVisibility(View.INVISIBLE);
iv_passport_id.setVisibility(View.VISIBLE);
}
});
kycv3ViewModel.getAlternateImageLoadingLiveData().observe(getViewLifecycleOwner(),action->{
if(action)
{
iv_alternate_id.setVisibility(View.INVISIBLE);
progressbar_alternate_id.setVisibility(View.VISIBLE);
}
else
{
progressbar_alternate_id.setVisibility(View.INVISIBLE);
iv_alternate_id.setVisibility(View.VISIBLE);
}
});
kycv3ViewModel.getAlternateImageLiveData().observe(getViewLifecycleOwner(), bitmap -> {
progressbar_alternate_id.setVisibility(GONE);
Utility.showImageFromBitmap(getActivity(), iv_alternate_id, bitmap);
form3ViewBindings.alternateIDDocPublishSubject.onNext(true);
if (bitmap != null) {
Utility.showImageFromBitmap(getActivity(), iv_alternate_id, bitmap);
form3ViewBindings.alternateIDDocPublishSubject.onNext(true);
} else
iv_passport_id.setImageResource(R.drawable.ic_another_id_picture);
});

29
app/src/main/res/layout/fragment_customer_support.xml

@ -40,28 +40,27 @@
android:background="@color/divider" />
<LinearLayout
android:id="@+id/viewLiveChat"
android:id="@+id/viewFaceBook"
android:layout_width="match_parent"
android:layout_height="56dp"
android:visibility="gone"
android:orientation="horizontal"
android:paddingLeft="30dp"
android:paddingRight="30dp">
android:paddingRight="30dp"
android:visibility="visible">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_support_livechat" />
android:src="@drawable/ic_fb" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="19dp"
android:layout_marginStart="19dp"
android:gravity="center_vertical"
android:text="Live Chat"
android:gravity="center"
android:text="Facebook"
android:textColor="@color/cs_red"
android:textSize="20sp" />
</LinearLayout>
@ -82,8 +81,8 @@
android:visibility="visible">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_chat" />
@ -144,8 +143,8 @@
android:paddingRight="30dp">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_support_phone" />
@ -154,9 +153,7 @@
android:id="@+id/callTxtView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="1588 6864"
android:textColor="@color/cs_red"
android:textSize="20sp" />
</LinearLayout>

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

@ -759,12 +759,10 @@
<ImageView
android:id="@+id/iv_passport_id"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:maxHeight="@dimen/_80sdp"
android:maxWidth="@dimen/_80sdp"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginEnd="@dimen/_26sdp"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_80sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
android:src="@drawable/ic_passport_picture"
app:layout_constraintBottom_toBottomOf="parent"
@ -846,10 +844,10 @@
<ImageView
android:id="@+id/iv_alternate_id"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginEnd="@dimen/_26sdp"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_80sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
android:src="@drawable/ic_another_id_picture"
app:layout_constraintBottom_toBottomOf="parent"

Loading…
Cancel
Save