Advertisement
callmeapp

Login

May 2nd, 2017
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.96 KB | None | 0 0
  1. package callme.asilahsalma.customer;
  2.  
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.support.annotation.NonNull;
  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.Button;
  13. import android.widget.EditText;
  14. import android.widget.ProgressBar;
  15. import android.widget.Toast;
  16.  
  17. import com.facebook.AccessToken;
  18. import com.facebook.CallbackManager;
  19. import com.facebook.FacebookCallback;
  20. import com.facebook.FacebookException;
  21. import com.facebook.login.LoginManager;
  22. import com.facebook.login.LoginResult;
  23. import com.facebook.login.widget.LoginButton;
  24. import com.google.android.gms.auth.api.Auth;
  25. import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
  26. import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
  27. import com.google.android.gms.auth.api.signin.GoogleSignInResult;
  28. import com.google.android.gms.common.ConnectionResult;
  29. import com.google.android.gms.common.SignInButton;
  30. import com.google.android.gms.common.api.GoogleApiClient;
  31. import com.google.android.gms.tasks.OnCompleteListener;
  32. import com.google.android.gms.tasks.Task;
  33. import com.google.firebase.auth.AuthCredential;
  34. import com.google.firebase.auth.AuthResult;
  35. import com.google.firebase.auth.FacebookAuthProvider;
  36. import com.google.firebase.auth.FirebaseAuth;
  37. import com.google.firebase.auth.FirebaseUser;
  38. import com.google.firebase.auth.GoogleAuthProvider;
  39. import com.facebook.FacebookSdk;
  40.  
  41. public class Login extends AppCompatActivity {
  42.  
  43.     private static final String TAG = "Login Activity";
  44.     private EditText inputEmail, inputPassword;
  45.     private FirebaseAuth mAuth;
  46.     private FirebaseAuth.AuthStateListener mAuthListener;
  47.     private ProgressBar progressBar;
  48.     private Button btnSignup, btnLogin, btnReset;
  49.  
  50.     private SignInButton BtnLoginGoogle;
  51.     private LoginButton BtnLoginFacebook;
  52.     private static final int RC_SIGN_IN = 0;
  53.     private GoogleApiClient mGoogleApiClient;
  54.     CallbackManager callbackManager;
  55.  
  56.     @Override
  57.     protected void onCreate(Bundle savedInstanceState) {
  58.         super.onCreate(savedInstanceState);
  59.        // FacebookSdk.sdkInitialize(getApplicationContext());
  60.         // set the view now
  61.         setContentView(R.layout.activity_login);
  62.  
  63.         BtnLoginGoogle = (SignInButton) findViewById(R.id.btn_login_google);
  64.         BtnLoginFacebook =(LoginButton) findViewById(R.id.btn_login_facebook);
  65.         inputEmail = (EditText) findViewById(R.id.email);
  66.         inputPassword = (EditText) findViewById(R.id.password);
  67.         progressBar = (ProgressBar) findViewById(R.id.progressBar);
  68.         btnSignup = (Button) findViewById(R.id.btn_signup);
  69.         btnLogin = (Button) findViewById(R.id.btn_login);
  70.         btnReset = (Button) findViewById(R.id.btn_reset_password);
  71.  
  72.         //Get Firebase mAuth instance
  73.         mAuth = FirebaseAuth.getInstance();
  74.      //   FirebaseAuth.getInstance().signOut();
  75.  
  76.      //   mAuth = FirebaseAuth.getInstance();
  77.  
  78.         mAuthListener = new FirebaseAuth.AuthStateListener() {
  79.             @Override
  80.             public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  81.  
  82.                 FirebaseUser user = mAuth.getCurrentUser();
  83.                 if (user != null) {
  84.                     // User is signed in
  85.                     Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
  86.                //     String name = user.getDisplayName();
  87.                 //    String email = user.getEmail();
  88.                //     Uri photourl = user.getPhotoUrl();
  89.                 //    String uid = user.getUid();
  90.                     startActivity(new Intent(Login.this,FoodList_content.class));
  91.                     finish();
  92.                 } else {
  93.                     // User is signed out
  94.                     Log.d(TAG, "onAuthStateChanged:signed_out");
  95.                 }
  96.                 // ...
  97.             }
  98.         };
  99.  
  100.         //Facebook
  101.         callbackManager = CallbackManager.Factory.create();
  102.  
  103.      /*   LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
  104.             @Override
  105.             public void onSuccess(LoginResult loginResult) {
  106.  
  107.             }
  108.  
  109.             @Override
  110.             public void onCancel() {
  111.  
  112.             }
  113.  
  114.             @Override
  115.             public void onError(FacebookException error) {
  116.  
  117.             }
  118.         });*/
  119.  
  120.      /*   private void handleFacebookAccessToken(AccessToken token) {
  121.             Log.d(TAG, "handleFacebookAccessToken:" + token);
  122.  
  123.             AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
  124.             mAuth.signInWithCredential(credential)
  125.                     .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  126.                         @Override
  127.                         public void onComplete(@NonNull Task<AuthResult> task) {
  128.                             if (task.isSuccessful()) {
  129.                                 // Sign in success, update UI with the signed-in user's information
  130.                                 Log.d(TAG, "signInWithCredential:success");
  131.                                 FirebaseUser user = mAuth.getCurrentUser();
  132.                                 updateUI(user);
  133.                             } else {
  134.                                 // If sign in fails, display a message to the user.
  135.                                 Log.w(TAG, "signInWithCredential:failure", task.getException());
  136.                                 Toast.makeText(FacebookLoginActivity.this, "Authentication failed.",
  137.                                         Toast.LENGTH_SHORT).show();
  138.                                 updateUI(null);
  139.                             }
  140.  
  141.                             // ...
  142.                         }
  143.                     });
  144.         }*/
  145.         BtnLoginFacebook.setReadPermissions("email","public_profile");
  146.         BtnLoginFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
  147.             @Override
  148.             public void onSuccess(LoginResult loginResult) {
  149.               //  Toast.makeText(Login.this,"Login Facebook success\n"+ loginResult.getAccessToken().getUserId() ,Toast.LENGTH_LONG).show();
  150.             Log.d(TAG,"facebook:onSuccess" + loginResult);
  151.                 handleFacebookAccessToken(loginResult.getAccessToken());
  152.             }
  153.  
  154.             @Override
  155.             public void onCancel() {
  156.                 Toast.makeText(Login.this,"Login Facebook canceled",Toast.LENGTH_LONG).show();
  157.             }
  158.  
  159.             @Override
  160.             public void onError(FacebookException error) {
  161.                 Toast.makeText(Login.this,"Error Login",Toast.LENGTH_LONG).show();
  162.             }
  163.         });
  164.  
  165.  
  166.  
  167.         // Configure Google Sign In
  168.         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
  169.                 .requestIdToken(getString(R.string.default_web_client_id))
  170.                 .requestEmail()
  171.                 .build();
  172.  
  173.  
  174.         mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext())
  175.                 .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
  176.                     @Override
  177.                     public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
  178.  
  179.                         Toast.makeText(Login.this,"You Got an Error",Toast.LENGTH_LONG).show();
  180.                     }
  181.                 })
  182.                 .addApi(Auth.GOOGLE_SIGN_IN_API,gso)
  183.                 .build();
  184.  
  185.         BtnLoginGoogle.setOnClickListener(new View.OnClickListener() {
  186.             @Override
  187.             public void onClick(View v) {
  188.  
  189.                 signIn();
  190.             }
  191.         });
  192.  
  193.  
  194.  
  195.      //   if (mAuth.getCurrentUser() != null) {
  196.      //       startActivity(new Intent(Login.this, MainActivity.class));
  197.      //       finish();
  198.      //   }
  199.  
  200.  
  201.  
  202.  
  203.       //  //Get Firebase mAuth instance
  204.        // mAuth = FirebaseAuth.getInstance();
  205.  
  206.         btnSignup.setOnClickListener(new View.OnClickListener() {
  207.             @Override
  208.             public void onClick(View v) {
  209.                 startActivity(new Intent(Login.this, SignUp.class));
  210.             }
  211.         });
  212.  
  213.         btnReset.setOnClickListener(new View.OnClickListener() {
  214.             @Override
  215.             public void onClick(View v) {
  216.                 startActivity(new Intent(Login.this, ResetPassword.class));
  217.             }
  218.         });
  219.  
  220.         btnLogin.setOnClickListener(new View.OnClickListener() {
  221.             @Override
  222.             public void onClick(View v) {
  223.                 String email = inputEmail.getText().toString();
  224.                 final String password = inputPassword.getText().toString();
  225.  
  226.                 if (TextUtils.isEmpty(email)) {
  227.                     Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
  228.                     return;
  229.                 }
  230.  
  231.                 if (TextUtils.isEmpty(password)) {
  232.                     Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
  233.                     return;
  234.                 }
  235.  
  236.                 progressBar.setVisibility(View.VISIBLE);
  237.  
  238.                 //authenticate user
  239.                 mAuth.signInWithEmailAndPassword(email, password)
  240.                         .addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
  241.                             @Override
  242.                             public void onComplete(@NonNull Task<AuthResult> task) {
  243.                                 // If sign in fails, display a message to the user. If sign in succeeds
  244.                                 // the mAuth state listener will be notified and logic to handle the
  245.                                 // signed in user can be handled in the listener.
  246.                                 progressBar.setVisibility(View.GONE);
  247.                                 if (!task.isSuccessful()) {
  248.                                     // there was an error
  249.                                     if (password.length() < 6) {
  250.                                         inputPassword.setError(getString(R.string.minimum_password));
  251.                                     } else {
  252.                                         Toast.makeText(Login.this, getString(R.string.auth_failed), Toast.LENGTH_LONG).show();
  253.                                     }
  254.                                 } else {
  255.                                  //   onStart();
  256.                                //     Intent pindah = new Intent(Login.this,SignUp.class);
  257.                                //     startActivity(pindah);
  258.                                //     finish();
  259.                                 }
  260.                             }
  261.                         });
  262.  
  263.  
  264.  
  265.  
  266.             }
  267.         });
  268.     }
  269.  
  270.     private void handleFacebookAccessToken(AccessToken accessToken) {
  271.         AuthCredential credential = FacebookAuthProvider.getCredential(accessToken.getToken());
  272.         mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  273.             @Override
  274.             public void onComplete(@NonNull Task<AuthResult> task) {
  275.                 if (!task.isSuccessful())
  276.                 {
  277.                     Toast.makeText(getApplicationContext(),"firebase_error_login",Toast.LENGTH_LONG).show();
  278.                 }
  279.             }
  280.         });
  281.     }
  282.  
  283.  
  284.     private void signIn() {
  285.         Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
  286.         startActivityForResult(signInIntent, RC_SIGN_IN);
  287.     }
  288.     @Override
  289.     public void onActivityResult(int requestCode, int resultCode, Intent data) {
  290.         //Login Google
  291.         super.onActivityResult(requestCode, resultCode, data);
  292.         //Login facebook
  293.         callbackManager.onActivityResult(requestCode, resultCode, data);
  294.         // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
  295.         if (requestCode == RC_SIGN_IN) {
  296.             GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
  297.             if (result.isSuccess()) {
  298.                 // Google Sign In was successful, authenticate with Firebase
  299.                 GoogleSignInAccount account = result.getSignInAccount();
  300.                 firebaseAuthWithGoogle(account);
  301.             } else {
  302.                 // Google Sign In failed, update UI appropriately
  303.                 // ...
  304.             }
  305.         }
  306.     }
  307.  
  308.     private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
  309.         Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId());
  310.         AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
  311.         mAuth.signInWithCredential(credential)
  312.                 .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  313.                     @Override
  314.                     public void onComplete(@NonNull Task<AuthResult> task) {
  315.                         Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
  316.  
  317.                         // If sign in fails, display a message to the user. If sign in succeeds
  318.                         // the mAuth state listener will be notified and logic to handle the
  319.                         // signed in user can be handled in the listener.
  320.                         if (!task.isSuccessful()) {
  321.                             Log.w(TAG, "signInWithCredential", task.getException());
  322.                             Toast.makeText(Login.this, "Authentication failed.",
  323.                                     Toast.LENGTH_SHORT).show();
  324.                         }
  325.                         // ...
  326.                     }
  327.                 });
  328.     }
  329.  
  330.  
  331.     @Override
  332.     public void onStart() {
  333.         super.onStart();
  334.         mAuth.addAuthStateListener(mAuthListener);
  335.     }
  336.  
  337.     @Override
  338.     public void onStop() {
  339.         super.onStop();
  340.         if (mAuthListener != null) {
  341.             mAuth.removeAuthStateListener(mAuthListener);
  342.         }
  343.     }
  344.  
  345.  
  346. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement