in auth/app/src/main/java/com/google/firebase/quickstart/auth/java/PhoneAuthFragment.java [273:336]
private void updateUI(int uiState, FirebaseUser user, PhoneAuthCredential cred) {
switch (uiState) {
case STATE_INITIALIZED:
// Initialized state, show only the phone number field and start button
enableViews(mBinding.buttonStartVerification, mBinding.fieldPhoneNumber);
disableViews(mBinding.buttonVerifyPhone, mBinding.buttonResend, mBinding.fieldVerificationCode);
mBinding.detail.setText(null);
break;
case STATE_CODE_SENT:
// Code sent state, show the verification field, the
enableViews(mBinding.buttonVerifyPhone, mBinding.buttonResend, mBinding.fieldPhoneNumber, mBinding.fieldVerificationCode);
disableViews(mBinding.buttonStartVerification);
mBinding.detail.setText(R.string.status_code_sent);
break;
case STATE_VERIFY_FAILED:
// Verification has failed, show all options
enableViews(mBinding.buttonStartVerification, mBinding.buttonVerifyPhone, mBinding.buttonResend, mBinding.fieldPhoneNumber,
mBinding.fieldVerificationCode);
mBinding.detail.setText(R.string.status_verification_failed);
break;
case STATE_VERIFY_SUCCESS:
// Verification has succeeded, proceed to firebase sign in
disableViews(mBinding.buttonStartVerification, mBinding.buttonVerifyPhone, mBinding.buttonResend, mBinding.fieldPhoneNumber,
mBinding.fieldVerificationCode);
mBinding.detail.setText(R.string.status_verification_succeeded);
// Set the verification text based on the credential
if (cred != null) {
if (cred.getSmsCode() != null) {
mBinding.fieldVerificationCode.setText(cred.getSmsCode());
} else {
mBinding.fieldVerificationCode.setText(R.string.instant_validation);
}
}
break;
case STATE_SIGNIN_FAILED:
// No-op, handled by sign-in check
mBinding.detail.setText(R.string.status_sign_in_failed);
break;
case STATE_SIGNIN_SUCCESS:
// Np-op, handled by sign-in check
break;
}
if (user == null) {
// Signed out
mBinding.phoneAuthFields.setVisibility(View.VISIBLE);
mBinding.signOutButton.setVisibility(View.GONE);
mBinding.status.setText(R.string.signed_out);
} else {
// Signed in
mBinding.phoneAuthFields.setVisibility(View.GONE);
mBinding.signOutButton.setVisibility(View.VISIBLE);
enableViews(mBinding.fieldPhoneNumber, mBinding.fieldVerificationCode);
mBinding.fieldPhoneNumber.setText(null);
mBinding.fieldVerificationCode.setText(null);
mBinding.status.setText(R.string.signed_in);
mBinding.detail.setText(getString(R.string.firebase_status_fmt, user.getUid()));
}
}