Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.70 KB | None | 0 0
  1. package com.olimpiade.binocentre.Activity;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.EditText;
  9. import android.widget.Toast;
  10. import com.google.android.gms.tasks.OnCompleteListener;
  11. import com.google.android.gms.tasks.Task;
  12. import com.google.android.material.snackbar.Snackbar;
  13. import com.google.firebase.FirebaseException;
  14. import com.google.firebase.auth.AuthResult;
  15. import com.google.firebase.auth.FirebaseAuth;
  16. import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
  17. import com.google.firebase.auth.PhoneAuthCredential;
  18. import com.google.firebase.auth.PhoneAuthProvider;
  19. import com.olimpiade.binocentre.R;
  20. import java.util.concurrent.TimeUnit;
  21.  
  22. public class Verifikasi extends AppCompatActivity {
  23.     private String mVerificationId;
  24.     private EditText editTextCode;
  25.     private FirebaseAuth mAuth;
  26.     @Override
  27.     protected void onCreate(Bundle savedInstanceState) {
  28.         super.onCreate(savedInstanceState);
  29.         setContentView(R.layout.activity_verifikasi);
  30.         getSupportActionBar().hide();
  31.         mAuth = FirebaseAuth.getInstance();
  32.         editTextCode = findViewById(R.id.editTextCode);
  33.         Intent intent = getIntent();
  34.         String mobile = intent.getStringExtra("mobile");
  35.         sendVerificationCode(mobile);
  36.  
  37.         findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
  38.             @Override
  39.             public void onClick(View v) {
  40.                 String code = editTextCode.getText().toString().trim();
  41.                 if (code.isEmpty() || code.length() < 6) {
  42.                     editTextCode.setError("Kode Salah");
  43.                     editTextCode.requestFocus();
  44.                     return;
  45.                 }
  46.                 verifyVerificationCode(code);
  47.             }
  48.         });
  49.  
  50.     }
  51.  
  52.     private void sendVerificationCode(String mobile) {
  53.         PhoneAuthProvider.getInstance().verifyPhoneNumber(
  54.                 mobile,
  55.                 60,
  56.                 TimeUnit.SECONDS,
  57.                 this,
  58.                 mCallbacks);
  59.     }
  60.  
  61.     private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
  62.         @Override
  63.         public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
  64.             String code = phoneAuthCredential.getSmsCode();
  65.  
  66.             if (code != null) {
  67.                 editTextCode.setText(code);
  68.                 verifyVerificationCode(code);
  69.             }
  70.         }
  71.  
  72.         @Override
  73.         public void onVerificationFailed(FirebaseException e) {
  74.             Toast.makeText(Verifikasi.this, e.getMessage(), Toast.LENGTH_LONG).show();
  75.         }
  76.  
  77.         @Override
  78.         public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
  79.             super.onCodeSent(s, forceResendingToken);
  80.             mVerificationId = s;
  81.         }
  82.     };
  83.  
  84.  
  85.     private void verifyVerificationCode(String code) {
  86.         PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, code);
  87.         signInWithPhoneAuthCredential(credential);
  88.     }
  89.  
  90.     private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
  91.         mAuth.signInWithCredential(credential)
  92.                 .addOnCompleteListener(Verifikasi.this, new OnCompleteListener<AuthResult>() {
  93.                     @Override
  94.                     public void onComplete(@NonNull Task<AuthResult> task) {
  95.                         if (task.isSuccessful()) {
  96.                             Intent intent = new Intent(Verifikasi.this, MainActivity.class);
  97.                             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  98.                             startActivity(intent);
  99.  
  100.                         } else {
  101.                             String message = "Somthing is wrong, we will fix it soon...";
  102.  
  103.                             if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
  104.                                 message = "Kode Salah";
  105.                             }
  106.  
  107.                             Snackbar snackbar = Snackbar.make(findViewById(R.id.parent), message, Snackbar.LENGTH_LONG);
  108.                             snackbar.setAction("Dismiss", new View.OnClickListener() {
  109.                                 @Override
  110.                                 public void onClick(View v) {
  111.  
  112.                                 }
  113.                             });
  114.                             snackbar.show();
  115.                         }
  116.                     }
  117.                 });
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement