in auth/app/src/main/java/com/google/firebase/quickstart/auth/java/MultiFactorSignInFragment.java [55:103]
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
onViewStateRestored(savedInstanceState);
}
List<Button> phoneFactorButtonList = new ArrayList<>();
phoneFactorButtonList.add(mBinding.phoneFactor1);
phoneFactorButtonList.add(mBinding.phoneFactor2);
phoneFactorButtonList.add(mBinding.phoneFactor3);
phoneFactorButtonList.add(mBinding.phoneFactor4);
phoneFactorButtonList.add(mBinding.phoneFactor5);
for (Button button : phoneFactorButtonList) {
button.setVisibility(View.GONE);
}
mBinding.finishMfaSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClickFinishSignIn();
}
});
mMultiFactorResolver = getResolverFromArguments(requireArguments());
List<MultiFactorInfo> multiFactorInfoList = mMultiFactorResolver.getHints();
for (int i = 0; i < multiFactorInfoList.size(); ++i) {
PhoneMultiFactorInfo phoneMultiFactorInfo = (PhoneMultiFactorInfo) multiFactorInfoList.get(i);
Button button = phoneFactorButtonList.get(i);
button.setVisibility(View.VISIBLE);
button.setText(phoneMultiFactorInfo.getPhoneNumber());
button.setClickable(true);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PhoneAuthProvider.verifyPhoneNumber(
PhoneAuthOptions.newBuilder()
.setActivity(requireActivity())
.setMultiFactorSession(mMultiFactorResolver.getSession())
.setMultiFactorHint(phoneMultiFactorInfo)
.setCallbacks(generateCallbacks())
// A timeout of 0 disables SMS-auto-retrieval.
.setTimeout(0L, TimeUnit.SECONDS)
.build());
}
});
}
}