|
@ -1,46 +1,34 @@ |
|
|
package com.gmeremit.online.gmeremittance_native.loginV2.view; |
|
|
package com.gmeremit.online.gmeremittance_native.loginV2.view; |
|
|
|
|
|
|
|
|
import android.animation.Animator; |
|
|
|
|
|
import android.animation.AnimatorListenerAdapter; |
|
|
|
|
|
import android.animation.AnimatorSet; |
|
|
|
|
|
import android.animation.ObjectAnimator; |
|
|
|
|
|
import android.animation.ValueAnimator; |
|
|
|
|
|
import android.annotation.SuppressLint; |
|
|
import android.annotation.SuppressLint; |
|
|
import android.app.Activity; |
|
|
import android.app.Activity; |
|
|
import android.content.Context; |
|
|
import android.content.Context; |
|
|
import android.content.Intent; |
|
|
import android.content.Intent; |
|
|
import android.graphics.drawable.GradientDrawable; |
|
|
|
|
|
import android.os.Bundle; |
|
|
import android.os.Bundle; |
|
|
import android.view.MotionEvent; |
|
|
|
|
|
import android.view.View; |
|
|
import android.view.View; |
|
|
import android.view.ViewGroup; |
|
|
|
|
|
import android.view.animation.AccelerateDecelerateInterpolator; |
|
|
|
|
|
import android.view.animation.Interpolator; |
|
|
|
|
|
import android.widget.Button; |
|
|
import android.widget.Button; |
|
|
import android.widget.EditText; |
|
|
|
|
|
import android.widget.FrameLayout; |
|
|
|
|
|
import android.widget.ProgressBar; |
|
|
import android.widget.ProgressBar; |
|
|
import android.widget.RelativeLayout; |
|
|
|
|
|
import android.widget.ScrollView; |
|
|
import android.widget.ScrollView; |
|
|
import android.widget.TextView; |
|
|
import android.widget.TextView; |
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatDelegate; |
|
|
import androidx.appcompat.app.AppCompatDelegate; |
|
|
import androidx.core.content.ContextCompat; |
|
|
|
|
|
import androidx.core.view.ViewCompat; |
|
|
|
|
|
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat; |
|
|
|
|
|
|
|
|
import androidx.lifecycle.ViewModelProvider; |
|
|
|
|
|
import androidx.lifecycle.ViewModelProviders; |
|
|
|
|
|
|
|
|
import com.facebook.shimmer.ShimmerFrameLayout; |
|
|
import com.facebook.shimmer.ShimmerFrameLayout; |
|
|
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.common.model.FormInputStateDTO; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.view.HomeActivityV2; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.view.HomeActivityV2; |
|
|
import com.gmeremit.online.gmeremittance_native.kycV2.view.KYCFormV2Activity; |
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.kycV2.view.pennytest.PennyTestActivity; |
|
|
import com.gmeremit.online.gmeremittance_native.kycV2.view.pennytest.PennyTestActivity; |
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.gateway.LoginV2Gateway; |
|
|
|
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.LoginViewModelFactory; |
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2Presenter; |
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2Presenter; |
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2PresenterInterface; |
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2PresenterInterface; |
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.resetpassV2.view.ResetPassV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.resetpassV2.view.ResetPassV2Activity; |
|
|
|
|
|
import com.google.android.material.textfield.TextInputEditText; |
|
|
|
|
|
import com.google.android.material.textfield.TextInputLayout; |
|
|
|
|
|
import com.jakewharton.rxbinding3.widget.RxTextView; |
|
|
|
|
|
|
|
|
import butterknife.BindView; |
|
|
import butterknife.BindView; |
|
|
import butterknife.ButterKnife; |
|
|
import butterknife.ButterKnife; |
|
@ -59,11 +47,18 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
|
|
|
|
|
|
public static final String TAG = "GMELoginScreen"; |
|
|
public static final String TAG = "GMELoginScreen"; |
|
|
|
|
|
|
|
|
@BindView(R.id.usernameId) |
|
|
|
|
|
EditText usernameId; |
|
|
|
|
|
|
|
|
@BindView(R.id.usernameId_edTxt) |
|
|
|
|
|
TextInputEditText usernameId; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.usernameId_TxtInputLayout) |
|
|
|
|
|
TextInputLayout usernameIdTxtInputLayout; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.password_edTxt) |
|
|
|
|
|
TextInputEditText passwordEdTxt; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.password_TxtInputLayout) |
|
|
|
|
|
TextInputLayout passwordTxtInputLayout; |
|
|
|
|
|
|
|
|
// @BindView(R.id.passwordId) |
|
|
|
|
|
// EditText passwordId; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.btn_submit) |
|
|
@BindView(R.id.btn_submit) |
|
|
Button loginBtn; |
|
|
Button loginBtn; |
|
@ -74,28 +69,11 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
@BindView(R.id.register) |
|
|
@BindView(R.id.register) |
|
|
TextView registerTxt; |
|
|
TextView registerTxt; |
|
|
|
|
|
|
|
|
@BindView(R.id.userIdErrorTxt) |
|
|
|
|
|
GmeErrorTextView userIdErrorTxt; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.passwordErrorTxt) |
|
|
|
|
|
GmeErrorTextView passwordErrorTxt; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.progressbar_login) |
|
|
|
|
|
ProgressBar progressbar_login; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.iv_back) |
|
|
@BindView(R.id.iv_back) |
|
|
View iv_back; |
|
|
View iv_back; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.keypadContainer) |
|
|
|
|
|
FrameLayout keypadContainer; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.keypadBallon) |
|
|
|
|
|
RelativeLayout ballonView; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.fingerprintScanner) |
|
|
@BindView(R.id.fingerprintScanner) |
|
|
ShimmerFrameLayout fingerprintScannerView; |
|
|
ShimmerFrameLayout fingerprintScannerView; |
|
|
|
|
|
|
|
@ -108,14 +86,7 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
public String loginButtonText; |
|
|
public String loginButtonText; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private LoginV2Presenter presenter; |
|
|
|
|
|
private AnimatorSet mMorphingAnimatorSet = null; |
|
|
|
|
|
private boolean mIsMorphingInProgress = false; |
|
|
|
|
|
private static float DEFAULT_CORNER_RADIUS; |
|
|
|
|
|
private Interpolator interpolator = new AccelerateDecelerateInterpolator(); |
|
|
|
|
|
private int originalButtonWidth; |
|
|
|
|
|
private boolean isLoadingInProgress = false; |
|
|
|
|
|
private AnimatedVectorDrawableCompat fingerPrintAVDCompat; |
|
|
|
|
|
|
|
|
private LoginV2PresenterInterface presenter; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
protected void onCreate(Bundle savedInstanceState) { |
|
|
protected void onCreate(Bundle savedInstanceState) { |
|
@ -129,26 +100,45 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void initialize() { |
|
|
private void initialize() { |
|
|
this.presenter = new LoginV2Presenter(this, new LoginV2Gateway()); |
|
|
|
|
|
DEFAULT_CORNER_RADIUS = 35 * getResources().getDisplayMetrics().density; |
|
|
|
|
|
loginButtonText = loginBtn.getText().toString(); |
|
|
|
|
|
progressbar_login.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(this, android.R.color.white), android.graphics.PorterDuff.Mode.MULTIPLY); |
|
|
|
|
|
ViewCompat.setTranslationZ(progressbar_login, 100); |
|
|
|
|
|
progressbar_login.setVisibility(View.GONE); |
|
|
|
|
|
|
|
|
this.presenter = new ViewModelProvider(this, new LoginViewModelFactory(this)).get(LoginV2Presenter.class); |
|
|
|
|
|
|
|
|
|
|
|
LoginViewLiveData loginRelatedViewEvents = this.presenter.getLoginRelatedViewEvents(new LoginViewLiveData.LoginViewBindings( |
|
|
|
|
|
RxTextView.textChanges(usernameId).skipInitialValue(), |
|
|
|
|
|
RxTextView.textChanges(passwordEdTxt).skipInitialValue() |
|
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
|
|
loginRelatedViewEvents.getUserIdInputLiveData().observe(this, this::showUserIdError); |
|
|
|
|
|
loginRelatedViewEvents.getPasswordInputLiveData().observe(this, this::showPasswordError); |
|
|
|
|
|
loginRelatedViewEvents.getAllFormValidLiveData().observe(this, result -> loginBtn.setEnabled(result.isValid())); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void performDefaultAction(Bundle savedInstanceState) { |
|
|
private void performDefaultAction(Bundle savedInstanceState) { |
|
|
if (presenter.checkIfBiometricIsAvailable()) { |
|
|
if (presenter.checkIfBiometricIsAvailable()) { |
|
|
String fingerprintText=">> "+getString(R.string.use_fingerprint_text)+" <<"; |
|
|
|
|
|
|
|
|
String fingerprintText = ">> " + getString(R.string.use_fingerprint_text) + " <<"; |
|
|
fingerprintScannerTxtView.setText(fingerprintText); |
|
|
fingerprintScannerTxtView.setText(fingerprintText); |
|
|
showFingerPrintScanner(true); |
|
|
showFingerPrintScanner(true); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
usernameId.setText(presenter.getLastLoginIfAvailable()); |
|
|
|
|
|
|
|
|
String userID = presenter.getLastLoginIfAvailable(); |
|
|
|
|
|
if (userID != null && userID.length() > 0) |
|
|
|
|
|
usernameId.setText(userID); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void showPasswordError(FormInputStateDTO formInputStateDTO) { |
|
|
|
|
|
if (formInputStateDTO.isValid()) |
|
|
|
|
|
passwordTxtInputLayout.setError(null); |
|
|
|
|
|
else |
|
|
|
|
|
passwordTxtInputLayout.setError(formInputStateDTO.getErrorMessage()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void showUserIdError(FormInputStateDTO formInputStateDTO) { |
|
|
|
|
|
if (formInputStateDTO.isValid()) |
|
|
|
|
|
usernameIdTxtInputLayout.setError(null); |
|
|
|
|
|
else |
|
|
|
|
|
usernameIdTxtInputLayout.setError(formInputStateDTO.getErrorMessage()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -160,8 +150,7 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
registerTxt.setOnClickListener(this); |
|
|
registerTxt.setOnClickListener(this); |
|
|
loginBtn.setOnClickListener(this); |
|
|
loginBtn.setOnClickListener(this); |
|
|
fingerprintScannerView.setOnClickListener(this); |
|
|
fingerprintScannerView.setOnClickListener(this); |
|
|
// iv_back.setOnClickListener(this); |
|
|
|
|
|
// presenter.promptForBiometricAuth(true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -173,9 +162,7 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
forgetPwdTxt.setOnClickListener(null); |
|
|
forgetPwdTxt.setOnClickListener(null); |
|
|
registerTxt.setOnClickListener(null); |
|
|
registerTxt.setOnClickListener(null); |
|
|
loginBtn.setOnClickListener(null); |
|
|
loginBtn.setOnClickListener(null); |
|
|
// iv_back.setOnClickListener(null); |
|
|
|
|
|
fingerprintScannerView.setOnClickListener(null); |
|
|
fingerprintScannerView.setOnClickListener(null); |
|
|
// presenter.promptForBiometricAuth(false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
@ -183,25 +170,14 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
@Override |
|
|
@Override |
|
|
protected void onResume() { |
|
|
protected void onResume() { |
|
|
super.onResume(); |
|
|
super.onResume(); |
|
|
if (!isLoadingInProgress) |
|
|
|
|
|
animateFingerPrintAppearAnimationIfRequired(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
protected void onPause() { |
|
|
protected void onPause() { |
|
|
super.onPause(); |
|
|
super.onPause(); |
|
|
if (!isLoadingInProgress) |
|
|
|
|
|
animateFingerPrintAppearAnimationIfRequired(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressLint("NewApi") |
|
|
|
|
|
private void animateFingerPrintAppearAnimationIfRequired() { |
|
|
|
|
|
if (fingerprintScannerView.getVisibility() == View.VISIBLE) { |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -235,24 +211,16 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void onLoginBtn() { |
|
|
private void onLoginBtn() { |
|
|
if (presenter.validateAll(usernameId.getText().toString())) { |
|
|
|
|
|
hideKeyBoard(); |
|
|
|
|
|
onLoginPerformTask(() -> presenter.loginUser(usernameId.getText().toString())); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
presenter.loginUser(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onLoginPerformTask(Runnable task) { |
|
|
|
|
|
morphButtonIntoProgressBar(task); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void showFingerPrintScanner(boolean action) { |
|
|
public void showFingerPrintScanner(boolean action) { |
|
|
if (action) { |
|
|
if (action) { |
|
|
fingerprintScannerView.setVisibility(View.VISIBLE); |
|
|
fingerprintScannerView.setVisibility(View.VISIBLE); |
|
|
fingerprintScannerView.startShimmerAnimation(); |
|
|
fingerprintScannerView.startShimmerAnimation(); |
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
|
|
|
} else { |
|
|
fingerprintScannerView.startShimmerAnimation(); |
|
|
fingerprintScannerView.startShimmerAnimation(); |
|
|
fingerprintScannerView.setVisibility(View.GONE); |
|
|
fingerprintScannerView.setVisibility(View.GONE); |
|
|
} |
|
|
} |
|
@ -265,12 +233,6 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void redirectToKYCScreen(String email, int requestCode) { |
|
|
|
|
|
Intent startKycIntent = new Intent(this, KYCFormV2Activity.class); |
|
|
|
|
|
startKycIntent.putExtra(KYCFormV2Activity.USER_EMAIL_ID_BUNDLE_KEY, email); |
|
|
|
|
|
startActivityForResult(startKycIntent, requestCode); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void clearUserName() { |
|
|
public void clearUserName() { |
|
@ -307,122 +269,15 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public boolean dispatchTouchEvent(MotionEvent ev) { |
|
|
|
|
|
return (isLoadingInProgress || super.dispatchTouchEvent(ev)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onBackPressed() { |
|
|
|
|
|
if (!isLoadingInProgress) { |
|
|
|
|
|
super.onBackPressed(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void morphButtonIntoProgressBar(Runnable task) { |
|
|
|
|
|
GradientDrawable mGradientDrawable = (GradientDrawable) loginBtn.getBackground(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ObjectAnimator cornerAnimation = |
|
|
|
|
|
ObjectAnimator.ofFloat(mGradientDrawable, |
|
|
|
|
|
"cornerRadius", |
|
|
|
|
|
DEFAULT_CORNER_RADIUS, |
|
|
|
|
|
loginBtn.getHeight()); |
|
|
|
|
|
|
|
|
|
|
|
originalButtonWidth = loginBtn.getWidth(); |
|
|
|
|
|
ValueAnimator widthAnimation = ValueAnimator.ofInt(loginBtn.getWidth(), loginBtn.getHeight()); |
|
|
|
|
|
widthAnimation.addUpdateListener(valueAnimator -> { |
|
|
|
|
|
int val = (Integer) valueAnimator.getAnimatedValue(); |
|
|
|
|
|
ViewGroup.LayoutParams layoutParams = loginBtn.getLayoutParams(); |
|
|
|
|
|
layoutParams.width = val; |
|
|
|
|
|
loginBtn.setLayoutParams(layoutParams); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
mMorphingAnimatorSet = new AnimatorSet(); |
|
|
|
|
|
mMorphingAnimatorSet.setDuration(330); |
|
|
|
|
|
mMorphingAnimatorSet.setInterpolator(interpolator); |
|
|
|
|
|
mMorphingAnimatorSet.playTogether(cornerAnimation, widthAnimation); |
|
|
|
|
|
mMorphingAnimatorSet.addListener(new AnimatorListenerAdapter() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationStart(Animator animation) { |
|
|
|
|
|
super.onAnimationStart(animation); |
|
|
|
|
|
hideKeyBoard(); |
|
|
|
|
|
mIsMorphingInProgress = true; |
|
|
|
|
|
isLoadingInProgress = true; |
|
|
|
|
|
loginBtn.setText(""); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationEnd(Animator animation) { |
|
|
|
|
|
mIsMorphingInProgress = false; |
|
|
|
|
|
progressbar_login.setVisibility(View.VISIBLE); |
|
|
|
|
|
if (task != null) |
|
|
|
|
|
task.run(); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
mMorphingAnimatorSet.start(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void morphProgressBarIntoButton(Runnable callback) { |
|
|
|
|
|
GradientDrawable mGradientDrawable = (GradientDrawable) loginBtn.getBackground(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ObjectAnimator cornerAnimation = |
|
|
|
|
|
ObjectAnimator.ofFloat(mGradientDrawable, |
|
|
|
|
|
"cornerRadius", |
|
|
|
|
|
loginBtn.getHeight(), |
|
|
|
|
|
DEFAULT_CORNER_RADIUS); |
|
|
|
|
|
|
|
|
|
|
|
ValueAnimator widthAnimation = ValueAnimator.ofInt(loginBtn.getHeight(), originalButtonWidth); |
|
|
|
|
|
widthAnimation.addUpdateListener(valueAnimator -> { |
|
|
|
|
|
int val = (Integer) valueAnimator.getAnimatedValue(); |
|
|
|
|
|
ViewGroup.LayoutParams layoutParams = loginBtn.getLayoutParams(); |
|
|
|
|
|
layoutParams.width = val; |
|
|
|
|
|
loginBtn.setLayoutParams(layoutParams); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mMorphingAnimatorSet = new AnimatorSet(); |
|
|
|
|
|
mMorphingAnimatorSet.setDuration(330); |
|
|
|
|
|
mMorphingAnimatorSet.setInterpolator(interpolator); |
|
|
|
|
|
mMorphingAnimatorSet.playTogether(cornerAnimation, widthAnimation); |
|
|
|
|
|
mMorphingAnimatorSet.addListener(new AnimatorListenerAdapter() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationStart(Animator animation) { |
|
|
|
|
|
super.onAnimationStart(animation); |
|
|
|
|
|
mIsMorphingInProgress = true; |
|
|
|
|
|
progressbar_login.setVisibility(View.GONE); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationEnd(Animator animation) { |
|
|
|
|
|
mIsMorphingInProgress = false; |
|
|
|
|
|
loginBtn.setText(loginButtonText); |
|
|
|
|
|
isLoadingInProgress = false; |
|
|
|
|
|
if (callback != null) |
|
|
|
|
|
callback.run(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
mMorphingAnimatorSet.start(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void showInvalidUserId(String message) { |
|
|
public void showInvalidUserId(String message) { |
|
|
userIdErrorTxt.setErrorText(message); |
|
|
|
|
|
|
|
|
usernameIdTxtInputLayout.setError(message); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void showInvalidPassword(String message) { |
|
|
public void showInvalidPassword(String message) { |
|
|
passwordErrorTxt.setErrorText(message); |
|
|
|
|
|
|
|
|
passwordTxtInputLayout.setError(message); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -445,8 +300,4 @@ public class LoginV2Activity extends BaseActivity implements View.OnClickListene |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |