Browse Source

Password prompt dialog keyboard completed

master
preyearegmi 6 years ago
parent
commit
f19d818dd9
  1. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/passwordpromptdialog/PasswordPromptDialog.java
  2. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java
  3. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java
  4. 26
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/SendMoneyV2Activity.java
  5. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/PasswordPromptListener.java
  6. 29
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/TransactionPasswordPromptActivity.java
  7. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeypadRequestParamBuilder.java
  8. 8
      app/src/main/res/drawable/ic_rounded_password_prompt_red_header_bg.xml
  9. 13
      app/src/main/res/layout/activity_transaction_password_prompt.xml

15
app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/passwordpromptdialog/PasswordPromptDialog.java

@ -1,16 +1,12 @@
package com.gmeremit.online.gmeremittance_native.customwidgets.passwordpromptdialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
@ -18,12 +14,7 @@ import android.widget.EditText;
import android.widget.TextView;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration;
import com.gmeremit.online.gmeremittance_native.customwidgets.exchangecountrylistingdialog.CountryListingRvAdapter;
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.CountryPaymentService;
import java.util.ArrayList;
import java.util.List;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener;
public class PasswordPromptDialog extends android.support.v4.app.DialogFragment implements View.OnClickListener {
@ -141,8 +132,4 @@ public class PasswordPromptDialog extends android.support.v4.app.DialogFragment
}
public interface PasswordPromptListener {
void onPasswordSubmit(String password);
void onCancelled();
}
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java

@ -5,7 +5,6 @@ import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccou
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.WebRequestModel;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.customwidgets.passwordpromptdialog.PasswordPromptDialog;
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationApiResponse;
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
@ -22,6 +21,7 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.Bra
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.PayoutMode;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.PayoutModeApiResponse;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.verification.VerificationViewModel;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
@ -182,7 +182,7 @@ public class SendMoneyV2Presenter extends BasePresenter implements SendMoneyV2Pr
@Override
public void promptPinAndPerformTransaction() {
view.promptPassword(new PasswordPromptDialog.PasswordPromptListener() {
view.promptPassword(new PasswordPromptListener() {
@Override
public void onPasswordSubmit(String password) {
performSendMoneyTransaction(password);

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java

@ -3,7 +3,6 @@ package com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter;
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.WebRequestModel;
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.customwidgets.passwordpromptdialog.PasswordPromptDialog;
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.ExchangeCalculationApiResponse;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.AmountDetailRelatedDataModel;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.BranchListApiResponse;
@ -13,6 +12,7 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.Bra
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.PayoutMode;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.PayoutModeApiResponse;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.verification.VerificationViewModel;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener;
import io.reactivex.Observable;
@ -47,7 +47,7 @@ public interface SendMoneyV2PresenterInterface extends BasePresenterInterface {
interface SendMoneyV2ContractInterface extends BaseContractInterface
{
void promptPassword(PasswordPromptDialog.PasswordPromptListener listener);
void promptPassword(PasswordPromptListener listener);
void showReceiptOnTransactionComplete(String transactionId);

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

@ -1,5 +1,6 @@
package com.gmeremit.online.gmeremittance_native.sendmoneyV2.view;
import android.app.Activity;
import android.content.Intent;
import android.support.annotation.LayoutRes;
import android.support.v4.app.FragmentTransaction;
@ -11,19 +12,22 @@ import android.widget.TextView;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.base.BaseFragment;
import com.gmeremit.online.gmeremittance_native.customwidgets.passwordpromptdialog.PasswordPromptDialog;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.SendMoneyRequiredData;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2Presenter;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter.SendMoneyV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.PasswordPromptListener;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.TransactionPasswordPromptActivity;
import butterknife.BindView;
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.transactionpasspromt.TransactionPasswordPromptActivity.TRANSACTION_PWD_DEC_DATA;
import static com.gmeremit.online.gmeremittance_native.transactionpasspromt.TransactionPasswordPromptActivity.TRANSACTION_PWD_ENC_DATA;
public class SendMoneyV2Activity extends BaseActivity implements SendMoneyActionListener, SendMoneyV2PresenterInterface.SendMoneyV2ContractInterface, View.OnClickListener {
private static final int PASSWORD_PROMPT_REQUEST = 43266;
private android.support.v4.app.FragmentManager fragmentManager;
private SendMoneyV2PresenterInterface presenter;
private SendMoneyRequiredData sendMoneyRequiredData = null;
@ -42,6 +46,7 @@ public class SendMoneyV2Activity extends BaseActivity implements SendMoneyAction
View iv_cancel;
public static String RECIPIENT_DATA = "recipientData";
private PasswordPromptListener passwordPromptListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -254,11 +259,26 @@ public class SendMoneyV2Activity extends BaseActivity implements SendMoneyAction
}
@Override
public void promptPassword(PasswordPromptDialog.PasswordPromptListener listener) {
public void promptPassword(PasswordPromptListener listener) {
// PasswordPromptDialog passwordPromptDialog = new PasswordPromptDialog();
// passwordPromptDialog.setListener(listener);
// passwordPromptDialog.show(getSupportFragmentManager(), "PasswordDialog");
startActivity(new Intent(this, TransactionPasswordPromptActivity.class));
this.passwordPromptListener=listener;
startActivityForResult(new Intent(this, TransactionPasswordPromptActivity.class),PASSWORD_PROMPT_REQUEST);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PASSWORD_PROMPT_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
String encData=data.getStringExtra(TRANSACTION_PWD_ENC_DATA);
String decData=data.getStringExtra(TRANSACTION_PWD_DEC_DATA);
if(this.passwordPromptListener!=null)
passwordPromptListener.onPasswordSubmit(decData);
this.passwordPromptListener=null;
}
}
}
@Override

6
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/PasswordPromptListener.java

@ -0,0 +1,6 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt;
public interface PasswordPromptListener {
void onPasswordSubmit(String password);
void onCancelled();
}

29
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionpasspromt/TransactionPasswordPromptActivity.java

@ -1,5 +1,6 @@
package com.gmeremit.online.gmeremittance_native.transactionpasspromt;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Rect;
@ -51,6 +52,9 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
private TransactionPasswordPromptActivityGestureDetector myViewGestureDetector;
public static final String TRANSACTION_PWD_ENC_DATA="bundleKeyEncData";
public static final String TRANSACTION_PWD_DEC_DATA="bundleKeyDecData";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -154,8 +158,23 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
class SecurityKeypadListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade {
@Override
public void done(Intent intent) {
Log.d("SecurityKeypad","done");
finish();
String encData=intent.getStringExtra(TransKeyActivity.mTK_PARAM_CIPHER_DATA);
String decData=getDecryptedDataFromIntent(intent);
if(validateStringNotEmpty(decData)) {
passwordErrorTxt.setErrorText(null);
Intent returnIntent = new Intent();
returnIntent.putExtra(TRANSACTION_PWD_ENC_DATA, encData);
returnIntent.putExtra(TRANSACTION_PWD_DEC_DATA, decData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
else
{
passwordErrorTxt.setErrorText(getString(R.string.password_empty_error));
if(securityKeyboardManager!=null&&!securityKeyboardManager.isKeyboardVisible())
securityKeyboardManager.showKeyboard();
}
}
@ -165,6 +184,12 @@ public class TransactionPasswordPromptActivity extends BaseActivity implements S
finish();
}
private boolean validateStringNotEmpty(String data)
{
return (data!=null&&data.length()>0);
}
private String getDecryptedDataFromIntent(Intent intent)
{

6
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeypadRequestParamBuilder.java

@ -109,12 +109,12 @@ public class SecurityKeypadRequestParamBuilder
newIntent.putExtra(TransKeyActivity.mTK_PARAM_DISABLE_SPACE, false);
//최대 입력값 설정 1 - 16
newIntent.putExtra(TransKeyActivity.mTK_PARAM_INPUT_MAXLENGTH, 13);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_INPUT_MAXLENGTH, 20);
//인터페이스 - maxLength시에 메시지 박스 보여주기. 기본은 메시지 안나옴.
newIntent.putExtra(TransKeyActivity.mTK_PARAM_MAX_LENGTH_MESSAGE, maxLengthErrorMessage);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_USE_TOAST_MIN_ALERT , true);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_USE_TOAST_MIN_ALERT , false);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_USE_TOAST_MAX_ALERT,false);
//newIntent.putExtra(TransKeyActivity.mTK_PARAM_USE_CUSTOM_MAX_ALERT , false);
@ -172,7 +172,7 @@ public class SecurityKeypadRequestParamBuilder
// newIntent.putExtra(TransKeyActivity. mTK_PARAM_PBKDF2_IT, PBKDF2_IT);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_MIN_LENGTH_MESSAGE, "최소 글자 2글자 미만입니다");
newIntent.putExtra(TransKeyActivity.mTK_PARAM_INPUT_MINLENGTH, 2);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_INPUT_MINLENGTH, 0);
newIntent.putExtra(TransKeyActivity.mTK_PARAM_ALERTDIALOG_TITLE, "mTranskey alert");
newIntent.putExtra(TransKeyActivity.mTK_PARAM_DISABLE_BUTTON_EFFECT, true);

8
app/src/main/res/drawable/ic_rounded_password_prompt_red_header_bg.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/colorPrimary"/>
<corners
android:topLeftRadius="12dp"
android:topRightRadius="12dp"/>
</shape>

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

@ -1,7 +1,20 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:id="@+id/rootView"
android:fitsSystemWindows="true"
android:clipChildren="true"
android:layout_height="match_parent">
<FrameLayout
android:layout_height="?actionBarSize"
android:background="@drawable/ic_rounded_password_prompt_red_header_bg"
android:layout_width="match_parent">
<ImageView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_gme_home_logo"/>
</FrameLayout>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/title"
android:layout_width="match_parent"

Loading…
Cancel
Save