Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package callme.customer.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.annotation.StringRes;
- import android.support.v7.app.AppCompatActivity;
- import android.text.TextUtils;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ProgressBar;
- import android.widget.Toast;
- import com.facebook.FacebookSdk;
- import com.facebook.AccessToken;
- import com.facebook.CallbackManager;
- import com.facebook.FacebookCallback;
- import com.facebook.FacebookException;
- import com.facebook.login.LoginResult;
- import com.facebook.login.widget.LoginButton;
- import com.google.android.gms.auth.api.Auth;
- import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
- import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
- import com.google.android.gms.auth.api.signin.GoogleSignInResult;
- import com.google.android.gms.common.ConnectionResult;
- import com.google.android.gms.common.SignInButton;
- import com.google.android.gms.common.api.GoogleApiClient;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthCredential;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FacebookAuthProvider;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.auth.GoogleAuthProvider;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
- import callme.customer.Helper.SessionManager;
- import callme.customer.R;
- public class LogInActivity extends AppCompatActivity {
- private static final String TAG = "Login Activity";
- private EditText inputEmail, inputPassword;
- private FirebaseAuth mAuth;
- private FirebaseAuth.AuthStateListener mAuthListener;
- private ProgressBar progressBar;
- private Button btnSignup, btnLogin, btnReset;
- private SignInButton BtnLoginGoogle;
- private LoginButton BtnLoginFacebook;
- private static final int RC_SIGN_IN = 0;
- private GoogleApiClient mGoogleApiClient;
- CallbackManager callbackManager;
- DatabaseReference dr;
- SessionManager sm;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- FacebookSdk.sdkInitialize(getApplicationContext());
- setContentView(R.layout.activity_log_in);
- sm = new SessionManager(getApplicationContext());
- BtnLoginGoogle = (SignInButton) findViewById(R.id.btn_login_google);
- inputEmail = (EditText) findViewById(R.id.email);
- inputPassword = (EditText) findViewById(R.id.password);
- progressBar = (ProgressBar) findViewById(R.id.progressBar);
- btnSignup = (Button) findViewById(R.id.btn_signup);
- btnLogin = (Button) findViewById(R.id.btn_login);
- btnReset = (Button) findViewById(R.id.btn_reset_password);
- //Get Firebase mAuth instance
- mAuth = FirebaseAuth.getInstance();
- // FirebaseAuth.getInstance().signOut();
- dr = FirebaseDatabase.getInstance().getReference("User");
- mAuthListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- FirebaseUser user = mAuth.getCurrentUser();
- if (user != null) {
- // User is signed in
- Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
- String email = user.getEmail();
- sm.setEmail(email);
- getInfoFromDatabase();
- startActivity(new Intent(LogInActivity.this,MainActivity.class));
- finish();
- } else {
- // User is signed out
- Log.d(TAG, "onAuthStateChanged:signed_out");
- }
- // ...
- }
- };
- //Facebook
- callbackManager = CallbackManager.Factory.create();
- /* LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
- @Override
- public void onSuccess(LoginResult loginResult) {
- }
- @Override
- public void onCancel() {
- }
- @Override
- public void onError(FacebookException error) {
- }
- });*/
- /* private void handleFacebookAccessToken(AccessToken token) {
- Log.d(TAG, "handleFacebookAccessToken:" + token);
- AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
- mAuth.signInWithCredential(credential)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- // Sign in success, update UI with the signed-in user's information
- Log.d(TAG, "signInWithCredential:success");
- FirebaseUser user = mAuth.getCurrentUser();
- updateUI(user);
- } else {
- // If sign in fails, display a message to the user.
- Log.w(TAG, "signInWithCredential:failure", task.getException());
- Toast.makeText(FacebookLoginActivity.this, "Authentication failed.",
- Toast.LENGTH_SHORT).show();
- updateUI(null);
- }
- // ...
- }
- });
- }*/
- // Configure Google Sign In
- GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
- .requestIdToken(getString(R.string.default_web_client_id))
- .requestEmail()
- .build();
- mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext())
- .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
- @Override
- public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
- Toast.makeText(LogInActivity.this,"You Got an Error",Toast.LENGTH_LONG).show();
- }
- })
- .addApi(Auth.GOOGLE_SIGN_IN_API,gso)
- .build();
- BtnLoginGoogle.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- signIn();
- }
- });
- // if (mAuth.getCurrentUser() != null) {
- // startActivity(new Intent(Login.this, MainActivity.class));
- // finish();
- // }
- // //Get Firebase mAuth instance
- // mAuth = FirebaseAuth.getInstance();
- btnSignup.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(LogInActivity.this, SignUpActivity.class));
- }
- });
- btnReset.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(LogInActivity.this, ResetPassword.class));
- }
- });
- btnLogin.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String email = inputEmail.getText().toString();
- final String password = inputPassword.getText().toString();
- if (TextUtils.isEmpty(email)) {
- Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
- return;
- }
- if (TextUtils.isEmpty(password)) {
- Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
- return;
- }
- progressBar.setVisibility(View.VISIBLE);
- //authenticate user
- mAuth.signInWithEmailAndPassword(email, password)
- .addOnCompleteListener(LogInActivity.this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- // If sign in fails, display a message to the user. If sign in succeeds
- // the mAuth state listener will be notified and logic to handle the
- // signed in user can be handled in the listener.
- progressBar.setVisibility(View.GONE);
- if (!task.isSuccessful()) {
- // there was an error
- if (password.length() < 6) {
- inputPassword.setError(getString(R.string.minimum_password));
- } else {
- Toast.makeText(LogInActivity.this, getString(R.string.auth_failed), Toast.LENGTH_LONG).show();
- }
- } else {
- // onStart();
- // Intent pindah = new Intent(Login.this,SignUp.class);
- // startActivity(pindah);
- // finish();
- }
- }
- });
- }
- });
- }
- private void getInfoFromDatabase() {
- dr.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- for (DataSnapshot mm : dataSnapshot.getChildren()) {
- if (mm.child("email").getValue().equals(sm.getEmail())){
- String username = mm.child("username").getValue().toString();
- sm.setNama(username);
- String topup = mm.child("saldo").getValue().toString();
- sm.setValueTopUp(topup);
- String photo = mm.child("photo").getValue().toString();
- sm.setPhoto(photo);
- String keyU = mm.getKey();
- sm.setKeyUser(keyU);
- }
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- private void signIn() {
- Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
- startActivityForResult(signInIntent, RC_SIGN_IN);
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- //Login Google
- super.onActivityResult(requestCode, resultCode, data);
- //Login facebook
- callbackManager.onActivityResult(requestCode, resultCode, data);
- // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
- if (requestCode == RC_SIGN_IN) {
- GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
- if (result.isSuccess()) {
- // Google Sign In was successful, authenticate with Firebase
- GoogleSignInAccount account = result.getSignInAccount();
- firebaseAuthWithGoogle(account);
- } else {
- // Google Sign In failed, update UI appropriately
- // ...
- }
- }
- }
- private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
- Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId());
- AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
- mAuth.signInWithCredential(credential)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
- // If sign in fails, display a message to the user. If sign in succeeds
- // the mAuth state listener will be notified and logic to handle the
- // signed in user can be handled in the listener.
- if (!task.isSuccessful()) {
- Log.w(TAG, "signInWithCredential", task.getException());
- Toast.makeText(LogInActivity.this, "Authentication failed.",
- Toast.LENGTH_SHORT).show();
- }
- // ...
- }
- });
- }
- @Override
- public void onStart() {
- super.onStart();
- mAuth.addAuthStateListener(mAuthListener);
- }
- @Override
- public void onStop() {
- super.onStop();
- if (mAuthListener != null) {
- mAuth.removeAuthStateListener(mAuthListener);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement