Exp4
Never
package net.simplifiedcoding.firebasephoneauthentication; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatActivity{ private EditText editTextMobile; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextMobile=findViewById(R.id.editTextMobile); findViewById(R.id.buttonContinue).setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ String mobile =editTextMobile.getText().toString().trim(); if(mobile.isEmpty()||mobile.length()< 10){ editTextMobile.setError("Enter a valid mobile"); editTextMobile.requestFocus(); return; } Intent intent= new Intent(MainActivity.this,VerifyPhoneActivity.class); intent.putExtra("mobile", mobile); startActivity(intent); } }); } } VerifyPhoneActivity.java package net.simplifiedcoding.firebasephoneauthentication; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; 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.gms.tasks.TaskExecutors; 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 java.util.concurrent.TimeUnit; public class VerifyPhoneActivity extends AppCompatActivity{ private String mVerificationId; private EditTexteditTextCode; private FirebaseAuthmAuth; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_verify_phone); 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("Enter valid code"); editTextCode.requestFocus(); return; } verifyVerificationCode(code); } }); } private void sendVerificationCode(String mobile){ PhoneAuthProvider.getInstance().verifyPhoneNumber("+91" + mobile,60,TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallbacks); } private PhoneAuthProvider.OnVerificationStateChangedCallbacksmCallbacks= new PhoneAuthProvider.OnVerificationStateChangedCallbacks(){ @Override public void onVerificationCompleted(PhoneAuthCredentialphoneAuthCredential){ String code =phoneAuthCredential.getSmsCode(); if (code != null){ editTextCode.setText(code); verifyVerificationCode(code); } } @Override public void onVerificationFailed(FirebaseException e){ Toast.makeText(VerifyPhoneActivity.this,e.getMessage(),Toast.LENGTH_LONG).show(); } @Override public void onCodeSent(String s,PhoneAuthProvider.ForceResendingTokenforceResendingToken){ 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(VerifyPhoneActivity.this, new OnCompleteListener<AuthResult>(){ @Override public void onComplete(@NonNull Task<AuthResult> task){ if (task.isSuccessful()){ //verification successful we will start the profile activity Intent intent= new Intent(VerifyPhoneActivity.this,ProfileActivity.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()instanceofFirebaseAuthInvalidCredentialsException){ message = "Invalid code entered..."; } Snackbarsnackbar=Snackbar.make(findViewById(R.id.parent),message,Snackbar.LENGTH_LONG); snackbar.setAction("Dismiss", new View.OnClickListener(){ @Override public void onClick(View v){ } }); } }); } snackbar.show(); } } Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".MainActivity"> <EditText android:id="@+id/editTextMobile" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter Mobile Number" android:inputType="phone" android:layout_marginBottom="16dp"/> <Button android:id="@+id/buttonContinue" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Continue" android:layout_below="@id/editTextMobile"/> </RelativeLayout> Activity_verify_phone <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/parent" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".VerifyPhoneActivity"> <EditText android:id="@+id/editTextCode" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter Verification Code" android:inputType="number" android:layout_marginBottom="16dp"/> <Button android:id="@+id/buttonSignIn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Sign In" android:layout_below="@id/editTextCode"/> </RelativeLayout>
Raw Text
-
Adult Telegram Channels
5 min ago
-
Java Burn Weight Loss Coffee
6 min ago
-
The Future of Dental Care: Prodentim for Healthier Teeth in 2024
C++ | 24 min ago
-
FitSpresso
32 min ago
-
https://www.theoaklandpress.com/2024/05/03/fitspresso-reviews-few-second-coffee-analysis-that-delega
38 min ago
-
Avoid The Top 10 FITSPRESSO WEIGHT LOSS Mistakes
38 min ago
-
Young girls
46 min ago
-
FitsPresso: The Ultimate Fat-Burning Elixir
51 min ago
-
Adult Telegram Channels
52 min ago
-
Untitled
53 min ago