Advertisement
Guest User

Log In Activity

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