Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jimmytrivedi.lapitchat;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.support.v7.widget.Toolbar;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.LinearLayout;
- import android.widget.ProgressBar;
- import android.widget.TextView;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.FirebaseException;
- import com.google.firebase.FirebaseTooManyRequestsException;
- import com.google.firebase.analytics.FirebaseAnalytics;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.auth.PhoneAuthCredential;
- import com.google.firebase.auth.PhoneAuthProvider;
- import java.util.concurrent.TimeUnit;
- public class PhoneAuthActivity extends AppCompatActivity {
- private LinearLayout DialLayout, LockLayout;
- private EditText PhoneNumber, code;
- private ProgressBar PhoneProgress, CodeProgress;
- private Button sendVerification;
- private Toolbar PhoneToolbar;
- private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;
- private String number;
- private FirebaseAnalytics mFirebaseAnalytics;
- private String mVerificationId;
- private PhoneAuthProvider.ForceResendingToken mResendToken;
- private FirebaseAuth mAuth;
- private TextView ErrorView;
- private int Verify = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_phone_auth);
- DialLayout = findViewById(R.id.DialLayout);
- LockLayout = findViewById(R.id.LockLayout);
- PhoneNumber = findViewById(R.id.PhoneNumber);
- code = findViewById(R.id.code);
- PhoneProgress = findViewById(R.id.PhoneProgress);
- CodeProgress = findViewById(R.id.CodeProgress);
- sendVerification = findViewById(R.id.sendVerification);
- PhoneToolbar = findViewById(R.id.PhoneToolbar);
- ErrorView = findViewById(R.id.ErrorView);
- PhoneProgress.setVisibility(View.INVISIBLE);
- CodeProgress.setVisibility(View.INVISIBLE);
- sendVerification.setEnabled(false);
- LockLayout.setVisibility(View.INVISIBLE);
- setSupportActionBar(PhoneToolbar);
- getSupportActionBar().setTitle("Welcome to Phone Verification");
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
- mAuth = FirebaseAuth.getInstance();
- PhoneNumber.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- }
- @Override
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- String text = charSequence.toString();
- if (!text.isEmpty()) {
- sendVerification.setEnabled(true);
- }
- }
- @Override
- public void afterTextChanged(Editable editable) {
- }
- });
- sendVerification.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(Verify == 0) {
- if (!PhoneNumber.getText().toString().isEmpty()) {
- number = PhoneNumber.getText().toString();
- PhoneNumber.setEnabled(false);
- sendVerification.setEnabled(false);
- PhoneProgress.setVisibility(View.VISIBLE);
- PhoneAuthProvider.getInstance().verifyPhoneNumber(
- number,
- 60,
- TimeUnit.SECONDS,
- PhoneAuthActivity.this,
- mCallbacks
- );
- }
- } else {
- String VerificationCode = code.getText().toString();
- sendVerification.setEnabled(false);
- CodeProgress.setVisibility(View.VISIBLE);
- PhoneAuthCredential credential = PhoneAuthProvider.getCredential(
- mVerificationId,VerificationCode);
- signInWithPhoneAuthCredential(credential);
- }
- }
- });
- mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
- @Override
- public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
- PhoneProgress.setVisibility(View.INVISIBLE);
- signInWithPhoneAuthCredential(phoneAuthCredential);
- }
- @Override
- public void onVerificationFailed(FirebaseException e) {
- ErrorView.setText("There was some error in verification");
- ErrorView.setVisibility(View.VISIBLE);
- if (e instanceof FirebaseAuthInvalidCredentialsException) {
- Log.d("wihddiewd", "FirebaseAuthInvalidCredentialsException: " + e);
- } else if (e instanceof FirebaseTooManyRequestsException) {
- Log.d("wihddiewd", "FirebaseTooManyRequestsException: " + e);
- }
- }
- @Override
- public void onCodeSent(String verificationId,
- PhoneAuthProvider.ForceResendingToken token) {
- Log.d("wihddiewd", "onCodeSent:" + verificationId);
- mVerificationId = verificationId;
- mResendToken = token;
- Verify=1;
- PhoneProgress.setVisibility(View.INVISIBLE);
- LockLayout.setVisibility(View.VISIBLE);
- sendVerification.setEnabled(true);
- sendVerification.setText("Verify code");
- }
- };
- }
- private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
- mAuth.signInWithCredential(credential)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- FirebaseUser user = task.getResult().getUser();
- startActivity(new Intent(PhoneAuthActivity.this, MainActivity.class));
- finish();
- } else {
- ErrorView.setText("There was some error in logging in");
- ErrorView.setVisibility(View.VISIBLE);
- Log.w("wihddiewd", "signInWithCredential:failure", task.getException());
- if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
- }
- }
- }
- });
- }
- }
Add Comment
Please, Sign In to add comment