Hasbi_Assidiqqi

VerifyActivity.java

Feb 13th, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.83 KB | None | 0 0
  1. package com.android.project.futsalkuy;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5.  
  6. import android.annotation.SuppressLint;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.os.CountDownTimer;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.view.WindowManager;
  13. import android.widget.EditText;
  14. import android.widget.ProgressBar;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17.  
  18. import com.google.android.gms.tasks.OnCompleteListener;
  19. import com.google.android.gms.tasks.Task;
  20. import com.google.android.gms.tasks.TaskExecutors;
  21. import com.google.firebase.FirebaseException;
  22. import com.google.firebase.auth.AuthResult;
  23. import com.google.firebase.auth.FirebaseAuth;
  24. import com.google.firebase.auth.PhoneAuthCredential;
  25. import com.google.firebase.auth.PhoneAuthProvider;
  26.  
  27. import java.util.concurrent.TimeUnit;
  28.  
  29. public class VerifyActivity extends AppCompatActivity {
  30.     private FirebaseAuth mAuth;
  31.     private String verificationId;
  32.     private ProgressBar progressBar;
  33.     private EditText editText;
  34.     private TextView textView, kirim_ulang;
  35.  
  36.     int counter;
  37.     int status_kirim_ulang;
  38.     CountDownTimer countDownTimer;
  39.     @SuppressLint("RestrictedApi")
  40.  
  41.     @Override
  42.     protected void onCreate(Bundle savedInstanceState) {
  43.         super.onCreate(savedInstanceState);
  44.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  45.         setContentView(R.layout.activity_verify);
  46.         //
  47.         status_kirim_ulang=0;
  48.         kirim_ulang=findViewById(R.id.tv_resending_VerifyScreen);
  49.  
  50.         counter=30;
  51.         time();
  52.         //
  53.  
  54.         mAuth = FirebaseAuth.getInstance();
  55.         progressBar = findViewById(R.id.progressBar_VerifyScreen);
  56.         editText = findViewById(R.id.edt_enterCode_VerifyScreen);
  57.         textView = findViewById(R.id.tv_received_VerifyScreen);
  58.  
  59.         textView.setText(getIntent().getStringExtra("phonenumber"));
  60.  
  61.         String phoneNumber = getIntent().getStringExtra("phonenumber");
  62.         sendVerificationCode (phoneNumber);
  63.  
  64.         findViewById(R.id.btn_verification_VerifyScreen).setOnClickListener(new View.OnClickListener() {
  65.             @Override
  66.             public void onClick(View v) {
  67.                 String code = editText.getText().toString().trim();
  68.                 if (code.isEmpty() || code.length() < 6) {
  69.                     editText.setError("enter your code..");
  70.                     editText.requestFocus();
  71.                     return;
  72.                 }
  73.                 verfyCode(code);
  74.             }
  75.         });
  76.     }
  77.  
  78.     private void verfyCode(String code) {
  79.         PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
  80.         signInWithCredential (credential);
  81.     }
  82.     private void signInWithCredential(PhoneAuthCredential credential) {
  83.         mAuth.signInWithCredential(credential)
  84.                 .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
  85.                     @Override
  86.                     public void onComplete(@NonNull Task<AuthResult> task) {
  87.                         if (task.isSuccessful()) {
  88.                             Intent signUpActivity = new Intent(VerifyActivity.this, SignUpActivity.class);
  89.                             signUpActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  90.                             startActivity(signUpActivity);
  91.                         } else {
  92.                             Toast.makeText(VerifyActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
  93.                         }
  94.                     }
  95.                 });
  96.     }
  97.  
  98.     private void sendVerificationCode (String number) {
  99.         progressBar.setVisibility(View.VISIBLE);
  100.         PhoneAuthProvider.getInstance().verifyPhoneNumber(number, 60, TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallBack);
  101.     }
  102.  
  103.     private PhoneAuthProvider.OnVerificationStateChangedCallbacks
  104.     mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
  105.         @Override
  106.         public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
  107.             super.onCodeSent(s, forceResendingToken);
  108.             verificationId = s;
  109.         }
  110.  
  111.         @Override
  112.         public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
  113.             String code = phoneAuthCredential.getSmsCode();
  114.             if (code != null) {
  115.                 editText.setText(code);
  116.                 verfyCode(code);
  117.             }
  118.         }
  119.  
  120.         @Override
  121.         public void onVerificationFailed(FirebaseException e) {
  122.             Toast.makeText(VerifyActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
  123.         }
  124.     };
  125.  
  126.     //
  127.     void time()
  128.     {
  129.         countDownTimer = new CountDownTimer(30000, 1000){
  130.             public void onTick(long millisUntilFinished){
  131.                 kirim_ulang.setTextColor(getResources().getColor(R.color.red));
  132.                 kirim_ulang.setText("Resending("+String.valueOf(counter)+")");
  133.                 if(counter <= 1 )
  134.                 {
  135.                     stop_time();
  136.                     status_kirim_ulang=1;
  137.                     kirim_ulang.setTextColor(getResources().getColor(R.color.colorPrimary));
  138.                 }
  139.                 counter--;
  140.             }
  141.             public  void onFinish(){
  142.  
  143.             }
  144.         }.start();
  145.     }
  146.  
  147.     void stop_time()
  148.     {
  149.         countDownTimer.cancel();
  150.         kirim_ulang.setText("Resending");
  151.     }
  152.  
  153.  
  154.     @Override
  155.     public void onBackPressed() {
  156.         finish();
  157.         super.onBackPressed();
  158.     }
  159.  
  160.     @Override
  161.     public boolean onSupportNavigateUp() {
  162.         onBackPressed();
  163.         return super.onSupportNavigateUp();
  164.     }
  165.     //
  166. }
Advertisement
Add Comment
Please, Sign In to add comment