Browse Source

OTP added to send money for auto debit

master
preyearegmi 6 years ago
parent
commit
69c047da25
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. BIN
      .idea/caches/gradle_models.ser
  3. 9
      .idea/gradle.xml
  4. 2
      app/src/main/AndroidManifest.xml
  5. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java
  6. 22
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/gateway/TransactionPasswordPromptV2Gateway.java
  7. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2InteractorInterface.java
  8. 95
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2Presenter.java
  9. 13
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2PresenterInterface.java
  10. 92
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/view/TransactionPasswordPromptActivity.java
  11. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/view/TransactionPasswordPromptDialog.java
  12. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  13. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
  14. 10
      app/src/main/res/layout/activity_transaction_password_prompt.xml

BIN
.idea/caches/build_file_checksums.ser

BIN
.idea/caches/gradle_models.ser

9
.idea/gradle.xml

@ -8,6 +8,15 @@
</compositeConfiguration> </compositeConfiguration>
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/SpinnerDatePickerLib-release" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/httpclient-release" />
<option value="$PROJECT_DIR$/securitykeypad" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" /> <option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>

2
app/src/main/AndroidManifest.xml

@ -340,7 +340,7 @@
android:theme="@style/AppTheme.NoActionBar" android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" /> android:windowSoftInputMode="stateAlwaysHidden" />
<activity <activity
android:name=".transactionpasspromt.TransactionPasswordPromptActivity"
android:name=".transactionpasspromt.view.TransactionPasswordPromptActivity"
android:theme="@style/ActivityDialog" android:theme="@style/ActivityDialog"
android:windowSoftInputMode="stateAlwaysHidden" /> android:windowSoftInputMode="stateAlwaysHidden" />
</application> </application>

8
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java

@ -16,14 +16,14 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.SendMoneyRequi
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2Presenter; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2Presenter;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener; import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.TransactionPasswordPromptActivity;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.TransactionPasswordPromptActivity;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import static com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientadd.RecipientAddV2Activity.RECIPIENT_INFO_BUNDLE_KEY; import static com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientadd.RecipientAddV2Activity.RECIPIENT_INFO_BUNDLE_KEY;
import static com.gmeremit.online.gmeremittance_native.transactionpasspromt.TransactionPasswordPromptActivity.PAYMENT_TYPE_BUNDLE_KEY;
import static com.gmeremit.online.gmeremittance_native.transactionpasspromt.TransactionPasswordPromptActivity.TRANSACTION_PWD_ENC_DATA;
import static com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.TransactionPasswordPromptActivity.PAYMENT_TYPE_BUNDLE_KEY;
import static com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.TransactionPasswordPromptActivity.TRANSACTION_PWD_ENC_DATA;
public class SendMoneyV2Activity extends BaseActivity implements SendMoneyActionListener, SendMoneyV2PresenterInterface.SendMoneyV2ContractInterface, View.OnClickListener { public class SendMoneyV2Activity extends BaseActivity implements SendMoneyActionListener, SendMoneyV2PresenterInterface.SendMoneyV2ContractInterface, View.OnClickListener {
@ -266,7 +266,7 @@ public class SendMoneyV2Activity extends BaseActivity implements SendMoneyAction
String paymentType=presenter.getPaymentType(); String paymentType=presenter.getPaymentType();
this.passwordPromptListener=listener; this.passwordPromptListener=listener;
Intent passwordRequestIntent=new Intent(this, TransactionPasswordPromptActivity.class); Intent passwordRequestIntent=new Intent(this, TransactionPasswordPromptActivity.class);
passwordRequestIntent.putExtra(PAYMENT_TYPE_BUNDLE_KEY,"");
passwordRequestIntent.putExtra(PAYMENT_TYPE_BUNDLE_KEY,paymentType);
startActivityForResult(passwordRequestIntent,PASSWORD_PROMPT_REQUEST); startActivityForResult(passwordRequestIntent,PASSWORD_PROMPT_REQUEST);
} }

22
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/gateway/TransactionPasswordPromptV2Gateway.java

@ -0,0 +1,22 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.gateway;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter.TransactionPasswordPromptV2InteractorInterface;
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public class TransactionPasswordPromptV2Gateway extends PrivilegedGateway implements TransactionPasswordPromptV2InteractorInterface.TransactionPasswordPromptV2GatewayInterface {
private final TransactionPasswordPromptV2InteractorInterface interactor;
public TransactionPasswordPromptV2Gateway(TransactionPasswordPromptV2InteractorInterface interactor) {
this.interactor=interactor;
}
@Override
public Observable<ResponseBody> requestOtp(String auth, String Uid) {
return HttpClientV2.getInstance().requestOTPForSendMoney(auth,Uid);
}
}

15
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2InteractorInterface.java

@ -0,0 +1,15 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter;
import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface TransactionPasswordPromptV2InteractorInterface extends BaseInteractorInterface {
interface TransactionPasswordPromptV2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<ResponseBody> requestOtp(String auth, String Uid);
}
}

95
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2Presenter.java

@ -0,0 +1,95 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter;
import android.os.Handler;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.gateway.TransactionPasswordPromptV2Gateway;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
import com.gmeremit.online.gmeremittance_native.utils.https.MessageResponseDataModel;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
public class TransactionPasswordPromptV2Presenter extends BasePresenter implements TransactionPasswordPromptV2PresenterInterface,TransactionPasswordPromptV2InteractorInterface {
private final TransactionPasswordPromptV2PresenterInterface.TransactionPasswordPromptV2ContractInterface view;
private final TransactionPasswordPromptV2InteractorInterface.TransactionPasswordPromptV2GatewayInterface gateway;
private final CompositeDisposable compositeDisposable;
public TransactionPasswordPromptV2Presenter(TransactionPasswordPromptV2PresenterInterface.TransactionPasswordPromptV2ContractInterface view) {
this.view=view;
this.gateway=new TransactionPasswordPromptV2Gateway(this);
this.compositeDisposable = new CompositeDisposable();
}
@Override
public void getOtp() {
this.compositeDisposable.add(
this.gateway.requestOtp(this.gateway.getAuth(),this.gateway.getUserID())
.doOnSubscribe(disposable -> view.showProgressBar(true, "Requesting OTP..."))
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new ResendRequestObserver())
);
// new Handler().postDelayed(()->{
// view.showPopUpMessage("Please check your mobile for OTP", CustomAlertDialog.AlertType.SUCCESS, alertType -> {
// view.showResendRequestView(false);
// view.startCountdownView(120000);
// });
// },2000);
}
class ResendRequestObserver extends GenericApiObserverResponseV2<MessageResponseDataModel>
{
@Override
protected Type setType() {
return TypeToken.getParameterized(GenericResponseDataModel.class, MessageResponseDataModel.class).getType();
}
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> response) {
if (response.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
view.showPopUpMessage(response.getMsg(), CustomAlertDialog.AlertType.SUCCESS, alertType -> {
view.showResendRequestView(false);
view.startCountdownView(120000);
});
}
else {
view.showPopUpMessage(response.getMsg(), CustomAlertDialog.AlertType.FAILED, alertType -> {
view.showResendRequestView(true);
});
}
}
@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.NO_INTERNET, null);
view.showResendRequestView(true);
}
@Override
protected void unauthorizedAccess(String message) {
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
}

13
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/presenter/TransactionPasswordPromptV2PresenterInterface.java

@ -0,0 +1,13 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
public interface TransactionPasswordPromptV2PresenterInterface extends BasePresenterInterface {
void getOtp();
interface TransactionPasswordPromptV2ContractInterface extends BaseContractInterface {
void startCountdownView(int durationMillisecond);
void showResendRequestView(boolean action);
}
}

92
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/TransactionPasswordPromptActivity.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/view/TransactionPasswordPromptActivity.java

@ -1,12 +1,19 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt;
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.view;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GestureDetectorCompat; import android.support.v4.view.GestureDetectorCompat;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.util.Log; import android.util.Log;
import android.view.GestureDetector; import android.view.GestureDetector;
import android.view.MotionEvent; import android.view.MotionEvent;
@ -20,16 +27,20 @@ import android.widget.TextView;
import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GmeErrorTextView; import com.gmeremit.online.gmeremittance_native.customwidgets.GmeErrorTextView;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter.TransactionPasswordPromptV2Presenter;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.presenter.TransactionPasswordPromptV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.EncryptionManager; import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.EncryptionManager;
import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardManager; import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardManager;
import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardView; import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardView;
import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeypadRequestParamBuilder; import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeypadRequestParamBuilder;
import com.softsecurity.transkey.TransKeyActivity; import com.softsecurity.transkey.TransKeyActivity;
import java.util.Locale;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public class TransactionPasswordPromptActivity extends BaseActivity implements SecurityKeyboardView.SecurityKeyboardFocusStateListener {
public class TransactionPasswordPromptActivity extends BaseActivity implements SecurityKeyboardView.SecurityKeyboardFocusStateListener, TransactionPasswordPromptV2PresenterInterface.TransactionPasswordPromptV2ContractInterface, View.OnClickListener {
SecurityKeyboardManager securityKeyboardManager; SecurityKeyboardManager securityKeyboardManager;
@ -62,6 +73,8 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
public static final String TRANSACTION_PWD_ENC_DATA = "bundleKeyEncData"; public static final String TRANSACTION_PWD_ENC_DATA = "bundleKeyEncData";
public static final String PAYMENT_TYPE_BUNDLE_KEY = "bundleKeyPaymentType"; public static final String PAYMENT_TYPE_BUNDLE_KEY = "bundleKeyPaymentType";
private String paymentType; private String paymentType;
private TransactionPasswordPromptV2PresenterInterface presenter;
private CountDownTimer countDownTimer;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -86,6 +99,7 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
} }
private void init() { private void init() {
presenter = new TransactionPasswordPromptV2Presenter(this);
securityKeyboardView.setKeyboardContainerView(keypadContainer); securityKeyboardView.setKeyboardContainerView(keypadContainer);
securityKeyboardView.setKeyboardBallonView(ballonView); securityKeyboardView.setKeyboardBallonView(ballonView);
securityKeypadListener = new SecurityKeypadListener(); securityKeypadListener = new SecurityKeypadListener();
@ -102,6 +116,7 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
request.setMaxLength(4); request.setMaxLength(4);
ballonView.setVisibility(View.INVISIBLE); ballonView.setVisibility(View.INVISIBLE);
resendRequest.setVisibility(View.VISIBLE); resendRequest.setVisibility(View.VISIBLE);
} else { } else {
request.setHintString("Password"); request.setHintString("Password");
title.setText(getString(R.string.enter_login_password_text)); title.setText(getString(R.string.enter_login_password_text));
@ -121,10 +136,14 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
private void performDefaultAction(Bundle savedInstanceState) { private void performDefaultAction(Bundle savedInstanceState) {
securityKeyboardManager.showKeyboard(); securityKeyboardManager.showKeyboard();
if (checkIfRequiredOTPScreen())
new Handler().postDelayed(()->{
presenter.getOtp();
},400);
} }
private boolean checkIfRequiredOTPScreen()
{
private boolean checkIfRequiredOTPScreen() {
return paymentType.equalsIgnoreCase("autodebit"); return paymentType.equalsIgnoreCase("autodebit");
} }
@ -156,12 +175,16 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
securityKeyboardView.setSecurityKeyboardFocusStateListener(this); securityKeyboardView.setSecurityKeyboardFocusStateListener(this);
if(checkIfRequiredOTPScreen())
resendRequest.setOnClickListener(this);
} }
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); super.onStop();
securityKeyboardView.setSecurityKeyboardFocusStateListener(null); securityKeyboardView.setSecurityKeyboardFocusStateListener(null);
if(checkIfRequiredOTPScreen())
resendRequest.setOnClickListener(null);
} }
@ -176,6 +199,67 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
} }
@Override
public void startCountdownView(int durationMillisecond) {
countDownTimer = new CountDownTimer(durationMillisecond, 1000) {
int redColor=ContextCompat.getColor(TransactionPasswordPromptActivity.this, R.color.colorPrimary);
int grayColor=ContextCompat.getColor(TransactionPasswordPromptActivity.this, R.color.darkgray2);
@Override
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished / 1000);
int hours = seconds / (60 * 60);
int tempMint = (seconds - (hours * 60 * 60));
int minutes = tempMint / 60;
seconds = tempMint - (minutes * 60);
String timeRemaining = String.format(Locale.US, "%02d", minutes)
+ ":" + String.format(Locale.US, "%02d", seconds);
Spannable tryInText = new SpannableString("Try again in ");
tryInText.setSpan(new ForegroundColorSpan(grayColor), 0, tryInText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
resendRequest.setText(tryInText);
Spannable timeText = new SpannableString(timeRemaining);
timeText.setSpan(new ForegroundColorSpan(redColor), 0, timeText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
resendRequest.append(timeText);
}
@Override
public void onFinish() {
showResendRequestView(true);
}
};
countDownTimer.start();
}
@Override
public void showResendRequestView(boolean action) {
if (resendRequest.getVisibility() != View.VISIBLE)
resendRequest.setVisibility(View.VISIBLE);
if (action) {
if (countDownTimer != null)
countDownTimer.cancel();
resendRequest.setText("Resend OTP");
resendRequest.setOnClickListener(this);
} else {
resendRequest.setText("");
resendRequest.setOnClickListener(null);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.resend_request:
this.presenter.getOtp();
break;
}
}
class SecurityKeypadListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade { class SecurityKeypadListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade {
@Override @Override
public void done(Intent intent) { public void done(Intent intent) {

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/TransactionPasswordPromptDialog.java → app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/view/TransactionPasswordPromptDialog.java

@ -1,4 +1,4 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt;
package com.gmeremit.online.gmeremittance_native.transactionpasspromt.view;
import android.app.Dialog; import android.app.Dialog;
import android.os.Bundle; import android.os.Bundle;

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java

@ -151,5 +151,6 @@ public class API_URL {
public static final String PENNY_TEST_SUBMIT="v1/mobile/pennytest/getcertified"; public static final String PENNY_TEST_SUBMIT="v1/mobile/pennytest/getcertified";
public static final String FETCH_AUTO_DEBIT_DATA = "v2/kftc/GetKftcParameters/{userId}"; public static final String FETCH_AUTO_DEBIT_DATA = "v2/kftc/GetKftcParameters/{userId}";
public static final String DELETE_AUTO_DEBIT_ACCOUNT = "v2/kftc/DeleteAccount/{userId}"; public static final String DELETE_AUTO_DEBIT_ACCOUNT = "v2/kftc/DeleteAccount/{userId}";
public static final String REUQEST_SEND_MONEY_OTP = "v2/kftc/GetOTP/{userId}";
} }

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

@ -352,4 +352,8 @@ public interface ApiEndpoints {
@POST(API_URL.DELETE_AUTO_DEBIT_ACCOUNT) @POST(API_URL.DELETE_AUTO_DEBIT_ACCOUNT)
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
Observable<ResponseBody> deleteAutoDebitAccount(@Header("Authorization") String token, @Body() JsonObject jsonObject, @Path("userId") String userId); Observable<ResponseBody> deleteAutoDebitAccount(@Header("Authorization") String token, @Body() JsonObject jsonObject, @Path("userId") String userId);
@POST(API_URL.REUQEST_SEND_MONEY_OTP)
@Headers("Content-Type: application/json")
Observable<ResponseBody> requestOTPForSendMoney(@Header("Authorization") String token, @Path("userId") String userId);
} }

10
app/src/main/res/layout/activity_transaction_password_prompt.xml

@ -61,15 +61,15 @@
android:id="@+id/resend_request" android:id="@+id/resend_request"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center_horizontal"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_gravity="center_horizontal"
android:padding="10dp" android:padding="10dp"
android:text="@string/resend_request_text" android:text="@string/resend_request_text"
android:textColor="@color/colorPrimary" android:textColor="@color/colorPrimary"
android:textSize="14sp" />
android:textSize="14sp"
android:visibility="invisible" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
@ -83,9 +83,9 @@
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/keypadBallon" android:id="@+id/keypadBallon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"
/>
android:layout_height="match_parent" />
</RelativeLayout> </RelativeLayout>
Loading…
Cancel
Save