Preyea Regmi
4 years ago
23 changed files with 5 additions and 1494 deletions
-
148app/src/main/java/com/swifttech/remit/android/common/customwidgets/kjnoticedialog/KJNoticeDialog.java
-
34app/src/main/java/com/swifttech/remit/android/features/accountmanage/adapter/accountlisting/AccountManageViewPagerAdapter.java
-
184app/src/main/java/com/swifttech/remit/android/features/accountmanage/adapter/accountlisting/InboundAccountListingRvAdapter.java
-
37app/src/main/java/com/swifttech/remit/android/features/accountmanage/gateway/inboundaccountmanage/InboundAccountAddV2Gateway.java
-
22app/src/main/java/com/swifttech/remit/android/features/accountmanage/presenter/inboundaccountmanage/InboundAccountAddV2InteractorInterface.java
-
257app/src/main/java/com/swifttech/remit/android/features/accountmanage/presenter/inboundaccountmanage/InboundAccountAddV2Presenter.java
-
55app/src/main/java/com/swifttech/remit/android/features/accountmanage/presenter/inboundaccountmanage/InboundAccountAddV2PresenterInterface.java
-
145app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/AutoDebitWebBrowserActivityV2.java
-
27app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/accountlisting/autodebitlisting/AccountAddRVViewHolder.java
-
9app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/inboundaccountmanage/InboundAccountAddActionListener.java
-
155app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/inboundaccountmanage/InboundAccountAddActivity.java
-
191app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/inboundaccountmanage/InboundAddAccountConfirmFragment.java
-
171app/src/main/java/com/swifttech/remit/android/features/accountmanage/view/inboundaccountmanage/InboundAddAccountPennyTestFragment.java
-
23app/src/main/java/com/swifttech/remit/android/features/homeV2/view/HomeActivityV2.java
-
2app/src/main/java/com/swifttech/remit/android/features/homeV2/view/HomeFragmentV2.java
-
3app/src/main/java/com/swifttech/remit/android/features/inboundreceipt/view/InboundRemitReceiptActivity.java
-
BINapp/src/main/jniLibs/arm64-v8a/libantidebugger.so
-
BINapp/src/main/jniLibs/armeabi-v7a/libantidebugger.so
-
BINapp/src/main/jniLibs/x86/libantidebugger.so
-
BINapp/src/main/jniLibs/x86_64/libantidebugger.so
-
32app/src/main/res/layout/nav_drawer_fragment.xml
-
2app/src/main/res/values-mn/strings.xml
-
2app/src/main/res/values/strings.xml
@ -1,148 +0,0 @@ |
|||
package com.swifttech.remit.android.common.customwidgets.kjnoticedialog; |
|||
|
|||
import android.app.Dialog; |
|||
import android.os.Bundle; |
|||
import androidx.appcompat.app.AlertDialog; |
|||
|
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.view.ViewTreeObserver; |
|||
import android.view.Window; |
|||
import android.widget.FrameLayout; |
|||
import android.widget.ImageView; |
|||
import android.widget.TextView; |
|||
|
|||
import androidx.fragment.app.DialogFragment; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
|
|||
public class KJNoticeDialog extends DialogFragment implements View.OnClickListener { |
|||
|
|||
ImageView imageView; |
|||
FrameLayout imageViewContainer; |
|||
TextView btnRenew; |
|||
TextView btnLater; |
|||
private Window window; |
|||
|
|||
private String positiveBtnString=null; |
|||
private String negativeBtnString=null; |
|||
private KJNoticeDialogListener listener; |
|||
private boolean shouldBeCancellable=true; |
|||
|
|||
private static final float HEIGHT_WIDTH_RATIO=0.9216f; |
|||
|
|||
|
|||
@Override |
|||
public Dialog onCreateDialog(Bundle savedInstanceState) { |
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); |
|||
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_kj_notice_prompt, null); |
|||
imageView = view.findViewById(R.id.fingerprintScannerImgView); |
|||
imageViewContainer = view.findViewById(R.id.imageViewContainer); |
|||
btnRenew = view.findViewById(R.id.btnRenew); |
|||
btnLater = view.findViewById(R.id.btnLater); |
|||
if(positiveBtnString!=null) |
|||
btnRenew.setText(positiveBtnString); |
|||
if(negativeBtnString!=null) |
|||
btnLater.setText(negativeBtnString); |
|||
setCancelable(shouldBeCancellable); |
|||
builder.setView(view); |
|||
initialize(); |
|||
Dialog dialog = builder.create(); |
|||
try { |
|||
this.window = dialog.getWindow(); |
|||
window.setBackgroundDrawableResource(R.drawable.ic_rounded_white); |
|||
|
|||
} catch (NullPointerException e) { |
|||
|
|||
imageViewContainer.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { |
|||
@Override |
|||
public void onGlobalLayout() { |
|||
imageViewContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this); |
|||
ViewGroup.LayoutParams imageViewLayoutParams = imageViewContainer.getLayoutParams(); |
|||
imageViewLayoutParams.height = (int) (imageViewContainer.getWidth()*HEIGHT_WIDTH_RATIO); |
|||
imageViewContainer.setLayoutParams(imageViewLayoutParams); |
|||
|
|||
} |
|||
}); |
|||
} |
|||
return dialog; |
|||
|
|||
} |
|||
|
|||
private void initialize() { |
|||
|
|||
|
|||
} |
|||
|
|||
public void setCancellable(boolean action) |
|||
{ |
|||
shouldBeCancellable=action; |
|||
} |
|||
|
|||
|
|||
public void setListener(KJNoticeDialogListener listener) { |
|||
this.listener = listener; |
|||
} |
|||
|
|||
public void setPositiveBtnString(String string) |
|||
{ |
|||
this.positiveBtnString=string; |
|||
} |
|||
|
|||
public void setNegativeBtnString(String string) |
|||
{ |
|||
this.negativeBtnString=string; |
|||
} |
|||
|
|||
@Override |
|||
public void onStart() { |
|||
super.onStart(); |
|||
btnLater.setOnClickListener(this); |
|||
btnRenew.setOnClickListener(this); |
|||
} |
|||
|
|||
@Override |
|||
public void onStop() { |
|||
super.onStop(); |
|||
btnLater.setOnClickListener(null); |
|||
btnRenew.setOnClickListener(null); |
|||
} |
|||
|
|||
@Override |
|||
public void onResume() { |
|||
super.onResume(); |
|||
} |
|||
|
|||
@Override |
|||
public void onPause() { |
|||
super.onPause(); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
@Override |
|||
public void onClick(View v) { |
|||
switch(v.getId()) |
|||
{ |
|||
case R.id.btnRenew: |
|||
if(listener!=null) |
|||
listener.onPositiveBtnPressed(); |
|||
break; |
|||
case R.id.btnLater: |
|||
if(listener!=null) |
|||
listener.onNegativeBtnPressed(); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
public interface KJNoticeDialogListener |
|||
{ |
|||
void onNegativeBtnPressed(); |
|||
void onPositiveBtnPressed(); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -1,34 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.adapter.accountlisting; |
|||
|
|||
import androidx.fragment.app.Fragment; |
|||
import androidx.fragment.app.FragmentManager; |
|||
import androidx.fragment.app.FragmentPagerAdapter; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class AccountManageViewPagerAdapter extends FragmentPagerAdapter { |
|||
|
|||
private List<Fragment> fraglist; |
|||
|
|||
public AccountManageViewPagerAdapter(FragmentManager fm) { |
|||
super(fm); |
|||
fraglist=new ArrayList<>(); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public Fragment getItem(int position) { |
|||
return fraglist.get(position); |
|||
} |
|||
|
|||
public void addFragments(List<Fragment> data) |
|||
{ |
|||
fraglist=data; |
|||
} |
|||
@Override |
|||
public int getCount() { |
|||
return fraglist.size(); |
|||
} |
|||
|
|||
} |
@ -1,184 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.adapter.accountlisting; |
|||
|
|||
import androidx.annotation.NonNull; |
|||
import androidx.recyclerview.widget.RecyclerView; |
|||
import android.view.LayoutInflater; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.widget.ImageView; |
|||
import android.widget.TextView; |
|||
|
|||
import com.bumptech.glide.Glide; |
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.InboundAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.view.accountlisting.autodebitlisting.AccountAddRVViewHolder; |
|||
import com.swifttech.remit.android.common.customwidgets.banklistingdialog.BankIconMapper; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
|
|||
public class InboundAccountListingRvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { |
|||
|
|||
private final InboundAccountActionListener listener; |
|||
private static final int NORMAL_ADD_ACCOUNT_VIEW = 12; |
|||
private static final int ADD_ACCOUNT_VIEW = 13; |
|||
|
|||
List<InboundAccount> inboundAccountList; |
|||
|
|||
public InboundAccountListingRvAdapter(InboundAccountActionListener listener) { |
|||
this.listener = listener; |
|||
inboundAccountList = new ArrayList<>(); |
|||
} |
|||
|
|||
@NonNull |
|||
@Override |
|||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { |
|||
View view; |
|||
if (viewType == NORMAL_ADD_ACCOUNT_VIEW) { |
|||
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.inbound_account_list_item, parent, false); |
|||
return new InboundListingRVAdapter(view); |
|||
} else { |
|||
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.auto_debit_add_new_account, parent, false); |
|||
return new AccountAddRVViewHolder(view); |
|||
} |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { |
|||
if (viewHolder instanceof InboundListingRVAdapter) { |
|||
InboundAccount inboundAccount = inboundAccountList.get(i); |
|||
((InboundListingRVAdapter) viewHolder).setBankName(inboundAccount.getBank()); |
|||
((InboundListingRVAdapter) viewHolder).setAccNo(inboundAccount.getAccountNo()); |
|||
|
|||
Glide.with( ((InboundListingRVAdapter) viewHolder).getBankIconImageView().getContext()) |
|||
.load(BankIconMapper.getBankIconFromBankCode(inboundAccount.getBankCode())) |
|||
.into( ((InboundListingRVAdapter) viewHolder).getBankIconImageView()); |
|||
|
|||
if(inboundAccount.getIsPennyTestSuccess()) |
|||
{ |
|||
((InboundListingRVAdapter) viewHolder).getLinkAsInboundImageView().setVisibility(View.GONE); |
|||
((InboundListingRVAdapter) viewHolder).getLinkAsInboundImageView().setOnClickListener(null); |
|||
} |
|||
else |
|||
{ |
|||
((InboundListingRVAdapter) viewHolder).getLinkAsInboundImageView().setVisibility(View.VISIBLE); |
|||
((InboundListingRVAdapter) viewHolder).getLinkAsInboundImageView().setOnClickListener(view-> listener.redirectToLinkInboundAccount(inboundAccount)); |
|||
} |
|||
((InboundListingRVAdapter) viewHolder).getDeleteInboundAccImageView().setOnClickListener(view-> listener.deleteInboundAccount(inboundAccount)); |
|||
|
|||
} else { |
|||
((AccountAddRVViewHolder) viewHolder).getAddAccIcon().setOnClickListener(view -> listener.redirectToAddInboundAccount()); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public int getItemCount() { |
|||
return inboundAccountList.size(); |
|||
} |
|||
|
|||
@Override |
|||
public int getItemViewType(int position) { |
|||
if (position == inboundAccountList.size() - 1) |
|||
return ADD_ACCOUNT_VIEW; |
|||
else |
|||
return NORMAL_ADD_ACCOUNT_VIEW; |
|||
|
|||
} |
|||
|
|||
public void setData(List<InboundAccount> accountsList) { |
|||
if (accountsList != null && accountsList.size() > 0) { |
|||
this.inboundAccountList = accountsList; |
|||
notifyDataSetChanged(); |
|||
} |
|||
} |
|||
|
|||
|
|||
public static class InboundAccountListRvViewholder extends RecyclerView.ViewHolder { |
|||
|
|||
@BindView(R.id.bankNameTxtView) |
|||
TextView bankName; |
|||
|
|||
@BindView(R.id.accNo) |
|||
TextView accNo; |
|||
|
|||
public InboundAccountListRvViewholder(@NonNull View itemView) { |
|||
super(itemView); |
|||
ButterKnife.bind(this, itemView); |
|||
} |
|||
|
|||
public void setBankName(String bankName) { |
|||
this.bankName.setText(bankName); |
|||
} |
|||
|
|||
public void setAccNo(String accNo) { |
|||
this.accNo.setText(accNo); |
|||
} |
|||
} |
|||
|
|||
public interface InboundAccountActionListener { |
|||
|
|||
void redirectToLinkInboundAccount(InboundAccount selectedAccount); |
|||
|
|||
void redirectToAddInboundAccount(); |
|||
|
|||
void deleteInboundAccount(InboundAccount inboundAccount); |
|||
} |
|||
|
|||
public static class InboundListingRVAdapter extends RecyclerView.ViewHolder |
|||
{ |
|||
|
|||
@BindView(R.id.bankNameTxtView) |
|||
TextView bankName; |
|||
|
|||
@BindView(R.id.accNo) |
|||
TextView accNo; |
|||
|
|||
|
|||
@BindView(R.id.iv_passport_id) |
|||
ImageView iv_front_image; |
|||
|
|||
@BindView(R.id.iv_link_inbound) |
|||
ImageView iv_link_inbound; |
|||
|
|||
|
|||
@BindView(R.id.iv_delete_inbound) |
|||
ImageView iv_delete_inbound; |
|||
|
|||
|
|||
public InboundListingRVAdapter(@NonNull View itemView) { |
|||
super(itemView); |
|||
ButterKnife.bind(this,itemView); |
|||
} |
|||
|
|||
public void setBankName(String bankName) |
|||
{ |
|||
this.bankName.setText(bankName); |
|||
} |
|||
|
|||
public void setAccNo(String accNo) |
|||
{ |
|||
this.accNo.setText(accNo); |
|||
} |
|||
|
|||
public ImageView getBankIconImageView() |
|||
{ |
|||
return iv_front_image; |
|||
} |
|||
|
|||
public ImageView getLinkAsInboundImageView() |
|||
{ |
|||
return iv_link_inbound; |
|||
} |
|||
|
|||
public ImageView getDeleteInboundAccImageView() |
|||
{ |
|||
return iv_delete_inbound; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
@ -1,37 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.gateway.inboundaccountmanage; |
|||
|
|||
import com.swifttech.remit.android.features.accountmanage.model.inboundaccountmanage.InboundAccountAddRequestBody; |
|||
import com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage.InboundAccountAddV2InteractorInterface; |
|||
import com.swifttech.remit.android.base.PrivilegedGateway; |
|||
import com.swifttech.remit.android.utils.https.HttpClientV2; |
|||
import com.google.gson.JsonObject; |
|||
|
|||
import io.reactivex.Observable; |
|||
import okhttp3.ResponseBody; |
|||
|
|||
public class InboundAccountAddV2Gateway extends PrivilegedGateway implements InboundAccountAddV2InteractorInterface.InboundAccountAddV2GatewayInterface { |
|||
|
|||
@Override |
|||
public Observable<ResponseBody> getKoreanBankList(String auth, String Uid) { |
|||
return HttpClientV2.getInstance().getAvailableKFTCBankList(auth); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public Observable<ResponseBody> startPennyTest(String auth, String userId, InboundAccountAddRequestBody requestBody,String resend) { |
|||
return HttpClientV2.getInstance().startInboundPennyTestStart(auth,userId,requestBody,resend); |
|||
} |
|||
|
|||
@Override |
|||
public Observable<ResponseBody> submitPennyTest(String auth, String userId, String bankCode, String accountNo, String cerNumber,String accountType,String accountID) { |
|||
JsonObject jsonObject=new JsonObject() ; |
|||
jsonObject.addProperty("CustomerId",userId); |
|||
jsonObject.addProperty("BankCode",bankCode); |
|||
jsonObject.addProperty("AccountNo",accountNo); |
|||
jsonObject.addProperty("CertNumber",cerNumber); |
|||
jsonObject.addProperty("accountId",accountID); |
|||
jsonObject.addProperty("accountType",accountType); |
|||
return HttpClientV2.getInstance().performInboundPennyTestSubmit(auth,jsonObject); |
|||
} |
|||
|
|||
} |
@ -1,22 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage; |
|||
|
|||
import com.swifttech.remit.android.features.accountmanage.model.inboundaccountmanage.InboundAccountAddRequestBody; |
|||
import com.swifttech.remit.android.base.BaseInteractorInterface; |
|||
import com.swifttech.remit.android.base.PrivilegedGatewayInterface; |
|||
|
|||
import io.reactivex.Observable; |
|||
import okhttp3.ResponseBody; |
|||
|
|||
public interface InboundAccountAddV2InteractorInterface extends BaseInteractorInterface { |
|||
|
|||
|
|||
interface InboundAccountAddV2GatewayInterface extends PrivilegedGatewayInterface |
|||
{ |
|||
Observable<ResponseBody> getKoreanBankList(String auth, String Uid); |
|||
|
|||
Observable<ResponseBody> startPennyTest(String auth, String userId, InboundAccountAddRequestBody requestBody,String resend); |
|||
|
|||
Observable<ResponseBody> submitPennyTest(String auth,String userId,String bankCode, String accountNo, String cerNumber,String accountType,String accountID); |
|||
|
|||
} |
|||
} |
@ -1,257 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.AutoDebitAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.InboundAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.model.bankaccountvalidation.BankInfo; |
|||
import com.swifttech.remit.android.features.accountmanage.model.inboundaccountmanage.InboundAccountAddRequestBody; |
|||
import com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage.InboundAddAccountConfirmFragment; |
|||
import com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage.InboundAddAccountPennyTestFragment; |
|||
import com.swifttech.remit.android.base.BasePresenter; |
|||
import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog; |
|||
import com.swifttech.remit.android.utils.Constants; |
|||
import com.swifttech.remit.android.utils.https.GenericApiObserverResponseV2; |
|||
import com.swifttech.remit.android.utils.https.GenericResponseDataModel; |
|||
import com.swifttech.remit.android.utils.https.MessageResponseDataModel; |
|||
import com.google.gson.reflect.TypeToken; |
|||
|
|||
import java.lang.reflect.Type; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
import io.reactivex.Observable; |
|||
import io.reactivex.android.schedulers.AndroidSchedulers; |
|||
import io.reactivex.disposables.CompositeDisposable; |
|||
import io.reactivex.schedulers.Schedulers; |
|||
import io.reactivex.subjects.BehaviorSubject; |
|||
|
|||
public class InboundAccountAddV2Presenter extends BasePresenter implements InboundAccountAddV2PresenterInterface { |
|||
|
|||
|
|||
private final InboundAccountAddV2ContractInterface view; |
|||
private final InboundAccountAddV2InteractorInterface.InboundAccountAddV2GatewayInterface gateway; |
|||
private final CompositeDisposable compositeDisposable; |
|||
private InboundAccountAddRequestBody pennyTestRequestBody; |
|||
private List<BankInfo> availableKoreanBankList; |
|||
private BehaviorSubject<InboundAddAccountConfirmFragment.InboundAddAccountViewDTO> addAcountDataSubject; |
|||
private BehaviorSubject<InboundAddAccountPennyTestFragment.InboundPennyTestViewDTO> pennyTestDataSubject; |
|||
|
|||
public InboundAccountAddV2Presenter(InboundAccountAddV2ContractInterface view, InboundAccountAddV2InteractorInterface.InboundAccountAddV2GatewayInterface gateway) { |
|||
this.view = view; |
|||
this.gateway = gateway; |
|||
this.compositeDisposable = new CompositeDisposable(); |
|||
this.pennyTestRequestBody = new InboundAccountAddRequestBody(); |
|||
this.availableKoreanBankList = new ArrayList<>(); |
|||
addAcountDataSubject = BehaviorSubject.create(); |
|||
pennyTestDataSubject = BehaviorSubject.create(); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void updateAutoDebitAccountData(AutoDebitAccount autoDebitAccount) { |
|||
this.pennyTestRequestBody = InboundAccountAddRequestBody.createRequestBodyFromAutoDebitAccount(autoDebitAccount); |
|||
|
|||
InboundAddAccountConfirmFragment.InboundAddAccountViewDTO addAccountViewDTO = new InboundAddAccountConfirmFragment.InboundAddAccountViewDTO(autoDebitAccount.getBankName(), autoDebitAccount.getBankCode(), autoDebitAccount.getAccountNumMasked(), false); |
|||
|
|||
addAcountDataSubject.onNext(addAccountViewDTO); |
|||
} |
|||
|
|||
@Override |
|||
public void updateInboundAccount(InboundAccount inboundAccount) { |
|||
this.pennyTestRequestBody = InboundAccountAddRequestBody.createRequestBodyFromInboundAccount(inboundAccount); |
|||
InboundAddAccountConfirmFragment.InboundAddAccountViewDTO addAccountViewDTO = new InboundAddAccountConfirmFragment.InboundAddAccountViewDTO(inboundAccount.getBank(), inboundAccount.getBankCode(), inboundAccount.getAccountNo(), false); |
|||
|
|||
addAcountDataSubject.onNext(addAccountViewDTO); |
|||
} |
|||
|
|||
|
|||
|
|||
@Override |
|||
public void getRelatedData() { |
|||
compositeDisposable.add( |
|||
this.gateway.getKoreanBankList(this.gateway.getAuth(), this.gateway.getUserIDNumber()) |
|||
.doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doFinally(() -> view.showProgressBar(false, "")) |
|||
.subscribeWith(new KoreanBankListObserver()) |
|||
); |
|||
} |
|||
|
|||
@Override |
|||
public void requestForPennyTest(String resend) { |
|||
compositeDisposable.add( |
|||
this.gateway.startPennyTest(this.gateway.getAuth(), this.gateway.getUserIDNumber(), this.pennyTestRequestBody,resend) |
|||
.doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doFinally(() -> view.showProgressBar(false, "")) |
|||
.subscribeWith(new PennyTestRequestObserver()) |
|||
); |
|||
|
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void submitPennyTest(String depositReference) { |
|||
compositeDisposable.add( |
|||
this.gateway.submitPennyTest(this.gateway.getAuth(), this.gateway.getUserIDNumber(), this.pennyTestRequestBody.getBankCode(), this.pennyTestRequestBody.getAccountNo(), depositReference,this.pennyTestRequestBody.getAccountType(),this.pennyTestRequestBody.getAccountId()) |
|||
.doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doFinally(() -> view.showProgressBar(false, "")) |
|||
.subscribeWith(new PennyTestResultObserver()) |
|||
); |
|||
} |
|||
|
|||
@Override |
|||
public List<BankInfo> getKoreanBankList() { |
|||
return availableKoreanBankList; |
|||
} |
|||
|
|||
@Override |
|||
public void updateBank(BankInfo selectedBank) { |
|||
this.pennyTestRequestBody.setBankName(selectedBank.getBankName()); |
|||
this.pennyTestRequestBody.setBankCode(selectedBank.getBankCode()); |
|||
validateForm1(); |
|||
} |
|||
|
|||
@Override |
|||
public void onBankAccNoChanged(String bankAccNo) { |
|||
if (bankAccNo != null && bankAccNo.length() > 0) { |
|||
pennyTestRequestBody.setAccountNo(bankAccNo); |
|||
view.showInvalidAccNoError(null); |
|||
} else { |
|||
pennyTestRequestBody.setAccountNo(null); |
|||
view.showInvalidAccNoError(getStringfromStringId(R.string.invalid_account_error_text)); |
|||
} |
|||
validateForm1(); |
|||
|
|||
|
|||
} |
|||
|
|||
private void validateForm1() { |
|||
view.enableForm1Button(pennyTestRequestBody.getAccountNo() != null && pennyTestRequestBody.getAccountNo().length() >= 1 && pennyTestRequestBody.getBankCode() != null && pennyTestRequestBody.getBankName() != null); |
|||
} |
|||
|
|||
@Override |
|||
public Observable<InboundAddAccountConfirmFragment.InboundAddAccountViewDTO> subscribeToInboundAddAccountDataEvent() { |
|||
return addAcountDataSubject; |
|||
} |
|||
|
|||
@Override |
|||
public Observable<InboundAddAccountPennyTestFragment.InboundPennyTestViewDTO> subscribeToPennyTestDataEvent() { |
|||
return pennyTestDataSubject; |
|||
} |
|||
|
|||
@Override |
|||
public void onDepositReferenceChanged(String depositReference) { |
|||
if (depositReference != null && depositReference.length() == 4) { |
|||
view.showInvalidDepositError(null); |
|||
view.enableForm2Button(true); |
|||
} else { |
|||
view.showInvalidDepositError(getStringfromStringId(R.string.empty_field_error_text)); |
|||
view.enableForm2Button(false); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onBankDetailValidated() { |
|||
requestForPennyTest("N"); |
|||
} |
|||
|
|||
public class PennyTestRequestObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> { |
|||
|
|||
@Override |
|||
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { |
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|||
InboundAddAccountPennyTestFragment.InboundPennyTestViewDTO pennyTestViewDTO = new InboundAddAccountPennyTestFragment.InboundPennyTestViewDTO(pennyTestRequestBody.getBankName(), pennyTestRequestBody.getBankCode(), pennyTestRequestBody.getAccountNo(), getStringfromStringId(R.string.pennytest_information_text)); |
|||
view.showPopUpMessage(getStringfromStringId(R.string.pennytest_information_text), CustomAlertDialog.AlertType.SUCCESS, alertType -> { |
|||
pennyTestDataSubject.onNext(pennyTestViewDTO); |
|||
view.showPennyTestScreen(); |
|||
}); |
|||
} 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) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); |
|||
|
|||
} |
|||
} |
|||
|
|||
public class PennyTestResultObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> { |
|||
|
|||
@Override |
|||
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { |
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|||
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.onPennyTestSuccess()); |
|||
} 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) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); |
|||
|
|||
} |
|||
} |
|||
|
|||
public class KoreanBankListObserver extends GenericApiObserverResponseV2<List<BankInfo>> { |
|||
|
|||
|
|||
@Override |
|||
protected Type getDataType() { |
|||
return TypeToken.getParameterized(List.class, BankInfo.class).getType(); |
|||
} |
|||
|
|||
@Override |
|||
protected void onSuccess(GenericResponseDataModel<List<BankInfo>> t) { |
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|||
availableKoreanBankList = t.getData(); |
|||
} else { |
|||
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onFailed(String message) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); |
|||
} |
|||
|
|||
@Override |
|||
protected void onConnectionNotEstablished(String message) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); |
|||
} |
|||
|
|||
@Override |
|||
protected void unauthorizedAccess(String message) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.logout()); |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
@ -1,55 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage; |
|||
|
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.AutoDebitAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.InboundAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.model.bankaccountvalidation.BankInfo; |
|||
import com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage.InboundAddAccountConfirmFragment; |
|||
import com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage.InboundAddAccountPennyTestFragment; |
|||
import com.swifttech.remit.android.base.BaseContractInterface; |
|||
import com.swifttech.remit.android.base.BasePresenterInterface; |
|||
|
|||
import java.util.List; |
|||
|
|||
import io.reactivex.Observable; |
|||
|
|||
public interface InboundAccountAddV2PresenterInterface extends BasePresenterInterface { |
|||
|
|||
void updateAutoDebitAccountData(AutoDebitAccount autoDebitAccount); |
|||
void updateInboundAccount(InboundAccount inboundAccount); |
|||
|
|||
|
|||
void getRelatedData(); |
|||
|
|||
void requestForPennyTest(String resend); |
|||
|
|||
void submitPennyTest(String depositReference); |
|||
|
|||
List<BankInfo> getKoreanBankList(); |
|||
|
|||
void updateBank(BankInfo selectedBank); |
|||
|
|||
void onBankAccNoChanged(String bankAccNo); |
|||
|
|||
Observable<InboundAddAccountConfirmFragment.InboundAddAccountViewDTO> subscribeToInboundAddAccountDataEvent(); |
|||
Observable<InboundAddAccountPennyTestFragment.InboundPennyTestViewDTO> subscribeToPennyTestDataEvent(); |
|||
|
|||
void onDepositReferenceChanged(String depositReference); |
|||
|
|||
void onBankDetailValidated(); |
|||
|
|||
|
|||
interface InboundAccountAddV2ContractInterface extends BaseContractInterface |
|||
{ |
|||
void showInvalidAccNoError(String errorMessage); |
|||
|
|||
void enableForm1Button(boolean action); |
|||
|
|||
void showPennyTestScreen(); |
|||
|
|||
void showInvalidDepositError(String errorMessage); |
|||
|
|||
void enableForm2Button(boolean action); |
|||
|
|||
void onPennyTestSuccess(); |
|||
} |
|||
} |
@ -1,145 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view; |
|||
|
|||
import android.app.Activity; |
|||
import android.content.Context; |
|||
import android.webkit.JavascriptInterface; |
|||
import android.webkit.WebView; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.RemitApplication; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.AutoDebitAddSeriveAuthenticationServiceModel; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.WebRequestModel; |
|||
import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog; |
|||
import com.swifttech.remit.android.utils.https.GenericApiObserverResponse; |
|||
import com.swifttech.remit.android.utils.https.HttpClientV2; |
|||
import com.swifttech.remit.android.features.webbrowser.WebBrowserV2Activity; |
|||
import com.google.gson.stream.MalformedJsonException; |
|||
|
|||
import java.util.Map; |
|||
|
|||
import io.reactivex.android.schedulers.AndroidSchedulers; |
|||
import io.reactivex.disposables.CompositeDisposable; |
|||
import io.reactivex.schedulers.Schedulers; |
|||
|
|||
public class AutoDebitWebBrowserActivityV2 extends WebBrowserV2Activity { |
|||
|
|||
private WebView webView; |
|||
private WebRequestModel webRequestModel; |
|||
private CompositeDisposable compositeDisposable; |
|||
private WebAppInterface webInterface; |
|||
private final static String WEB_INTERFACE_NAME = "Android"; |
|||
|
|||
@Override |
|||
protected void doTask(WebRequestModel webRequestModel, WebView webView) { |
|||
if (webRequestModel != null) { |
|||
this.webView = webView; |
|||
this.webRequestModel = webRequestModel; |
|||
this.compositeDisposable = new CompositeDisposable(); |
|||
this.webInterface = new WebAppInterface(AutoDebitWebBrowserActivityV2.this); |
|||
authenticateService(); |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
private void authenticateService() { |
|||
this.compositeDisposable.add( |
|||
HttpClientV2.getInstance().postDataForAddingAutoDebitAccount(webRequestModel.getUrl(), webRequestModel.getHeaderAsMapData()) |
|||
.doOnSubscribe(subs -> showProgressBar(true, getString(R.string.processing_request_text))) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doFinally(() -> showProgressBar(false, (String) null)) |
|||
.subscribeWith(new AutoDebitAddRequestObserver())); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void onBackPressed() { |
|||
finish(); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
protected void onDestroy() { |
|||
super.onDestroy(); |
|||
try { |
|||
webView.removeJavascriptInterface(WEB_INTERFACE_NAME); |
|||
} catch (Exception e) { |
|||
|
|||
} |
|||
if (compositeDisposable != null && !compositeDisposable.isDisposed()) |
|||
compositeDisposable.dispose(); |
|||
} |
|||
|
|||
class AutoDebitAddRequestObserver extends GenericApiObserverResponse<AutoDebitAddSeriveAuthenticationServiceModel> { |
|||
|
|||
@Override |
|||
protected void onSuccess(AutoDebitAddSeriveAuthenticationServiceModel data) { |
|||
updateTitleInBrowser(webRequestModel.getWebTitle() != null && webRequestModel.getWebTitle().length() > 0 ? webRequestModel.getWebTitle() : ""); |
|||
String url = data.getAuthenticatedUrl(); |
|||
if (url == null || url.length() < 1) |
|||
showPopUpMessage("Invalid url", CustomAlertDialog.AlertType.FAILED, alertType -> finish()); |
|||
else { |
|||
showUrlInWebView(data.getAuthenticatedUrl(), null); |
|||
} |
|||
} |
|||
|
|||
private void showUrlInWebView(String url, Map<String, String> headerValue) { |
|||
|
|||
webView.addJavascriptInterface(webInterface, WEB_INTERFACE_NAME); |
|||
if (headerValue != null) |
|||
webView.loadUrl(url, headerValue); |
|||
else |
|||
webView.loadUrl(url); |
|||
} |
|||
|
|||
@Override |
|||
public void onFailed(String message) { |
|||
showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> finish()); |
|||
} |
|||
|
|||
@Override |
|||
protected void onConnectionNotEstablished(String message) { |
|||
showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, alertType -> finish()); |
|||
} |
|||
|
|||
@Override |
|||
protected void unauthorizedAccess(String message) { |
|||
RemitApplication.getStorage().edit().clear().commit(); |
|||
showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> logout()); |
|||
} |
|||
|
|||
@Override |
|||
public void onError(Throwable e) { |
|||
if (e instanceof MalformedJsonException) { |
|||
showUrlInWebView(webRequestModel.getUrl(), webRequestModel.getHeaderAsMapData()); |
|||
} else |
|||
super.onError(e); |
|||
} |
|||
} |
|||
|
|||
class WebAppInterface { |
|||
|
|||
Context mContext; |
|||
|
|||
/** |
|||
* Instantiate the interface and set the context |
|||
*/ |
|||
WebAppInterface(Context c) { |
|||
mContext = c; |
|||
} |
|||
|
|||
/** |
|||
* Show a toast from the web page |
|||
*/ |
|||
@JavascriptInterface |
|||
public void onAutoDebitAccountResult(String message) { |
|||
showToastMessage(message); |
|||
setResult(Activity.RESULT_OK); |
|||
finish(); |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
} |
@ -1,27 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view.accountlisting.autodebitlisting; |
|||
|
|||
import androidx.annotation.NonNull; |
|||
import androidx.recyclerview.widget.RecyclerView; |
|||
import android.view.View; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
|
|||
public class AccountAddRVViewHolder extends RecyclerView.ViewHolder { |
|||
|
|||
@BindView(R.id.accAddImageView) |
|||
View addAccIcon; |
|||
public AccountAddRVViewHolder(@NonNull View itemView) { |
|||
super(itemView); |
|||
ButterKnife.bind(this,itemView); |
|||
} |
|||
|
|||
public View getAddAccIcon() |
|||
{ |
|||
return addAccIcon; |
|||
} |
|||
|
|||
|
|||
} |
@ -1,9 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage; |
|||
|
|||
import com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage.InboundAccountAddV2PresenterInterface; |
|||
|
|||
public interface InboundAccountAddActionListener { |
|||
|
|||
InboundAccountAddV2PresenterInterface getPresenter(); |
|||
|
|||
} |
@ -1,155 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage; |
|||
|
|||
import android.annotation.SuppressLint; |
|||
import android.content.Context; |
|||
import android.content.Intent; |
|||
import android.content.pm.ActivityInfo; |
|||
import android.os.Build; |
|||
import android.os.Parcelable; |
|||
import androidx.fragment.app.Fragment; |
|||
import androidx.viewpager.widget.ViewPager; |
|||
import android.os.Bundle; |
|||
import android.view.ViewGroup; |
|||
import android.view.Window; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.features.accountmanage.adapter.accountlisting.AccountManageViewPagerAdapter; |
|||
import com.swifttech.remit.android.features.accountmanage.gateway.inboundaccountmanage.InboundAccountAddV2Gateway; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.AutoDebitAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.model.accountlisting.InboundAccount; |
|||
import com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage.InboundAccountAddV2Presenter; |
|||
import com.swifttech.remit.android.features.accountmanage.presenter.inboundaccountmanage.InboundAccountAddV2PresenterInterface; |
|||
import com.swifttech.remit.android.base.BaseActivity; |
|||
import com.swifttech.remit.android.features.homeV2.view.HomeActivityV2; |
|||
|
|||
import java.util.ArrayList; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
|
|||
public class InboundAccountAddActivity extends BaseActivity implements InboundAccountAddV2PresenterInterface.InboundAccountAddV2ContractInterface,InboundAccountAddActionListener { |
|||
|
|||
private static final String ACCOUNT_DATA_BUNDLE_KEY = "ACCOUNT_DATA_BUNDLE_KEY"; |
|||
@BindView(R.id.fragmentContainer) |
|||
ViewPager fragmentContainer; |
|||
|
|||
|
|||
private AccountManageViewPagerAdapter accountManageViewPagerAdapter; |
|||
private ArrayList<Fragment> fragments; |
|||
private InboundAccountAddV2PresenterInterface presenter; |
|||
|
|||
|
|||
@SuppressLint("SourceLockedOrientationActivity") |
|||
@Override |
|||
protected void onCreate(Bundle savedInstanceState) { |
|||
super.onCreate(savedInstanceState); |
|||
setContentView(R.layout.activity_inbound_account_add_activitity); |
|||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O||Build.VERSION.SDK_INT==Build.VERSION_CODES.O_MR1) { |
|||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); |
|||
} else { |
|||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); |
|||
} |
|||
|
|||
Window window = getWindow(); |
|||
if (window != null) { |
|||
window.getAttributes().windowAnimations = R.style.SlideInAnimation; |
|||
window.setBackgroundDrawableResource(R.drawable.ic_rounded_grey_bg_with_inset); |
|||
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); |
|||
// window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); |
|||
} |
|||
|
|||
|
|||
ButterKnife.bind(this); |
|||
init(); |
|||
performDefaultAction(savedInstanceState); |
|||
} |
|||
|
|||
|
|||
public static void launchActivity(Context context, AutoDebitAccount autoDebitAccount) { |
|||
Intent intent = new Intent(context, InboundAccountAddActivity.class); |
|||
intent.putExtra(ACCOUNT_DATA_BUNDLE_KEY, autoDebitAccount); |
|||
context.startActivity(intent); |
|||
} |
|||
|
|||
public static void launchActivity(Context context, InboundAccount inboundAccount) { |
|||
Intent intent = new Intent(context, InboundAccountAddActivity.class); |
|||
intent.putExtra(ACCOUNT_DATA_BUNDLE_KEY, inboundAccount); |
|||
context.startActivity(intent); |
|||
} |
|||
|
|||
private void init() { |
|||
presenter = new InboundAccountAddV2Presenter(this,new InboundAccountAddV2Gateway()); |
|||
setupViewPager(); |
|||
|
|||
|
|||
} |
|||
|
|||
private void performDefaultAction(Bundle savedInstance) { |
|||
Parcelable data = getIntent().getParcelableExtra(ACCOUNT_DATA_BUNDLE_KEY); |
|||
if (data != null) { |
|||
if (data instanceof AutoDebitAccount) |
|||
presenter.updateAutoDebitAccountData((AutoDebitAccount) data); |
|||
else |
|||
presenter.updateInboundAccount((InboundAccount) data); |
|||
} else |
|||
presenter.getRelatedData(); |
|||
} |
|||
|
|||
|
|||
private void setupViewPager() { |
|||
accountManageViewPagerAdapter = new AccountManageViewPagerAdapter(getSupportFragmentManager()); |
|||
|
|||
fragments = new ArrayList<>(); |
|||
fragments.add(new InboundAddAccountConfirmFragment()); |
|||
fragments.add(new InboundAddAccountPennyTestFragment()); |
|||
|
|||
|
|||
accountManageViewPagerAdapter.addFragments(fragments); |
|||
|
|||
fragmentContainer.setAdapter(accountManageViewPagerAdapter); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
@Override |
|||
public void showInvalidAccNoError(String errorMessage) { |
|||
((InboundAddAccountConfirmFragment) fragments.get(0)).showInvalidAccNo(errorMessage); |
|||
} |
|||
|
|||
@Override |
|||
public void enableForm1Button(boolean action) { |
|||
((InboundAddAccountConfirmFragment) fragments.get(0)).enableButton(action); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void showPennyTestScreen() { |
|||
fragmentContainer.setCurrentItem(1,true); |
|||
} |
|||
|
|||
@Override |
|||
public void showInvalidDepositError(String errorMessage) { |
|||
((InboundAddAccountPennyTestFragment) fragments.get(1)).showInvalidDepositError(errorMessage); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void enableForm2Button(boolean action) { |
|||
((InboundAddAccountPennyTestFragment) fragments.get(1)).enableButton(action); |
|||
} |
|||
|
|||
@Override |
|||
public void onPennyTestSuccess() { |
|||
Intent a = new Intent(this, HomeActivityV2.class); |
|||
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); |
|||
a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); |
|||
startActivity(a); |
|||
finish(); |
|||
} |
|||
|
|||
@Override |
|||
public InboundAccountAddV2PresenterInterface getPresenter() { |
|||
return this.presenter; |
|||
} |
|||
} |
@ -1,191 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage; |
|||
|
|||
import android.os.Bundle; |
|||
import androidx.annotation.Nullable; |
|||
import android.text.Editable; |
|||
import android.text.InputFilter; |
|||
import android.view.LayoutInflater; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.widget.Button; |
|||
import android.widget.ImageView; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.features.accountmanage.model.bankaccountvalidation.BankInfo; |
|||
import com.swifttech.remit.android.base.BaseFragment; |
|||
import com.swifttech.remit.android.common.customwidgets.GMEFormInputField; |
|||
import com.swifttech.remit.android.common.customwidgets.TextWatcherAdapter; |
|||
import com.swifttech.remit.android.common.customwidgets.banklistingdialog.BankIconMapper; |
|||
import com.swifttech.remit.android.common.customwidgets.common.GenericImageWithTextListingDialog; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
import butterknife.OnClick; |
|||
|
|||
import io.reactivex.observers.DisposableObserver; |
|||
|
|||
public class InboundAddAccountConfirmFragment extends BaseFragment { |
|||
|
|||
@BindView(R.id.bankAccountNumberFormInputField) |
|||
GMEFormInputField bankAccountNumberFormInputField; |
|||
|
|||
|
|||
@BindView(R.id.bankSelectionFormInputField) |
|||
GMEFormInputField bankSelectionFormInputField; |
|||
|
|||
@BindView(R.id.bank_ico_imageview) |
|||
ImageView bankIconImageView; |
|||
|
|||
@BindView(R.id.startPennyTestButton) |
|||
Button startPennyTestButton; |
|||
private BankSelectClickListener bankSelectionClickListener; |
|||
private GenericImageWithTextListingDialog<BankInfo> bankListingDialog; |
|||
private BankAccountNumberTextWatcher bankAccountNoTextWatcher; |
|||
|
|||
@Override |
|||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { |
|||
return inflater.inflate(R.layout.fragment_inbound_account_add, container, false); |
|||
} |
|||
|
|||
@Override |
|||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
|||
super.onViewCreated(view, savedInstanceState); |
|||
ButterKnife.bind(this, view); |
|||
init(); |
|||
performDefaultAction(savedInstanceState); |
|||
} |
|||
|
|||
private void init() { |
|||
bankSelectionClickListener = new BankSelectClickListener(); |
|||
bankAccountNoTextWatcher=new BankAccountNumberTextWatcher(); |
|||
bankSelectionFormInputField.setInputFilters (new InputFilter[]{}); |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().subscribeToInboundAddAccountDataEvent().subscribe(new InboundAddAccoountDataObserver()); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void onStart() { |
|||
super.onStart(); |
|||
registerTextWatchers(true); |
|||
bankSelectionFormInputField.getEditTextView().setOnClickListener(bankSelectionClickListener); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void onStop() { |
|||
super.onStop(); |
|||
registerTextWatchers(false); |
|||
bankSelectionFormInputField.getEditTextView().setOnClickListener(null); |
|||
} |
|||
|
|||
private void registerTextWatchers(boolean action) { |
|||
if (action) { |
|||
bankAccountNumberFormInputField.getEditTextView().addTextChangedListener(bankAccountNoTextWatcher); |
|||
} else { |
|||
bankAccountNumberFormInputField.getEditTextView().removeTextChangedListener(bankAccountNoTextWatcher); |
|||
} |
|||
} |
|||
|
|||
@OnClick(R.id.startPennyTestButton) |
|||
public void startPennyTest() { |
|||
if (startPennyTestButton.isEnabled()) { |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().onBankDetailValidated(); |
|||
} |
|||
} |
|||
|
|||
|
|||
private void performDefaultAction(Bundle savedInstance) { |
|||
|
|||
} |
|||
|
|||
private void updateData(InboundAddAccountViewDTO inboundAddAccountViewDTO) { |
|||
|
|||
registerTextWatchers(false); |
|||
bankAccountNumberFormInputField.getEditTextView().setText(inboundAddAccountViewDTO.accountNo); |
|||
bankSelectionFormInputField.getEditTextView().setText(inboundAddAccountViewDTO.bankName); |
|||
bankIconImageView.setImageResource(BankIconMapper.getBankIconFromBankCode(inboundAddAccountViewDTO.bankCode)); |
|||
bankSelectionFormInputField.setEnabled(inboundAddAccountViewDTO.enableFields); |
|||
bankAccountNumberFormInputField.setEnabled(inboundAddAccountViewDTO.enableFields); |
|||
|
|||
registerTextWatchers(true); |
|||
|
|||
startPennyTestButton.setEnabled(true); |
|||
|
|||
|
|||
} |
|||
|
|||
public void showInvalidAccNo(String errorMessage) { |
|||
bankAccountNumberFormInputField.setErrorEnabled(errorMessage!=null); |
|||
bankAccountNumberFormInputField.setError(errorMessage); |
|||
} |
|||
|
|||
public void enableButton(boolean action) { |
|||
startPennyTestButton.setEnabled(action); |
|||
} |
|||
|
|||
public class BankSelectClickListener implements View.OnClickListener { |
|||
|
|||
@Override |
|||
public void onClick(View v) { |
|||
|
|||
if (bankListingDialog == null) |
|||
bankListingDialog = new GenericImageWithTextListingDialog<>(); |
|||
bankListingDialog.setData(((InboundAccountAddActionListener) getActivity()).getPresenter().getKoreanBankList()); |
|||
bankListingDialog.setListener(selectedBank -> |
|||
{ |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().updateBank(selectedBank); |
|||
bankSelectionFormInputField.getEditTextView().setText(selectedBank.toString()); |
|||
bankIconImageView.setImageResource(BankIconMapper.getBankIconFromBankCode(selectedBank.getBankCode())); |
|||
|
|||
bankListingDialog.dismiss(); |
|||
}); |
|||
bankListingDialog.setHintAndTitle(getString(R.string.search_bank_text), getString(R.string.bank_placeholder_text), getString(R.string.no_bank_found_text)); |
|||
bankListingDialog.disableSearch(false); |
|||
if (!bankListingDialog.isAdded()) |
|||
bankListingDialog.show(getFragmentManager(), "BankSelectionDialog"); |
|||
} |
|||
} |
|||
|
|||
public class BankAccountNumberTextWatcher extends TextWatcherAdapter |
|||
{ |
|||
@Override |
|||
public void afterTextChanged(Editable s) { |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().onBankAccNoChanged(s.toString()); |
|||
} |
|||
} |
|||
|
|||
public static class InboundAddAccountViewDTO { |
|||
String bankName; |
|||
String bankCode; |
|||
String accountNo; |
|||
boolean enableFields; |
|||
|
|||
public InboundAddAccountViewDTO(String bankName, String bankCode, String accountNo, boolean enableFields) { |
|||
this.bankName = bankName; |
|||
this.bankCode = bankCode; |
|||
this.accountNo = accountNo; |
|||
this.enableFields = enableFields; |
|||
} |
|||
} |
|||
|
|||
|
|||
public class InboundAddAccoountDataObserver extends DisposableObserver<InboundAddAccountViewDTO> |
|||
{ |
|||
|
|||
|
|||
@Override |
|||
public void onNext(InboundAddAccountViewDTO inboundAddAccountViewDTO) { |
|||
updateData(inboundAddAccountViewDTO); |
|||
} |
|||
|
|||
@Override |
|||
public void onError(Throwable e) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onComplete() { |
|||
|
|||
} |
|||
} |
|||
} |
@ -1,171 +0,0 @@ |
|||
package com.swifttech.remit.android.features.accountmanage.view.inboundaccountmanage; |
|||
|
|||
import android.os.Bundle; |
|||
import androidx.annotation.Nullable; |
|||
|
|||
import com.swifttech.remit.android.utils.other.Utility; |
|||
import com.google.android.material.textfield.TextInputLayout; |
|||
import android.text.Editable; |
|||
import android.view.LayoutInflater; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.widget.Button; |
|||
import android.widget.EditText; |
|||
import android.widget.ImageView; |
|||
import android.widget.TextView; |
|||
|
|||
import com.swifttech.remit.android.R; |
|||
import com.swifttech.remit.android.base.BaseFragment; |
|||
import com.swifttech.remit.android.common.customwidgets.TextWatcherAdapter; |
|||
import com.swifttech.remit.android.common.customwidgets.banklistingdialog.BankIconMapper; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
import butterknife.OnClick; |
|||
import io.reactivex.observers.DisposableObserver; |
|||
|
|||
public class InboundAddAccountPennyTestFragment extends BaseFragment { |
|||
|
|||
|
|||
@BindView(R.id.depositReferenceInputWrapper) |
|||
TextInputLayout depositReferenceInputWrapper; |
|||
|
|||
@BindView(R.id.ed_creditNumber) |
|||
EditText ed_creditNumber; |
|||
|
|||
@BindView(R.id.txt_pennytest_msg) |
|||
TextView txt_pennytest_msg; |
|||
|
|||
@BindView(R.id.bankNameTxtView) |
|||
TextView bankNameTxtView; |
|||
|
|||
@BindView(R.id.bankAccNoTxtView) |
|||
TextView bankAccNoTxtView; |
|||
|
|||
@BindView(R.id.bankIcon) |
|||
ImageView bankIcon; |
|||
|
|||
@BindView(R.id.agreeButton) |
|||
Button pennyTestCompleteButton; |
|||
|
|||
private DepositReferenceTextWatcher depositReferenceTextWatcher; |
|||
|
|||
|
|||
@Override |
|||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { |
|||
return inflater.inflate(R.layout.fragment_inbound_account_penny_test, container, false); |
|||
} |
|||
|
|||
@Override |
|||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
|||
super.onViewCreated(view, savedInstanceState); |
|||
ButterKnife.bind(this, view); |
|||
init(); |
|||
performDefaultAction(savedInstanceState); |
|||
} |
|||
|
|||
private void init() { |
|||
depositReferenceTextWatcher = new DepositReferenceTextWatcher(); |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().subscribeToPennyTestDataEvent().subscribe(new InboundPennyTestDataObserver()); |
|||
|
|||
} |
|||
|
|||
|
|||
private void performDefaultAction(Bundle savedInstance) { |
|||
|
|||
} |
|||
|
|||
public void updateData(InboundPennyTestViewDTO inboundPennyTestViewDTO) { |
|||
txt_pennytest_msg.setText(inboundPennyTestViewDTO.pennyTestMessage); |
|||
bankIcon.setImageResource(BankIconMapper.getBankIconFromBankCode(inboundPennyTestViewDTO.bankCode)); |
|||
bankNameTxtView.setText(inboundPennyTestViewDTO.bankName); |
|||
bankAccNoTxtView.setText(inboundPennyTestViewDTO.accountNo); |
|||
} |
|||
|
|||
@Override |
|||
public void onStart() { |
|||
super.onStart(); |
|||
ed_creditNumber.addTextChangedListener(depositReferenceTextWatcher); |
|||
} |
|||
|
|||
@Override |
|||
public void onStop() { |
|||
super.onStop(); |
|||
ed_creditNumber.removeTextChangedListener(depositReferenceTextWatcher); |
|||
} |
|||
|
|||
@OnClick(R.id.image_example) |
|||
public void showSample() |
|||
{ |
|||
Utility.showImageDialog(getActivity(), null, R.drawable.penny_test_sample); |
|||
|
|||
} |
|||
@OnClick(R.id.resend_request) |
|||
public void resendRequest() |
|||
{ |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().requestForPennyTest("Y"); |
|||
} |
|||
|
|||
|
|||
public void showInvalidDepositError(String errorMessage) { |
|||
depositReferenceInputWrapper.setErrorEnabled(errorMessage!=null); |
|||
depositReferenceInputWrapper.setError(errorMessage); |
|||
} |
|||
|
|||
public void enableButton(boolean action) { |
|||
pennyTestCompleteButton.setEnabled(action); |
|||
} |
|||
|
|||
@OnClick(R.id.agreeButton) |
|||
public void onPennyTestCompleteButtonPressed() |
|||
{ |
|||
if(pennyTestCompleteButton.isEnabled()) |
|||
{ |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().submitPennyTest(ed_creditNumber.getText().toString()); |
|||
} |
|||
} |
|||
|
|||
|
|||
public class DepositReferenceTextWatcher extends TextWatcherAdapter |
|||
{ |
|||
@Override |
|||
public void afterTextChanged(Editable s) { |
|||
((InboundAccountAddActionListener) getActivity()).getPresenter().onDepositReferenceChanged(s.toString()); |
|||
} |
|||
} |
|||
|
|||
public static class InboundPennyTestViewDTO |
|||
{ |
|||
String bankName; |
|||
String bankCode; |
|||
String accountNo; |
|||
String pennyTestMessage; |
|||
|
|||
public InboundPennyTestViewDTO(String bankName, String bankCode, String accountNo,String pennyTestMessage) { |
|||
this.bankName = bankName; |
|||
this.bankCode = bankCode; |
|||
this.accountNo = accountNo; |
|||
this.pennyTestMessage=pennyTestMessage; |
|||
} |
|||
} |
|||
|
|||
public class InboundPennyTestDataObserver extends DisposableObserver<InboundPennyTestViewDTO> |
|||
{ |
|||
|
|||
|
|||
@Override |
|||
public void onNext(InboundPennyTestViewDTO inboundAddAccountViewDTO) { |
|||
updateData(inboundAddAccountViewDTO); |
|||
} |
|||
|
|||
@Override |
|||
public void onError(Throwable e) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onComplete() { |
|||
|
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue