protected void onCreate()

in auth/src/main/java/com/firebase/ui/auth/ui/phone/PhoneActivity.java [60:138]


    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fui_activity_register_phone);

        final PhoneProviderResponseHandler handler =
                new ViewModelProvider(this).get(PhoneProviderResponseHandler.class);
        handler.init(getFlowParams());
        handler.getOperation().observe(this, new ResourceObserver<IdpResponse>(
                this, R.string.fui_progress_dialog_signing_in) {
            @Override
            protected void onSuccess(@NonNull IdpResponse response) {
                startSaveCredentials(handler.getCurrentUser(), response, null);
            }

            @Override
            protected void onFailure(@NonNull Exception e) {
                handleError(e);
            }
        });

        mPhoneVerifier = new ViewModelProvider(this).get(PhoneNumberVerificationHandler.class);
        mPhoneVerifier.init(getFlowParams());
        mPhoneVerifier.onRestoreInstanceState(savedInstanceState);
        mPhoneVerifier.getOperation().observe(this, new ResourceObserver<PhoneVerification>(
                this, R.string.fui_verifying) {
            @Override
            protected void onSuccess(@NonNull PhoneVerification verification) {
                if (verification.isAutoVerified()) {
                    Toast.makeText(
                            PhoneActivity.this,
                            R.string.fui_auto_verified,
                            Toast.LENGTH_LONG
                    ).show();

                    FragmentManager manager = getSupportFragmentManager();
                    if (manager.findFragmentByTag(SubmitConfirmationCodeFragment.TAG) != null) {
                        // Ensure the submit code screen isn't visible if there's no code to submit.
                        // It's possible to get into this state when an SMS is sent, but then
                        // automatically retrieved.
                        manager.popBackStack();
                    }
                }

                handler.startSignIn(verification.getCredential(), new IdpResponse.Builder(
                        new User.Builder(PhoneAuthProvider.PROVIDER_ID, null)
                                .setPhoneNumber(verification.getNumber())
                                .build())
                        .build());
            }

            @Override
            protected void onFailure(@NonNull Exception e) {
                if (e instanceof PhoneNumberVerificationRequiredException) {
                    // Only boot up the submit code fragment if it isn't already being shown to the
                    // user. If the user requests another verification code, the fragment will
                    // already be visible so we have nothing to do.
                    if (getSupportFragmentManager()
                            .findFragmentByTag(SubmitConfirmationCodeFragment.TAG) == null) {
                        showSubmitCodeFragment(
                                ((PhoneNumberVerificationRequiredException) e).getPhoneNumber());
                    }

                    // Clear existing errors
                    handleError(null);
                } else {
                    handleError(e);
                }
            }
        });

        if (savedInstanceState != null) { return; }

        Bundle params = getIntent().getExtras().getBundle(ExtraConstants.PARAMS);
        CheckPhoneNumberFragment fragment = CheckPhoneNumberFragment.newInstance(params);
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.fragment_phone, fragment, CheckPhoneNumberFragment.TAG)
                .disallowAddToBackStack()
                .commit();
    }