Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.05 KB | None | 0 0
  1.  
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.nfc.Tag;
  5. import android.support.annotation.NonNull;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.os.Bundle;
  8.  
  9. import android.util.Log;
  10. import android.util.Patterns;
  11. import android.view.View;
  12. import android.widget.EditText;
  13. import android.widget.ProgressBar;
  14. import android.widget.Toast;
  15.  
  16. import com.facebook.AccessToken;
  17. import com.facebook.CallbackManager;
  18. import com.facebook.FacebookCallback;
  19. import com.facebook.FacebookException;
  20. import com.facebook.FacebookSdk;
  21. import com.facebook.login.LoginResult;
  22. import com.facebook.login.widget.LoginButton;
  23. import com.google.android.gms.auth.api.Auth;
  24. import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
  25. import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
  26. import com.google.android.gms.auth.api.signin.GoogleSignInResult;
  27. import com.google.android.gms.common.ConnectionResult;
  28. import com.google.android.gms.common.SignInButton;
  29. import com.google.android.gms.common.api.GoogleApiClient;
  30. import com.google.android.gms.tasks.OnCompleteListener;
  31. import com.google.android.gms.tasks.Task;
  32. import com.google.firebase.auth.AuthCredential;
  33. import com.google.firebase.auth.AuthResult;
  34. import com.google.firebase.auth.FacebookAuthProvider;
  35. import com.google.firebase.auth.FirebaseAuth;
  36. import com.google.firebase.auth.FirebaseUser;
  37. import com.google.firebase.auth.GoogleAuthProvider;
  38.  
  39. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  40. FirebaseAuth mAuth;
  41. EditText editTextEmail, editTextPassword;
  42. ProgressBar progressBar;
  43. SignInButton gbutton;
  44. private final static int RC_SIGN_IN = 2;
  45. GoogleApiClient mGoogleApiClient;
  46. FirebaseAuth.AuthStateListener mAuthListener;
  47. LoginButton loginButtonFb;
  48. CallbackManager callbackManager;
  49.  
  50. private void signIn() {
  51. Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
  52. startActivityForResult(signInIntent, RC_SIGN_IN);
  53. }
  54. @Override
  55. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  56. super.onActivityResult(requestCode, resultCode, data);
  57. callbackManager.onActivityResult(requestCode,resultCode,data);
  58.  
  59. // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
  60. if (requestCode == RC_SIGN_IN) {
  61. GoogleSignInResult result= Auth.GoogleSignInApi.getSignInResultFromIntent(data);
  62. if (result.isSuccess()){
  63. GoogleSignInAccount account = result.getSignInAccount();
  64. firebaseAuthWithGoogle(account);
  65. }else{
  66. Toast.makeText(MainActivity.this,"Auth went wrong",Toast.LENGTH_SHORT).show();
  67. }
  68. }
  69. }
  70.  
  71. @Override
  72. protected void onCreate(Bundle savedInstanceState) {
  73. super.onCreate(savedInstanceState);
  74. FacebookSdk.sdkInitialize(getApplicationContext());
  75. setContentView(R.layout.activity_main);
  76.  
  77. mAuth= FirebaseAuth.getInstance();
  78. callbackManager = CallbackManager.Factory.create();
  79. gbutton = findViewById(R.id.googleBtn);
  80. editTextEmail = findViewById(R.id.editTextEmail);
  81. editTextPassword = findViewById(R.id.editTextPassword);
  82. progressBar=findViewById(R.id.progressbar);
  83.  
  84. findViewById(R.id.btnSignUp).setOnClickListener(this);
  85. findViewById(R.id.buttonRegister).setOnClickListener(this);
  86.  
  87. gbutton.setOnClickListener(new View.OnClickListener() {
  88. @Override
  89. public void onClick(View view) {
  90. signIn();
  91. }
  92. });
  93.  
  94. loginButtonFb=(LoginButton) findViewById(R.id.btnfacebook);
  95. loginButtonFb.setReadPermissions("email", "public_profile");
  96. loginButtonFb.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
  97. @Override
  98. public void onSuccess(LoginResult loginResult) {
  99. handleFacebookAccessToken(loginResult.getAccessToken());
  100. // startActivity(new Intent(MainActivity.this,ProfileActivity.class));
  101. }
  102.  
  103. @Override
  104. public void onCancel() {
  105. Toast.makeText(MainActivity.this, "sign in cancelled", Toast.LENGTH_LONG).show();
  106.  
  107. }
  108.  
  109. @Override
  110. public void onError(FacebookException error) {
  111.  
  112. Toast.makeText(MainActivity.this, "FacebookException error oh nooo!", Toast.LENGTH_LONG).show();
  113. }
  114. });
  115.  
  116.  
  117.  
  118. mAuthListener = new FirebaseAuth.AuthStateListener() {
  119. @Override
  120. public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  121. FirebaseUser user= firebaseAuth.getCurrentUser();
  122. if(AccessToken.getCurrentAccessToken() != null)
  123. Toast.makeText(MainActivity.this,AccessToken.getCurrentAccessToken().getExpires().toString(),Toast.LENGTH_SHORT).show();
  124.  
  125.  
  126. if(user != null){
  127. String email= user.getEmail();
  128. Toast.makeText(MainActivity.this,"succeesassss",Toast.LENGTH_SHORT).show();
  129. }
  130. }
  131. };
  132. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
  133.  
  134. .requestIdToken(getString(R.string.default_web_client_id))
  135. .requestEmail()
  136. .build();
  137.  
  138.  
  139.  
  140. mGoogleApiClient = new GoogleApiClient.Builder(this)
  141. .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
  142. @Override
  143. public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
  144. Toast.makeText(MainActivity.this,"something went wrong",Toast.LENGTH_SHORT).show();
  145. }
  146. })
  147. .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  148. .build();
  149.  
  150. }
  151. private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
  152. AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
  153. mAuth.signInWithCredential(credential)
  154. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  155. @Override
  156. public void onComplete(@NonNull Task<AuthResult> task) {
  157. if (task.isSuccessful()) {
  158. // Sign in success, update UI with the signed-in user's information
  159. Log.d("TAG", "signInWithCredential:success");
  160. FirebaseUser user = mAuth.getCurrentUser();
  161. String googlemail= user.getEmail();
  162. // updateUI(user);
  163. Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
  164. //so we dont go back to login activity
  165. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  166. startActivity(intent);
  167. } else {
  168. // If sign in fails, display a message to the user.
  169. Log.w("TAG", "signInWithCredential:failure", task.getException());
  170. Toast.makeText(MainActivity.this,"Auth Failed.",Toast.LENGTH_SHORT).show();
  171. // updateUI(null);
  172. }
  173.  
  174. // ...
  175. }
  176. });
  177.  
  178.  
  179. }
  180. @Override
  181. public void onStart() {
  182. super.onStart();
  183. // Check if user is signed in (non-null) and update UI accordingly.
  184. FirebaseUser currentUser = mAuth.getCurrentUser();
  185. // updateUI(currentUser);
  186. }
  187. private void handleFacebookAccessToken(AccessToken token) {
  188. // Log.d(TAG, "HandleFacebookAccessToken:"+token);
  189.  
  190. AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
  191. mAuth.signInWithCredential(credential)
  192. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  193. @Override
  194. public void onComplete(@NonNull Task<AuthResult> task) {
  195. if (!task.isSuccessful()) {
  196. Toast.makeText(MainActivity.this,"Auth failed",Toast.LENGTH_LONG ).show();
  197.  
  198. }
  199. }
  200. });
  201. }
  202.  
  203. private void userLogin(){
  204. String email = editTextEmail.getText().toString().trim();
  205. String password = editTextPassword.getText().toString().trim();
  206. if(email.isEmpty()){
  207. editTextEmail.setError("Email is required");
  208. editTextEmail.requestFocus();
  209. return;
  210. }
  211. if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
  212. editTextEmail.setError("Enter a valid Email Address");
  213. editTextEmail.requestFocus();
  214. return;
  215. }
  216. if(password.isEmpty()){
  217. editTextPassword.setError("Password is required");
  218. editTextPassword.requestFocus();
  219. return;
  220. }
  221. if(password.length()<6){
  222. editTextPassword.setError("Minimum length of password is 6 characters");
  223. editTextPassword.requestFocus();
  224. return;
  225. }
  226. progressBar.setVisibility(View.VISIBLE);
  227.  
  228.  
  229. mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
  230. @Override
  231. public void onComplete(@NonNull Task<AuthResult> task) {
  232. progressBar.setVisibility(View.GONE);
  233. if(task.isSuccessful()){
  234. FirebaseUser user = mAuth.getCurrentUser();
  235. String useremail= user.getEmail().toString();
  236.  
  237. //start 3rd part auth and compare strings with database here using the email
  238. /// call load user information to compare firebase email to 3rd party email
  239. Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
  240. //so we dont go back to login activity
  241. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  242. startActivity(intent);
  243. }else{
  244. Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_LONG).show();
  245. }
  246. }
  247. });
  248. }
  249. public void updateUI(FirebaseUser user){
  250. // String email = user.getEmail();
  251. // Toast.makeText(MainActivity.this,email,Toast.LENGTH_SHORT).show();
  252. startActivity(new Intent(MainActivity.this,ProfileActivity.class));
  253. }
  254.  
  255. @Override
  256. public void onClick(View view){
  257. switch (view.getId()){
  258. case R.id.btnSignUp:
  259. startActivity(new Intent(this, sign_up.class));
  260. break;
  261. case R.id.buttonRegister:
  262. userLogin();
  263. break;
  264. }
  265. }
  266.  
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement