Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.olimpiade.binocentre.Activity;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.android.material.snackbar.Snackbar;
- import com.google.firebase.FirebaseException;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
- import com.google.firebase.auth.PhoneAuthCredential;
- import com.google.firebase.auth.PhoneAuthProvider;
- import com.olimpiade.binocentre.R;
- import java.util.concurrent.TimeUnit;
- public class Verifikasi extends AppCompatActivity {
- private String mVerificationId;
- private EditText editTextCode;
- private FirebaseAuth mAuth;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_verifikasi);
- getSupportActionBar().hide();
- mAuth = FirebaseAuth.getInstance();
- editTextCode = findViewById(R.id.editTextCode);
- Intent intent = getIntent();
- String mobile = intent.getStringExtra("mobile");
- sendVerificationCode(mobile);
- findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String code = editTextCode.getText().toString().trim();
- if (code.isEmpty() || code.length() < 6) {
- editTextCode.setError("Kode Salah");
- editTextCode.requestFocus();
- return;
- }
- verifyVerificationCode(code);
- }
- });
- }
- private void sendVerificationCode(String mobile) {
- PhoneAuthProvider.getInstance().verifyPhoneNumber(
- mobile,
- 60,
- TimeUnit.SECONDS,
- this,
- mCallbacks);
- }
- private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
- @Override
- public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
- String code = phoneAuthCredential.getSmsCode();
- if (code != null) {
- editTextCode.setText(code);
- verifyVerificationCode(code);
- }
- }
- @Override
- public void onVerificationFailed(FirebaseException e) {
- Toast.makeText(Verifikasi.this, e.getMessage(), Toast.LENGTH_LONG).show();
- }
- @Override
- public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
- super.onCodeSent(s, forceResendingToken);
- mVerificationId = s;
- }
- };
- private void verifyVerificationCode(String code) {
- PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, code);
- signInWithPhoneAuthCredential(credential);
- }
- private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
- mAuth.signInWithCredential(credential)
- .addOnCompleteListener(Verifikasi.this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- Intent intent = new Intent(Verifikasi.this, MainActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- startActivity(intent);
- } else {
- String message = "Somthing is wrong, we will fix it soon...";
- if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
- message = "Kode Salah";
- }
- Snackbar snackbar = Snackbar.make(findViewById(R.id.parent), message, Snackbar.LENGTH_LONG);
- snackbar.setAction("Dismiss", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- }
- });
- snackbar.show();
- }
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement