Browse Source
if OTP not verified beneficiary selected proceed to terms and conditions before OTP
new_design
if OTP not verified beneficiary selected proceed to terms and conditions before OTP
new_design
Santosh Bhandary
3 years ago
18 changed files with 612 additions and 78 deletions
-
18app/src/main/AndroidManifest.xml
-
40app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/gateway/recepientTermsConditions/RecipientTermsGateway.java
-
17app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/gateway/recepientTermsConditions/RecipientTermsGatewayInterface.java
-
13app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recepientTermsConditions/RecipientPresenterTermsInterface.java
-
162app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recepientTermsConditions/RecipientTermsViewModel.java
-
1app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java
-
32app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/RecipientTermsViewModelFactory.java
-
107app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recepientTermsConditions/BeneficiaryAddEditV3TermsActivity.java
-
9app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recepientTermsConditions/RecipientTermsContractInterface.java
-
1app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3Fragment.java
-
9app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientaddeditV3/BeneficiaryAddEditV3TermsFragment.java
-
17app/src/main/java/com/swifttech/remit/jmecustomer/features/recipientmanagement/view/recipientlistingV3/RecipientListingV3Activity.java
-
29app/src/main/java/com/swifttech/remit/jmecustomer/features/sendmoney/view/SendMoneyV2Activity.java
-
5app/src/main/java/com/swifttech/remit/jmecustomer/features/sendmoney/view/verification/TermsAndConditionV2BrowserActivity.java
-
100app/src/main/java/com/swifttech/remit/jmecustomer/features/webbrowser/WebBrowserV2Activity.java
-
107app/src/main/res/layout/activity_web_browser_v2.xml
-
9app/src/main/res/layout/beneficiary_add_edit_v3_terms_activity.xml
@ -0,0 +1,40 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recepientTermsConditions; |
|||
|
|||
import com.google.gson.JsonObject; |
|||
import com.swifttech.remit.jmecustomer.base.PrivilegedGateway; |
|||
import com.swifttech.remit.jmecustomer.utils.Constants; |
|||
import com.swifttech.remit.jmecustomer.utils.https.HttpClientV2; |
|||
|
|||
import io.reactivex.Observable; |
|||
import okhttp3.ResponseBody; |
|||
|
|||
public class RecipientTermsGateway extends PrivilegedGateway implements RecipientTermsGatewayInterface { |
|||
@Override |
|||
public Observable<ResponseBody> verifyEmailCode(String auth, |
|||
String userId, |
|||
String OTP, |
|||
String requestFor, |
|||
String receiverId) { |
|||
JsonObject jsonObject = new JsonObject(); |
|||
jsonObject.addProperty(Constants.USER_ID_KEY, userId); |
|||
jsonObject.addProperty(Constants.OTP_KEY, OTP); |
|||
jsonObject.addProperty(Constants.REQUEST_FOR_KEY, requestFor); |
|||
jsonObject.addProperty(Constants.RECEIVER_ID_KEY, receiverId); |
|||
return HttpClientV2.getInstance().verifyEmailCode(auth,jsonObject); |
|||
} |
|||
|
|||
@Override |
|||
public Observable<ResponseBody> requestForOtp(String auth, |
|||
String userId, |
|||
String OTP, |
|||
String requestFor, |
|||
String receiverId |
|||
) { |
|||
JsonObject jsonObject = new JsonObject(); |
|||
jsonObject.addProperty(Constants.USER_ID_KEY, userId); |
|||
jsonObject.addProperty(Constants.OTP_KEY, OTP); |
|||
jsonObject.addProperty(Constants.REQUEST_FOR_KEY, requestFor); |
|||
jsonObject.addProperty(Constants.RECEIVER_ID_KEY, receiverId); |
|||
return HttpClientV2.getInstance().requestForOtp(auth, jsonObject); |
|||
} |
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recepientTermsConditions; |
|||
|
|||
import com.swifttech.remit.jmecustomer.base.PrivilegedGatewayInterface; |
|||
|
|||
import io.reactivex.Observable; |
|||
import okhttp3.ResponseBody; |
|||
|
|||
public interface RecipientTermsGatewayInterface extends PrivilegedGatewayInterface { |
|||
Observable<ResponseBody> verifyEmailCode(String auth, |
|||
String userId, |
|||
String OTP, |
|||
String requestFor, |
|||
String receiverId); |
|||
|
|||
Observable<ResponseBody> requestForOtp(String auth, String userId, String OTP, String requestFor, String receiverId); |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recepientTermsConditions; |
|||
|
|||
import com.swifttech.remit.jmecustomer.base.BasePresenterInterface; |
|||
|
|||
public interface RecipientPresenterTermsInterface extends BasePresenterInterface { |
|||
|
|||
void verifyEmailCode(String emailCode); |
|||
|
|||
void requestForOtp(); |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,162 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recepientTermsConditions; |
|||
|
|||
import com.swifttech.remit.jmecustomer.R; |
|||
import com.swifttech.remit.jmecustomer.base.BaseViewModel; |
|||
import com.swifttech.remit.jmecustomer.common.customwidgets.CustomAlertDialog; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recepientTermsConditions.RecipientTermsGatewayInterface; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recepientTermsConditions.RecipientTermsContractInterface; |
|||
import com.swifttech.remit.jmecustomer.utils.Constants; |
|||
import com.swifttech.remit.jmecustomer.utils.https.GenericApiObserverResponseV2; |
|||
import com.swifttech.remit.jmecustomer.utils.https.GenericResponseDataModel; |
|||
import com.swifttech.remit.jmecustomer.utils.https.MessageResponseDataModel; |
|||
|
|||
import io.reactivex.android.schedulers.AndroidSchedulers; |
|||
import io.reactivex.disposables.CompositeDisposable; |
|||
import io.reactivex.schedulers.Schedulers; |
|||
|
|||
import static com.swifttech.remit.jmecustomer.utils.Constants.REQUEST_FOR_REC_VALUE; |
|||
|
|||
public class RecipientTermsViewModel extends BaseViewModel implements RecipientPresenterTermsInterface { |
|||
private final CompositeDisposable compositeDisposable; |
|||
RecipientTermsGatewayInterface gateway; |
|||
ReceiverInfoV3Model receiverInfoV3Model; |
|||
RecipientTermsContractInterface view; |
|||
|
|||
public RecipientTermsViewModel( |
|||
RecipientTermsGatewayInterface gateway, |
|||
RecipientTermsContractInterface view, |
|||
ReceiverInfoV3Model receiverInfoV3Model |
|||
) { |
|||
this.compositeDisposable = new CompositeDisposable(); |
|||
this.gateway = gateway; |
|||
this.receiverInfoV3Model = receiverInfoV3Model; |
|||
this.view = view; |
|||
} |
|||
|
|||
@Override |
|||
public void verifyEmailCode(String emailCode) { |
|||
compositeDisposable.add( |
|||
this.gateway.verifyEmailCode( |
|||
gateway.getAuth(), |
|||
gateway.getUserID(), |
|||
emailCode, |
|||
Constants.REQUEST_FOR_REC_VALUE, |
|||
receiverInfoV3Model.getReceiverId()) |
|||
.doOnSubscribe(subs -> view.showProgressBar(true, "")) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doFinally(() -> view.showProgressBar(false, "")) |
|||
.subscribeWith(new UploadEmailCodeObserver(view::onEmailVerifySuccess))); |
|||
} |
|||
|
|||
@Override |
|||
public void requestForOtp() { |
|||
compositeDisposable.add( |
|||
gateway.requestForOtp( |
|||
gateway.getAuth(), |
|||
gateway.getUserID(), |
|||
"", |
|||
REQUEST_FOR_REC_VALUE, |
|||
receiverInfoV3Model.getReceiverId()) |
|||
.subscribeOn(Schedulers.io()) |
|||
.observeOn(AndroidSchedulers.mainThread()) |
|||
.doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_for_otp_text))) |
|||
.doFinally(() -> view.showProgressBar(false, "")) |
|||
.subscribeWith(new RequestEmailCodeObserver(view::showEmailCodePromptDialog)) |
|||
); |
|||
} |
|||
|
|||
@Override |
|||
public void onViewReady() { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onViewNotReady() { |
|||
|
|||
} |
|||
|
|||
public class UploadEmailCodeObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> { |
|||
|
|||
Runnable task; |
|||
|
|||
public UploadEmailCodeObserver(Runnable task) { |
|||
this.task = task; |
|||
} |
|||
|
|||
@Override |
|||
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { |
|||
|
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|||
if (task != null) |
|||
task.run(); |
|||
|
|||
|
|||
} else { |
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.OPT_EXPIRED_CODE_V2)) { |
|||
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> requestForOtp()); |
|||
} 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) { |
|||
gateway.clearAllUserData(); |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); |
|||
|
|||
} |
|||
} |
|||
|
|||
private class RequestEmailCodeObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> { |
|||
|
|||
Runnable task; |
|||
|
|||
public RequestEmailCodeObserver(Runnable task) { |
|||
this.task = task; |
|||
} |
|||
|
|||
@Override |
|||
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { |
|||
|
|||
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { |
|||
if (task != null) |
|||
task.run(); |
|||
|
|||
|
|||
} else { |
|||
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onFailed(String message) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); |
|||
} |
|||
|
|||
@Override |
|||
protected void onConnectionNotEstablished(String message) { |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); |
|||
} |
|||
|
|||
@Override |
|||
protected void unauthorizedAccess(String message) { |
|||
gateway.clearAllUserData(); |
|||
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout()); |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,32 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.view; |
|||
|
|||
import androidx.annotation.NonNull; |
|||
import androidx.lifecycle.ViewModel; |
|||
import androidx.lifecycle.ViewModelProvider; |
|||
|
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.gateway.recepientTermsConditions.RecipientTermsGateway; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recepientTermsConditions.RecipientTermsViewModel; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recepientTermsConditions.RecipientTermsContractInterface; |
|||
|
|||
public class RecipientTermsViewModelFactory implements ViewModelProvider.Factory { |
|||
private RecipientTermsContractInterface view; |
|||
private ReceiverInfoV3Model receiverInfoV3Model; |
|||
|
|||
|
|||
public RecipientTermsViewModelFactory( |
|||
RecipientTermsContractInterface view, |
|||
ReceiverInfoV3Model receiverInfoV3Model |
|||
) { |
|||
this.view = view; |
|||
this.receiverInfoV3Model = receiverInfoV3Model; |
|||
|
|||
} |
|||
|
|||
@SuppressWarnings("unchecked") |
|||
@NonNull |
|||
@Override |
|||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) { |
|||
return (T) new RecipientTermsViewModel(new RecipientTermsGateway(), view, receiverInfoV3Model); |
|||
} |
|||
} |
@ -0,0 +1,107 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recepientTermsConditions; |
|||
|
|||
import android.content.Intent; |
|||
import android.os.Bundle; |
|||
import android.util.Log; |
|||
import android.webkit.WebView; |
|||
|
|||
import androidx.lifecycle.ViewModelProvider; |
|||
|
|||
import com.swifttech.remit.jmecustomer.R; |
|||
import com.swifttech.remit.jmecustomer.common.customwidgets.common.GenericEditTextPromptDialog; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.presenter.recepientTermsConditions.RecipientTermsViewModel; |
|||
import com.swifttech.remit.jmecustomer.features.recipientmanagement.view.RecipientTermsViewModelFactory; |
|||
import com.swifttech.remit.jmecustomer.features.sendmoney.model.SendMoneyRequiredDataV3; |
|||
import com.swifttech.remit.jmecustomer.features.sendmoney.view.SendMoneyRequestSummaryActivity; |
|||
import com.swifttech.remit.jmecustomer.features.sendmoney.view.SendMoneyV2Activity; |
|||
import com.swifttech.remit.jmecustomer.features.webbrowser.WebBrowserV2Activity; |
|||
import com.swifttech.remit.jmecustomer.features.webbrowser.model.WebRequestModel; |
|||
|
|||
import static com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recipientaddeditV3.RecipientAddEditV3Activity.RECIPIENT_INFO_BUNDLE_KEY_v3; |
|||
import static com.swifttech.remit.jmecustomer.utils.Constants.JME_BENEFICIARY_TERMS; |
|||
|
|||
public class BeneficiaryAddEditV3TermsActivity extends WebBrowserV2Activity implements GenericEditTextPromptDialog.GenericEditTextPromptListener, RecipientTermsContractInterface { |
|||
public static final int RECIPIENT_ACTION_TERMS_REQUEST_CODE_v3 = 21346; |
|||
public static String RECIPIENT_TERMS_BUNDLE_KEY_v3 = "recipientInfoKeyV3"; |
|||
private static String TAG = BeneficiaryAddEditV3TermsActivity.class.getSimpleName(); |
|||
private String currentLoadedUrl = ""; |
|||
private ReceiverInfoV3Model selectedBeneficiary; |
|||
private RecipientTermsViewModel viewModel; |
|||
|
|||
|
|||
|
|||
@Override |
|||
protected void doTask(WebRequestModel webRequestModel, WebView webView) { |
|||
if (webRequestModel != null && !currentLoadedUrl.equalsIgnoreCase(webRequestModel.getUrl())) { |
|||
this.currentLoadedUrl = webRequestModel.getUrl(); |
|||
updateTitleInBrowser(webRequestModel.getWebTitle() != null && webRequestModel.getWebTitle().length() > 0 ? webRequestModel.getWebTitle() : ""); |
|||
webView.loadUrl(webRequestModel.getUrl()); |
|||
Log.d(TAG, currentLoadedUrl); |
|||
triggerWebViewEvent(webView); |
|||
} |
|||
} |
|||
|
|||
private void triggerWebViewEvent(WebView webView) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
protected void proceedButtonClicked() { |
|||
viewModel.requestForOtp(); |
|||
} |
|||
|
|||
@Override |
|||
protected void onStart() { |
|||
super.onStart(); |
|||
ivBack.setOnClickListener(this); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
protected void onStop() { |
|||
super.onStop(); |
|||
ivBack.setOnClickListener(null); |
|||
} |
|||
|
|||
@Override |
|||
protected void onCreate(Bundle savedInstanceState) { |
|||
super.onCreate(savedInstanceState); |
|||
selectedBeneficiary = getIntent().getParcelableExtra(RECIPIENT_TERMS_BUNDLE_KEY_v3); |
|||
RecipientTermsViewModelFactory recipientTermsViewModelFactory = new RecipientTermsViewModelFactory((RecipientTermsContractInterface) this, selectedBeneficiary); |
|||
viewModel = new ViewModelProvider(this, recipientTermsViewModelFactory).get(RecipientTermsViewModel.class); |
|||
showAcceptOption(true); |
|||
WebRequestModel webRequestModel = new WebRequestModel(getResources().getString(R.string.terms_and_condition_title_text), JME_BENEFICIARY_TERMS, null); |
|||
setWebRequestData(webRequestModel); |
|||
loadWebView(); |
|||
} |
|||
|
|||
@Override |
|||
public void onEmailCodeNegativeButtonPressed() { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onEmailCodePositiveBtnPressed(String emailCode) { |
|||
viewModel.verifyEmailCode(emailCode); |
|||
} |
|||
|
|||
@Override |
|||
public void showEmailCodePromptDialog() { |
|||
GenericEditTextPromptDialog genericPromptDialog = new GenericEditTextPromptDialog(); |
|||
genericPromptDialog.setTitleMessage(getString(R.string.enterCodeFromEmail_text)); |
|||
genericPromptDialog.setCancellable(false); |
|||
genericPromptDialog.setListener(this); |
|||
if (!genericPromptDialog.isAdded()) |
|||
genericPromptDialog.show(getSupportFragmentManager(), "PROMPTEDITTEXT"); |
|||
} |
|||
|
|||
@Override |
|||
public void onEmailVerifySuccess() { |
|||
Intent intent = new Intent(this, SendMoneyV2Activity.class); |
|||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); |
|||
intent.putExtra(RECIPIENT_INFO_BUNDLE_KEY_v3, new SendMoneyRequiredDataV3(selectedBeneficiary)); |
|||
startActivity(intent); |
|||
finish(); |
|||
} |
|||
} |
@ -0,0 +1,9 @@ |
|||
package com.swifttech.remit.jmecustomer.features.recipientmanagement.view.recepientTermsConditions; |
|||
|
|||
import com.swifttech.remit.jmecustomer.base.BaseContractInterface; |
|||
|
|||
public interface RecipientTermsContractInterface extends BaseContractInterface { |
|||
void showEmailCodePromptDialog(); |
|||
|
|||
void onEmailVerifySuccess(); |
|||
} |
@ -1,75 +1,120 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
android:background="@color/background_gray" |
|||
android:orientation="vertical"> |
|||
|
|||
|
|||
|
|||
<LinearLayout |
|||
android:id="@+id/include" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="?actionBarSize" |
|||
android:background="@color/white" |
|||
android:orientation="horizontal" |
|||
app:layout_constraintEnd_toEndOf="parent" |
|||
app:layout_constraintStart_toStartOf="parent" |
|||
app:layout_constraintTop_toTopOf="parent" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="?actionBarSize" |
|||
android:orientation="horizontal"> |
|||
app:layout_constraintTop_toTopOf="parent"> |
|||
|
|||
<ImageView |
|||
android:id="@+id/iv_back" |
|||
android:layout_width="wrap_content" |
|||
android:layout_height="match_parent" |
|||
android:padding="10dp" |
|||
android:layout_marginEnd="8dp" |
|||
android:padding="10dp" |
|||
app:srcCompat="@drawable/icv_back" /> |
|||
|
|||
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeTextView |
|||
android:id="@+id/toolbar_title" |
|||
android:layout_width="0dp" |
|||
android:layout_weight="1" |
|||
android:layout_marginEnd="5dp" |
|||
android:layout_height="match_parent" |
|||
android:textColor="@color/black" |
|||
android:textSize="17sp" |
|||
android:layout_marginEnd="5dp" |
|||
android:layout_weight="1" |
|||
android:gravity="center_vertical" |
|||
android:maxLines="1" |
|||
android:gravity="center_vertical" /> |
|||
android:textColor="@color/black" |
|||
android:textSize="17sp" /> |
|||
|
|||
<ProgressBar |
|||
android:layout_gravity="center" |
|||
android:id="@+id/progressBar" |
|||
android:visibility="invisible" |
|||
android:layout_width="30dp" |
|||
android:layout_height="30dp" |
|||
android:layout_gravity="center" |
|||
android:layout_marginStart="8dp" |
|||
android:layout_marginTop="8dp" |
|||
android:layout_marginEnd="15dp" |
|||
android:layout_marginBottom="8dp" |
|||
/> |
|||
android:visibility="invisible" /> |
|||
</LinearLayout> |
|||
|
|||
<WebView |
|||
android:id="@+id/webView" |
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="0dp" |
|||
android:layout_weight="1" |
|||
android:layout_margin="0dp" |
|||
android:background="@color/m_layout_bg_color" |
|||
android:orientation="vertical" |
|||
android:padding="0dp" |
|||
app:layout_constraintBottom_toBottomOf="parent" |
|||
app:layout_constraintEnd_toEndOf="parent" |
|||
app:layout_constraintStart_toStartOf="parent" |
|||
app:layout_constraintTop_toBottomOf="@+id/include" /> |
|||
app:layout_constraintTop_toBottomOf="@+id/include"> |
|||
|
|||
<!--<ProgressBar--> |
|||
<!--jmecustomer:id="@+id/progressBar"--> |
|||
<!--jmecustomer:layout_width="wrap_content"--> |
|||
<!--jmecustomer:layout_height="wrap_content"--> |
|||
<!--jmecustomer:layout_marginStart="8dp"--> |
|||
<!--jmecustomer:layout_marginTop="8dp"--> |
|||
<!--jmecustomer:layout_marginEnd="8dp"--> |
|||
<!--jmecustomer:layout_marginBottom="8dp"--> |
|||
<!--app:layout_constraintBottom_toBottomOf="parent"--> |
|||
<!--app:layout_constraintEnd_toEndOf="@+id/include"--> |
|||
<!--app:layout_constraintStart_toStartOf="parent"--> |
|||
<!--app:layout_constraintTop_toTopOf="@+id/webView" />--> |
|||
|
|||
<RelativeLayout |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent"> |
|||
|
|||
<androidx.core.widget.NestedScrollView |
|||
android:id="@+id/nestedScrollView" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" |
|||
android:layout_above="@+id/llBottom" |
|||
android:fillViewport="true" |
|||
android:scrollbars="none"> |
|||
|
|||
<LinearLayout |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" |
|||
android:orientation="vertical"> |
|||
|
|||
<WebView |
|||
android:id="@+id/webView" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:nestedScrollingEnabled="false" /> |
|||
</LinearLayout> |
|||
|
|||
</androidx.core.widget.NestedScrollView> |
|||
|
|||
<LinearLayout |
|||
android:id="@+id/llBottom" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:layout_alignParentBottom="true" |
|||
android:layout_marginTop="@dimen/commonMargin" |
|||
android:orientation="vertical" |
|||
android:visibility="gone"> |
|||
|
|||
<androidx.appcompat.widget.AppCompatCheckBox |
|||
android:id="@+id/checkBoxAgreeConsent" |
|||
android:layout_width="wrap_content" |
|||
android:layout_height="wrap_content" |
|||
android:layout_above="@+id/btnSendMoney" |
|||
android:layout_marginLeft="@dimen/commonMargin" |
|||
android:layout_marginRight="@dimen/commonMargin" |
|||
android:fontFamily="@font/lato_regular" |
|||
android:text="@string/i_have_read_to_text_consent" /> |
|||
|
|||
<com.swifttech.remit.jmecustomer.common.customwidgets.GmeButton |
|||
android:id="@+id/btnProceed" |
|||
style="@style/MButton" |
|||
android:layout_alignParentBottom="true" |
|||
android:layout_gravity="center" |
|||
android:layout_margin="@dimen/commonMargin" |
|||
android:layout_marginTop="@dimen/_15sdp" |
|||
android:text="@string/proceed_text" /> |
|||
</LinearLayout> |
|||
</RelativeLayout> |
|||
</LinearLayout> |
|||
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
xmlns:tools="http://schemas.android.com/tools" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" |
|||
tools:context=".features.recipientmanagement.view.recepientTermsConditions.BeneficiaryAddEditV3TermsActivity"> |
|||
|
|||
</androidx.constraintlayout.widget.ConstraintLayout> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue