|
|
@ -5,12 +5,15 @@ import android.content.Intent; |
|
|
|
import android.graphics.Rect; |
|
|
|
import android.os.Bundle; |
|
|
|
import android.support.v4.view.GestureDetectorCompat; |
|
|
|
import android.util.Log; |
|
|
|
import android.view.GestureDetector; |
|
|
|
import android.view.MotionEvent; |
|
|
|
import android.view.View; |
|
|
|
import android.widget.Button; |
|
|
|
import android.widget.EditText; |
|
|
|
import android.widget.FrameLayout; |
|
|
|
import android.widget.RelativeLayout; |
|
|
|
import android.widget.ScrollView; |
|
|
|
import android.widget.TextView; |
|
|
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.R; |
|
|
@ -21,6 +24,11 @@ import com.gmeremit.online.gmeremittance_native.loginV2.view.LoginV2Activity; |
|
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2Presenter; |
|
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.presenter.RegisterV2PresenterInterface; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.Utils; |
|
|
|
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.SecurityKeyboardView; |
|
|
|
import com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeypadRequestParamBuilder; |
|
|
|
import com.softsecurity.transkey.TransKeyActivity; |
|
|
|
import com.tsongkha.spinnerdatepicker.SpinnerDatePickerDialogBuilder; |
|
|
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
@ -36,11 +44,11 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
@BindView(R.id.email_mobile) |
|
|
|
EditText emailMobileTextView; |
|
|
|
|
|
|
|
@BindView(R.id.password) |
|
|
|
EditText passwordTextView; |
|
|
|
@BindView(R.id.securityKeyboardPassword) |
|
|
|
SecurityKeyboardView securityKeyboardPasswordView; |
|
|
|
|
|
|
|
@BindView(R.id.confirm_password) |
|
|
|
EditText confirmPasswordTextView; |
|
|
|
@BindView(R.id.securityKeyboardConfirmPassword) |
|
|
|
SecurityKeyboardView securityKeyboardConfirmPasswordView; |
|
|
|
|
|
|
|
@BindView(R.id.ed_dob) |
|
|
|
EditText ed_dob; |
|
|
@ -66,12 +74,30 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
@BindView(R.id.ed_dob_container) |
|
|
|
FrameLayout ed_dob_container; |
|
|
|
|
|
|
|
@BindView(R.id.keypadContainer) |
|
|
|
FrameLayout keypadContainer; |
|
|
|
|
|
|
|
@BindView(R.id.keypadBallon) |
|
|
|
RelativeLayout ballonView; |
|
|
|
|
|
|
|
@BindView(R.id.scrollView) |
|
|
|
ScrollView scrollView; |
|
|
|
|
|
|
|
@BindView(R.id.rootViewRegister) |
|
|
|
View rootView; |
|
|
|
|
|
|
|
RegisterV2PresenterInterface presenter; |
|
|
|
|
|
|
|
|
|
|
|
private GestureDetectorCompat dobConatinerClickGestureDetector; |
|
|
|
private RegisterDobClickGestureDetector dobContainerOnClickGestureDetector; |
|
|
|
|
|
|
|
SecurityKeyboardManager securityKeyboardPasswordManager; |
|
|
|
SecurityKeyboardManager securityKeyboardConfirmPasswordManager; |
|
|
|
|
|
|
|
SecurityKeypadPasswordListener securityKeyboardPasswordListener; |
|
|
|
SecurityKeypadConfirmPasswordListener securityKeyboardConfirmPasswordListener; |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void onCreate(Bundle savedInstanceState) { |
|
|
|
super.onCreate(savedInstanceState); |
|
|
@ -86,6 +112,45 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
this.presenter = new RegisterV2Presenter(this); |
|
|
|
dobContainerOnClickGestureDetector = new RegisterDobClickGestureDetector(); |
|
|
|
dobConatinerClickGestureDetector = new GestureDetectorCompat(this, dobContainerOnClickGestureDetector); |
|
|
|
|
|
|
|
securityKeyboardPasswordListener=new SecurityKeypadPasswordListener(); |
|
|
|
securityKeyboardPasswordView.setKeyboardContainerView(keypadContainer); |
|
|
|
securityKeyboardPasswordView.setKeyboardBallonView(ballonView); |
|
|
|
try { |
|
|
|
securityKeyboardPasswordManager = new SecurityKeyboardManager(this); |
|
|
|
SecurityKeypadRequestParamBuilder request = new SecurityKeypadRequestParamBuilder(this); |
|
|
|
request.setHintString("Password"); |
|
|
|
|
|
|
|
securityKeyboardPasswordManager.bindWithSecurityWidgetView(securityKeyboardPasswordView) |
|
|
|
.setBallonView(ballonView) |
|
|
|
.setKeyboardContainer(keypadContainer) |
|
|
|
.setRequestParams(request) |
|
|
|
.setActionListener(securityKeyboardPasswordListener) |
|
|
|
.build(); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
Log.d("GMESecurityKeyboard", e.getMessage()); |
|
|
|
} |
|
|
|
securityKeyboardConfirmPasswordListener=new SecurityKeypadConfirmPasswordListener(); |
|
|
|
securityKeyboardConfirmPasswordView.setKeyboardContainerView(keypadContainer); |
|
|
|
securityKeyboardConfirmPasswordView.setKeyboardBallonView(ballonView); |
|
|
|
try { |
|
|
|
securityKeyboardConfirmPasswordManager = new SecurityKeyboardManager(this); |
|
|
|
SecurityKeypadRequestParamBuilder request = new SecurityKeypadRequestParamBuilder(this); |
|
|
|
request.setHintString("Password"); |
|
|
|
|
|
|
|
securityKeyboardConfirmPasswordManager.bindWithSecurityWidgetView(securityKeyboardConfirmPasswordView) |
|
|
|
.setBallonView(ballonView) |
|
|
|
.setKeyboardContainer(keypadContainer) |
|
|
|
.setRequestParams(request) |
|
|
|
.setActionListener(securityKeyboardConfirmPasswordListener) |
|
|
|
.build(); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
Log.d("GMESecurityKeyboard", e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void performDefaultAction(Bundle savedInstanceState) { |
|
|
@ -98,6 +163,9 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
super.onStart(); |
|
|
|
tv_login.setOnClickListener(this); |
|
|
|
btn_submit.setOnClickListener(this); |
|
|
|
securityKeyboardPasswordView.setSecurityKeyboardFocusStateListener(securityKeyboardPasswordListener); |
|
|
|
securityKeyboardConfirmPasswordView.setSecurityKeyboardFocusStateListener(securityKeyboardConfirmPasswordListener); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@SuppressLint("ClickableViewAccessibility") |
|
|
@ -106,12 +174,15 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
super.onStop(); |
|
|
|
tv_login.setOnClickListener(null); |
|
|
|
btn_submit.setOnClickListener(null); |
|
|
|
securityKeyboardPasswordView.setSecurityKeyboardFocusStateListener(null); |
|
|
|
securityKeyboardConfirmPasswordView.setSecurityKeyboardFocusStateListener(null); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public boolean dispatchTouchEvent(MotionEvent ev) { |
|
|
|
return (dobConatinerClickGestureDetector.onTouchEvent(ev) || super.dispatchTouchEvent(ev)); |
|
|
|
return (securityKeyboardPasswordView.checkIfTouchIntersectKeypadLayout(ev)||securityKeyboardConfirmPasswordView.checkIfTouchIntersectKeypadLayout(ev)||dobConatinerClickGestureDetector.onTouchEvent(ev) || super.dispatchTouchEvent(ev)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -123,9 +194,9 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
break; |
|
|
|
|
|
|
|
case R.id.btn_submit: |
|
|
|
if (presenter.validateAll(emailMobileTextView.getText().toString(), passwordTextView.getText().toString(), confirmPasswordTextView.getText().toString(), ed_dob.getText().toString())) { |
|
|
|
if (presenter.validateAll(emailMobileTextView.getText().toString(), null, null, ed_dob.getText().toString())) { |
|
|
|
hideKeyBoard(); |
|
|
|
presenter.registerUser(emailMobileTextView.getText().toString(), passwordTextView.getText().toString(), ed_dob.getText().toString()); |
|
|
|
presenter.registerUser(emailMobileTextView.getText().toString(), null, ed_dob.getText().toString()); |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
@ -233,4 +304,128 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
class SecurityKeypadPasswordListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade,SecurityKeyboardView.SecurityKeyboardFocusStateListener { |
|
|
|
@Override |
|
|
|
public void done(Intent intent) { |
|
|
|
presenter.updatePassword(getDecryptedDataFromIntent(intent)); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void cancel(Intent intent) { |
|
|
|
presenter.updatePassword(getDecryptedDataFromIntent(intent)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String getDecryptedDataFromIntent(Intent intent) |
|
|
|
{ |
|
|
|
if (intent == null) |
|
|
|
return ""; |
|
|
|
|
|
|
|
String cipherData = intent.getStringExtra(TransKeyActivity.mTK_PARAM_CIPHER_DATA); |
|
|
|
|
|
|
|
byte[] secureKey = intent.getByteArrayExtra(TransKeyActivity.mTK_PARAM_SECURE_KEY); |
|
|
|
int iRealDataLength = intent.getIntExtra(TransKeyActivity.mTK_PARAM_DATA_LENGTH, 0); |
|
|
|
Log.d("EncryptedData",cipherData); |
|
|
|
return EncryptionManager.decryptCipherText(cipherData,secureKey,iRealDataLength); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void input(int i) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void minTextSizeCallback() { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void maxTextSizeCallback() { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onSecurityViewRecievedFocus() { |
|
|
|
if (securityKeyboardPasswordManager != null && !securityKeyboardPasswordManager.isKeyboardVisible()) { |
|
|
|
hideKeyBoard(); |
|
|
|
securityKeyboardPasswordManager.showKeyboard(); |
|
|
|
scrollView.postDelayed(()->{ |
|
|
|
scrollView.smoothScrollTo(0, (int) (.75f*rootView.getBottom())); |
|
|
|
},250); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onSecurityViewLostFocus() { |
|
|
|
if (securityKeyboardPasswordManager != null && securityKeyboardPasswordManager.isKeyboardVisible()) |
|
|
|
securityKeyboardPasswordManager.hideKeyboard(); |
|
|
|
else |
|
|
|
hideKeyBoard(); |
|
|
|
} |
|
|
|
} |
|
|
|
class SecurityKeypadConfirmPasswordListener implements SecurityKeyboardManager.SecurityKeyboardActionListenerFacade,SecurityKeyboardView.SecurityKeyboardFocusStateListener { |
|
|
|
@Override |
|
|
|
public void done(Intent intent) { |
|
|
|
presenter.updateConfirmPassword(getDecryptedDataFromIntent(intent)); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void cancel(Intent intent) { |
|
|
|
presenter.updateConfirmPassword(getDecryptedDataFromIntent(intent)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String getDecryptedDataFromIntent(Intent intent) |
|
|
|
{ |
|
|
|
if (intent == null) |
|
|
|
return ""; |
|
|
|
|
|
|
|
String cipherData = intent.getStringExtra(TransKeyActivity.mTK_PARAM_CIPHER_DATA); |
|
|
|
|
|
|
|
byte[] secureKey = intent.getByteArrayExtra(TransKeyActivity.mTK_PARAM_SECURE_KEY); |
|
|
|
int iRealDataLength = intent.getIntExtra(TransKeyActivity.mTK_PARAM_DATA_LENGTH, 0); |
|
|
|
Log.d("EncryptedData",cipherData); |
|
|
|
return EncryptionManager.decryptCipherText(cipherData,secureKey,iRealDataLength); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void input(int i) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void minTextSizeCallback() { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void maxTextSizeCallback() { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onSecurityViewRecievedFocus() { |
|
|
|
if (securityKeyboardConfirmPasswordManager != null && !securityKeyboardConfirmPasswordManager.isKeyboardVisible()) { |
|
|
|
hideKeyBoard(); |
|
|
|
securityKeyboardConfirmPasswordManager.showKeyboard(); |
|
|
|
scrollView.postDelayed(()->{ |
|
|
|
scrollView.smoothScrollTo(0, (int) (.75f*rootView.getBottom())); |
|
|
|
},250); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onSecurityViewLostFocus() { |
|
|
|
if (securityKeyboardConfirmPasswordManager != null && securityKeyboardConfirmPasswordManager.isKeyboardVisible()) |
|
|
|
securityKeyboardConfirmPasswordManager.hideKeyboard(); |
|
|
|
else |
|
|
|
hideKeyBoard(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |