Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pk.edu.pcsm.pcsm_auth;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.View;
- import android.view.WindowManager;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ProgressBar;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- public class LoginActivity extends AppCompatActivity {
- private static final String TAG = "LoginActivity";
- //Firebase
- private FirebaseAuth.AuthStateListener mAuthListener;
- // widgets
- private EditText mEmail, mPassword;
- private ProgressBar mProgressBar;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- mEmail = (EditText) findViewById(R.id.email);
- mPassword = (EditText) findViewById(R.id.password);
- mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
- setupFirebaseAuth();
- Button signIn = (Button) findViewById(R.id.email_sign_in_button);
- signIn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //check if the fields are filled out
- if (!isEmpty(mEmail.getText().toString())
- && !isEmpty(mPassword.getText().toString())) {
- Log.d(TAG, "onClick: attempting to authenticate.");
- showDialog();
- FirebaseAuth.getInstance().signInWithEmailAndPassword(mEmail.getText().toString(), mPassword.getText().toString())
- .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- hideDialog();
- if (task.isSuccessful()) {
- Timber.d("onPasswordEntered: linkWithCredential:success");
- FirebaseUser user = task.getResult().getUser();
- if (user.isEmailVerified()) {
- Log.d(TAG, "onAuthStateChanged: signed_in: " + user.getUid());
- Toast.makeText(LoginActivity.this, "Authenticated with: " + user.getEmail(), Toast.LENGTH_SHORT).show();
- Intent intent = new Intent(mContext, MainActivity.class);
- startActivity(intent);
- finish();
- }
- else {
- Toast.makeText(LoginActivity.this, "Check Your Email Inbox for a Verification link", Toast.LENGTH_SHORT).show();
- FirebaseAuth.getInstance().signOut();
- }
- }
- }
- }).addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- Toast.makeText(LoginActivity.this, "Authentication Failed", Toast.LENGTH_SHORT).show();
- hideDialog();
- }
- });
- } else {
- Toast.makeText(LoginActivity.this, "You didn't fill in all the fields.", Toast.LENGTH_SHORT).show();
- }
- }
- });
- TextView register = (TextView) findViewById(R.id.link_register);
- register.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
- startActivity(intent);
- }
- });
- TextView resetPassword = (TextView) findViewById(R.id.forgot_password);
- resetPassword.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- }
- });
- TextView resendEmailVerification = (TextView) findViewById(R.id.resend_verification_email);
- resendEmailVerification.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ResendVerificationDialog dialog = new ResendVerificationDialog();
- dialog.show(getSupportFragmentManager(), "dialog_resend_email_verification");
- }
- });
- hideSoftKeyboard();
- }
- /**
- * Return true if the @param is null
- *
- * @param string
- * @return
- */
- private boolean isEmpty(String string) {
- return string.equals("");
- }
- private void showDialog() {
- mProgressBar.setVisibility(View.VISIBLE);
- }
- private void hideDialog() {
- if (mProgressBar.getVisibility() == View.VISIBLE) {
- mProgressBar.setVisibility(View.INVISIBLE);
- }
- }
- private void hideSoftKeyboard() {
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
- }
- /*
- ----------------------------- Firebase setup ---------------------------------
- */
- private void setupFirebaseAuth() {
- Log.d(TAG, "setupFirebaseAuth: started.");
- mAuthListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- FirebaseUser user = firebaseAuth.getCurrentUser();
- if (user != null) {
- Log.d(TAG, "onAuthStateChanged: signed_out: ");
- }else {
- Log.d(TAG, "onAuthStateChanged: signed_out: ");
- }
- }
- };
- }
- @Override
- protected void onStart() {
- super.onStart();
- FirebaseAuth.getInstance().addAuthStateListener(mAuthListener);
- }
- @Override
- protected void onStop() {
- super.onStop();
- if (mAuthListener != null) {
- FirebaseAuth.getInstance().removeAuthStateListener(mAuthListener);
- }
- }
- }
Add Comment
Please, Sign In to add comment