Advertisement
Guest User

Untitled

a guest
Sep 14th, 2018
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.00 KB | None | 0 0
  1. package com.stephanie.instagramclone.Login;
  2.  
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.annotation.NonNull;
  7. import android.support.annotation.Nullable;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.text.TextUtils;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.widget.EditText;
  13. import android.widget.ProgressBar;
  14. import android.widget.TextView;
  15. import android.widget.Toast;
  16.  
  17. import com.google.android.gms.tasks.OnCompleteListener;
  18. import com.google.android.gms.tasks.Task;
  19. import com.google.firebase.auth.AuthResult;
  20. import com.google.firebase.auth.FirebaseAuth;
  21. import com.google.firebase.auth.FirebaseUser;
  22. import com.stephanie.instagramclone.R;
  23.  
  24. public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
  25.  
  26.     private static final String TAG = "LoginActivity";
  27.  
  28.     private FirebaseAuth mAuth;
  29.  
  30.     private Context mContext;
  31.     private ProgressBar mProgressBar;
  32.     private EditText mEmail, mPassword;
  33.     private TextView mPleaseWait;
  34.  
  35.  
  36.     @Override
  37.     protected void onCreate(@Nullable Bundle savedInstanceState) {
  38.         super.onCreate(savedInstanceState);
  39.         setContentView(R.layout.activity_login);
  40.  
  41.         mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
  42.         mPleaseWait = (TextView) findViewById(R.id.pleaseWait);
  43.         mEmail = (EditText) findViewById(R.id.input_email);
  44.         mPassword = (EditText) findViewById(R.id.input_password);
  45.         mContext = LoginActivity.this;
  46.  
  47.         Log.d(TAG, "onCreate: started");
  48.  
  49.         mPleaseWait.setVisibility(View.GONE);
  50.         mProgressBar.setVisibility(View.GONE);
  51.  
  52.         //Firebase Auth
  53.         findViewById(R.id.btn_login).setOnClickListener(this);
  54.         findViewById(R.id.link_signup).setOnClickListener(this);
  55.  
  56.         mAuth = FirebaseAuth.getInstance();
  57.  
  58.     }
  59.  
  60.     @Override
  61.     public void onStart() {
  62.         super.onStart();
  63.         // Check if user is signed in (non-null) and update UI accordingly.
  64.         FirebaseUser currentUser = mAuth.getCurrentUser();
  65.         updateUI(currentUser);
  66.     }
  67.  
  68.     @Override
  69.     public void onClick(View view) {
  70.         int i = view.getId();
  71.  
  72.         if (i == R.id.link_signup) {
  73.             createAccount(mEmail.getText().toString(), mPassword.getText().toString());
  74.  
  75.         } else if (i == R.id.btn_login) {
  76.             signIn(mEmail.getText().toString(), mPassword.getText().toString());
  77.         }
  78.     }
  79.  
  80.     private void updateUI(FirebaseUser user) {
  81.         if (user != null) {
  82.             //authenticated user
  83.         } else {
  84.             //returns to login
  85.             startActivity(new Intent(this, LoginActivity.class));
  86.         }
  87.     }
  88.  
  89.     private void createAccount(String email, String password) {
  90.         Log.e(TAG, "createAccount:" + email);
  91.         if (!validateForm(email, password)) {
  92.             return;
  93.         } else {
  94.             mProgressBar.setVisibility(View.VISIBLE);
  95.             mPleaseWait.setVisibility(View.VISIBLE);
  96.         }
  97.  
  98.  
  99.         mAuth.createUserWithEmailAndPassword(email, password)
  100.                 .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  101.                     @Override
  102.                     public void onComplete(@NonNull Task<AuthResult> task) {
  103.                         if (task.isSuccessful()) {
  104.                             Log.e(TAG, "createAccount: Success!");
  105.  
  106.                             // update UI with the signed-in user's information
  107.                             FirebaseUser user = mAuth.getCurrentUser();
  108.                             updateUI(user);
  109.                         } else {
  110.                             Log.e(TAG, "createAccount: Fail!", task.getException());
  111.                             Toast.makeText(getApplicationContext(), "Authentication failed!", Toast.LENGTH_SHORT).show();
  112.                             updateUI(null);
  113.                         }
  114.                     }
  115.                 });
  116.     }
  117.  
  118.     private void signIn(String email, String password) {
  119.         Log.e(TAG, "signIn:" + email);
  120.         if (!validateForm(email, password)) {
  121.             return;
  122.         } else {
  123.             mProgressBar.setVisibility(View.VISIBLE);
  124.             mPleaseWait.setVisibility(View.VISIBLE);
  125.         }
  126.  
  127.         mAuth.signInWithEmailAndPassword(email, password)
  128.                 .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  129.                     @Override
  130.                     public void onComplete(@NonNull Task<AuthResult> task) {
  131.                         if (task.isSuccessful()) {
  132.                             Log.e(TAG, "signIn: Success!");
  133.  
  134.                             // update UI with the signed-in user's information
  135.                             FirebaseUser user = mAuth.getCurrentUser();
  136.                             updateUI(user);
  137.                         } else {
  138.                             Log.e(TAG, "signIn: Fail!", task.getException());
  139.                             Toast.makeText(getApplicationContext(), "Authentication failed!", Toast.LENGTH_SHORT).show();
  140.                             updateUI(null);
  141.                         }
  142.  
  143.                         if (!task.isSuccessful()) {
  144.                             mPleaseWait.setText("Authentication failed!");
  145.                         }
  146.                     }
  147.                 });
  148.     }
  149.  
  150.     private boolean validateForm(String email, String password) {
  151.  
  152.         if (TextUtils.isEmpty(email)) {
  153.             Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
  154.             return false;
  155.         }
  156.  
  157.         if (TextUtils.isEmpty(password)) {
  158.             Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
  159.             return false;
  160.         }
  161.  
  162.         if (password.length() < 6) {
  163.             Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
  164.             return false;
  165.         }
  166.  
  167.         return true;
  168.     }
  169.  
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement