Guest User

Untitled

a guest
Jul 21st, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. package com.jimmytrivedi.lapitchat;
  2.  
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.support.annotation.NonNull;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.support.v7.widget.Toolbar;
  8. import android.text.Editable;
  9. import android.text.TextWatcher;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.EditText;
  14. import android.widget.LinearLayout;
  15. import android.widget.ProgressBar;
  16. import android.widget.TextView;
  17.  
  18. import com.google.android.gms.tasks.OnCompleteListener;
  19. import com.google.android.gms.tasks.Task;
  20. import com.google.firebase.FirebaseException;
  21. import com.google.firebase.FirebaseTooManyRequestsException;
  22. import com.google.firebase.analytics.FirebaseAnalytics;
  23. import com.google.firebase.auth.AuthResult;
  24. import com.google.firebase.auth.FirebaseAuth;
  25. import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
  26. import com.google.firebase.auth.FirebaseUser;
  27. import com.google.firebase.auth.PhoneAuthCredential;
  28. import com.google.firebase.auth.PhoneAuthProvider;
  29.  
  30. import java.util.concurrent.TimeUnit;
  31.  
  32. public class PhoneAuthActivity extends AppCompatActivity {
  33.  
  34. private LinearLayout DialLayout, LockLayout;
  35. private EditText PhoneNumber, code;
  36. private ProgressBar PhoneProgress, CodeProgress;
  37. private Button sendVerification;
  38. private Toolbar PhoneToolbar;
  39. private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;
  40. private String number;
  41. private FirebaseAnalytics mFirebaseAnalytics;
  42. private String mVerificationId;
  43. private PhoneAuthProvider.ForceResendingToken mResendToken;
  44. private FirebaseAuth mAuth;
  45. private TextView ErrorView;
  46. private int Verify = 0;
  47.  
  48. @Override
  49. protected void onCreate(Bundle savedInstanceState) {
  50. super.onCreate(savedInstanceState);
  51. setContentView(R.layout.activity_phone_auth);
  52.  
  53. DialLayout = findViewById(R.id.DialLayout);
  54. LockLayout = findViewById(R.id.LockLayout);
  55. PhoneNumber = findViewById(R.id.PhoneNumber);
  56. code = findViewById(R.id.code);
  57. PhoneProgress = findViewById(R.id.PhoneProgress);
  58. CodeProgress = findViewById(R.id.CodeProgress);
  59. sendVerification = findViewById(R.id.sendVerification);
  60. PhoneToolbar = findViewById(R.id.PhoneToolbar);
  61. ErrorView = findViewById(R.id.ErrorView);
  62.  
  63. PhoneProgress.setVisibility(View.INVISIBLE);
  64. CodeProgress.setVisibility(View.INVISIBLE);
  65. sendVerification.setEnabled(false);
  66. LockLayout.setVisibility(View.INVISIBLE);
  67.  
  68. setSupportActionBar(PhoneToolbar);
  69. getSupportActionBar().setTitle("Welcome to Phone Verification");
  70. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  71.  
  72. mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
  73. mAuth = FirebaseAuth.getInstance();
  74.  
  75. PhoneNumber.addTextChangedListener(new TextWatcher() {
  76. @Override
  77. public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  78.  
  79. }
  80.  
  81. @Override
  82. public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  83. String text = charSequence.toString();
  84. if (!text.isEmpty()) {
  85. sendVerification.setEnabled(true);
  86. }
  87.  
  88. }
  89.  
  90. @Override
  91. public void afterTextChanged(Editable editable) {
  92. }
  93. });
  94.  
  95.  
  96. sendVerification.setOnClickListener(new View.OnClickListener() {
  97. @Override
  98. public void onClick(View v) {
  99.  
  100. if(Verify == 0) {
  101.  
  102. if (!PhoneNumber.getText().toString().isEmpty()) {
  103. number = PhoneNumber.getText().toString();
  104. PhoneNumber.setEnabled(false);
  105. sendVerification.setEnabled(false);
  106. PhoneProgress.setVisibility(View.VISIBLE);
  107.  
  108.  
  109. PhoneAuthProvider.getInstance().verifyPhoneNumber(
  110. number,
  111. 60,
  112. TimeUnit.SECONDS,
  113. PhoneAuthActivity.this,
  114. mCallbacks
  115. );
  116.  
  117. }
  118. } else {
  119. String VerificationCode = code.getText().toString();
  120. sendVerification.setEnabled(false);
  121. CodeProgress.setVisibility(View.VISIBLE);
  122. PhoneAuthCredential credential = PhoneAuthProvider.getCredential(
  123. mVerificationId,VerificationCode);
  124. signInWithPhoneAuthCredential(credential);
  125. }
  126. }
  127. });
  128.  
  129. mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
  130. @Override
  131. public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
  132. PhoneProgress.setVisibility(View.INVISIBLE);
  133. signInWithPhoneAuthCredential(phoneAuthCredential);
  134. }
  135.  
  136. @Override
  137. public void onVerificationFailed(FirebaseException e) {
  138.  
  139. ErrorView.setText("There was some error in verification");
  140. ErrorView.setVisibility(View.VISIBLE);
  141.  
  142. if (e instanceof FirebaseAuthInvalidCredentialsException) {
  143. Log.d("wihddiewd", "FirebaseAuthInvalidCredentialsException: " + e);
  144.  
  145. } else if (e instanceof FirebaseTooManyRequestsException) {
  146. Log.d("wihddiewd", "FirebaseTooManyRequestsException: " + e);
  147. }
  148.  
  149. }
  150.  
  151. @Override
  152. public void onCodeSent(String verificationId,
  153. PhoneAuthProvider.ForceResendingToken token) {
  154.  
  155. Log.d("wihddiewd", "onCodeSent:" + verificationId);
  156.  
  157.  
  158. mVerificationId = verificationId;
  159. mResendToken = token;
  160. Verify=1;
  161. PhoneProgress.setVisibility(View.INVISIBLE);
  162. LockLayout.setVisibility(View.VISIBLE);
  163. sendVerification.setEnabled(true);
  164. sendVerification.setText("Verify code");
  165.  
  166. }
  167. };
  168. }
  169.  
  170. private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
  171. mAuth.signInWithCredential(credential)
  172. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  173. @Override
  174. public void onComplete(@NonNull Task<AuthResult> task) {
  175. if (task.isSuccessful()) {
  176. FirebaseUser user = task.getResult().getUser();
  177. startActivity(new Intent(PhoneAuthActivity.this, MainActivity.class));
  178. finish();
  179. } else {
  180. ErrorView.setText("There was some error in logging in");
  181. ErrorView.setVisibility(View.VISIBLE);
  182. Log.w("wihddiewd", "signInWithCredential:failure", task.getException());
  183. if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
  184. }
  185. }
  186. }
  187. });
  188. }
  189.  
  190. }
Add Comment
Please, Sign In to add comment