From b3f05b3643854aa1ddfc5a296dc1c241cd805b6d Mon Sep 17 00:00:00 2001 From: davidsonpoole Date: Tue, 13 Nov 2018 02:49:50 -0500 Subject: [PATCH] made rough facebook login --- app/app.iml | 18 +++++ app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 21 ++++++ .../donatrix/controllers/LoginActivity.java | 72 +++++++++++++++++++ .../donatrix/controllers/WelcomeActivity.java | 29 ++++++++ app/src/main/res/layout/activity_login.xml | 14 +++- app/src/main/res/values/strings.xml | 3 + 7 files changed, 158 insertions(+), 1 deletion(-) diff --git a/app/app.iml b/app/app.iml index e2b3e59..bebe964 100644 --- a/app/app.iml +++ b/app/app.iml @@ -131,6 +131,8 @@ + + @@ -143,10 +145,12 @@ + + @@ -155,6 +159,7 @@ + @@ -164,34 +169,47 @@ + + + + + + + + + + + + + diff --git a/app/build.gradle b/app/build.gradle index 2f9be8e..7740e24 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,6 +40,8 @@ dependencies { implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.fasterxml.jackson.core:jackson-databind:2.7.0' + implementation 'com.facebook.android:facebook-android-sdk:4.38.1' + implementation 'com.squareup.picasso:picasso:2.71828' // https://mvnrepository.com/artifact/org.mockito/mockito-all testImplementation "org.mockito:mockito-core:2.19.0" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2a36ca8..e209a4c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -56,6 +56,27 @@ android:name=".controllers.MapsActivity" android:label="@string/title_activity_maps" /> + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/edu/gatech/donatrix/controllers/LoginActivity.java b/app/src/main/java/edu/gatech/donatrix/controllers/LoginActivity.java index bbb07ce..30d3cc4 100644 --- a/app/src/main/java/edu/gatech/donatrix/controllers/LoginActivity.java +++ b/app/src/main/java/edu/gatech/donatrix/controllers/LoginActivity.java @@ -3,12 +3,29 @@ import android.content.Intent; import android.os.Bundle; import android.os.StrictMode; +import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.TextView; import android.widget.Toast; +import com.facebook.AccessToken; +import com.facebook.CallbackManager; +import com.facebook.FacebookCallback; +import com.facebook.FacebookException; +import com.facebook.GraphRequest; +import com.facebook.GraphResponse; +import com.facebook.login.LoginResult; +import com.facebook.login.widget.LoginButton; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -20,6 +37,14 @@ public class LoginActivity extends AppCompatActivity { private EditText emailField; private EditText passwordField; + private CallbackManager callbackManager; + private ProgressBar mBar; + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + callbackManager.onActivityResult(requestCode, resultCode, data); + } @Override protected void onCreate(Bundle savedInstanceState) { @@ -31,6 +56,53 @@ protected void onCreate(Bundle savedInstanceState) { emailField = findViewById(R.id.loginEmailTextField); passwordField = findViewById(R.id.loginPasswordTextField); + + callbackManager = CallbackManager.Factory.create(); + + LoginButton loginButton = (LoginButton) findViewById(R.id.facebook_login_button); + loginButton.setReadPermissions(Arrays.asList("email")); + loginButton.registerCallback(callbackManager, new FacebookCallback() { + @Override + public void onSuccess(LoginResult loginResult) { + mBar = new ProgressBar(LoginActivity.this, null, android.R.attr.progressBarStyleLarge); + mBar.setVisibility(View.VISIBLE); + + GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), (object, response) -> { + mBar.setVisibility(View.INVISIBLE); + Log.d("response", response.toString()); + getData(object); + }); + + Bundle parameters = new Bundle(); + parameters.putString("fields", "email"); + request.setParameters(parameters); + request.executeAsync(); + Intent facebookLoginIntent = new Intent(LoginActivity.this, UserHomeActivity.class); + startActivity(facebookLoginIntent); + } + + @Override + public void onCancel() { + + } + + @Override + public void onError(FacebookException error) { + + } + }); + + //if already login + //if (AccessToken.getCurrentAccessToken() != null) { + // txtEmail.setText(AccessToken.getCurrentAccessToken().getUserId()); + //} + } + private void getData(JSONObject object) { + try { + emailField.setText(object.getString("email")); + } catch (JSONException e) { + e.printStackTrace(); + } } public void onLoginPressed(View view) { diff --git a/app/src/main/java/edu/gatech/donatrix/controllers/WelcomeActivity.java b/app/src/main/java/edu/gatech/donatrix/controllers/WelcomeActivity.java index 2216fe9..52f34af 100644 --- a/app/src/main/java/edu/gatech/donatrix/controllers/WelcomeActivity.java +++ b/app/src/main/java/edu/gatech/donatrix/controllers/WelcomeActivity.java @@ -1,14 +1,42 @@ package edu.gatech.donatrix.controllers; import android.content.Intent; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.Signature; +import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Base64; +import android.util.Log; import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.facebook.AccessToken; +import com.facebook.CallbackManager; +import com.facebook.FacebookCallback; +import com.facebook.FacebookException; +import com.facebook.FacebookSdk; +import com.facebook.GraphRequest; +import com.facebook.GraphResponse; +import com.facebook.appevents.AppEventsLogger; +import com.facebook.login.LoginManager; +import com.facebook.login.LoginResult; +import com.facebook.login.widget.LoginButton; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; import edu.gatech.donatrix.R; public class WelcomeActivity extends AppCompatActivity { + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -24,4 +52,5 @@ public void onRegisterPressed(View view) { Intent intent = new Intent(WelcomeActivity.this, RegisterActivity.class); startActivity(intent); } + } diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 0622c1a..4d974a7 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -68,6 +68,18 @@ app:layout_constraintHorizontal_bias="0.517" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.596" /> + app:layout_constraintVertical_bias="0.596"/> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8d2a4cf..1e3e371 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,4 +34,7 @@ Location List Short Description: TextView + 745512659126288 + fb745512659126288 +