Created
September 29, 2016 14:33
-
-
Save Felipe00/39b56a68dadb30be49afedd9b4c3dca9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package br.com.geifferson.today; | |
import android.content.Intent; | |
import android.content.pm.PackageInfo; | |
import android.content.pm.PackageManager; | |
import android.content.pm.Signature; | |
import android.os.Bundle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.util.Base64; | |
import android.util.Log; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import android.widget.Toast; | |
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 com.squareup.picasso.Picasso; | |
import org.json.JSONException; | |
import org.json.JSONObject; | |
import org.w3c.dom.Text; | |
import java.security.MessageDigest; | |
import java.security.NoSuchAlgorithmException; | |
import java.util.Arrays; | |
public class LoginActivity extends AppCompatActivity { | |
private LoginButton loginButton; | |
private CallbackManager callbackManager; | |
private ImageView fotoFacebook; | |
private TextView nomeFacebook; | |
private TextView emailFacebook; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_login); | |
fotoFacebook = (ImageView) findViewById(R.id.fotofacebook); | |
nomeFacebook = (TextView) findViewById(R.id.NomeDaPessoa); | |
emailFacebook = (TextView) findViewById(R.id.emailDaPessoa); | |
callbackManager = CallbackManager.Factory.create(); | |
loginButton = (LoginButton) findViewById(R.id.loginButton); | |
loginButton.setReadPermissions(Arrays.asList("email")); | |
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { | |
@Override | |
public void onSuccess(LoginResult loginResult) { | |
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() | |
{ | |
@Override | |
public void onCompleted(JSONObject object, GraphResponse response) | |
{ | |
Toast.makeText(LoginActivity.this, "Logado com Sucesso", Toast.LENGTH_SHORT).show(); | |
Log.d(">>>>",object.toString()); | |
try { | |
String NomeDaPessoa = object.getString("name"); | |
String emailDaPessoa = object.getString("email"); | |
JSONObject jsonFoto = object.getJSONObject("picture"); | |
JSONObject jsonFotoData = jsonFoto.getJSONObject("data"); | |
String photoUrl = jsonFotoData.getString("url"); | |
goMainScreen(NomeDaPessoa, photoUrl, emailDaPessoa); | |
} catch (JSONException e) { | |
e.printStackTrace(); | |
} | |
} | |
}); | |
Bundle parameters = new Bundle(); | |
parameters.putString("fields", "id,name,first_name,last_name,email,picture"); | |
graphRequest.setParameters(parameters); | |
graphRequest.executeAsync(); | |
} | |
@Override | |
public void onCancel() { | |
Toast.makeText(getApplicationContext(), R.string.cancel_login, Toast.LENGTH_SHORT).show(); | |
} | |
@Override | |
public void onError(FacebookException error) { | |
Toast.makeText(getApplicationContext(), R.string.error_login, Toast.LENGTH_SHORT).show(); | |
} | |
}); | |
} | |
private void goMainScreen(String nomeDaPessoa, String photoUrl, String emailDaPessoa) { | |
Intent intent = new Intent(this, MainActivity.class); | |
intent.putExtra("nome", nomeDaPessoa); | |
intent.putExtra("photoUrl",photoUrl); | |
intent.putExtra("emailDaPessoa",emailDaPessoa); | |
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); | |
startActivity(intent); | |
} | |
@Override | |
protected void onActivityResult(int requestCode, int resultCode, Intent data) { | |
super.onActivityResult(requestCode, resultCode, data); | |
callbackManager.onActivityResult(requestCode, resultCode, data); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- Adiciona esse textview no teu layout e posiciona ele onde tu quer --> | |
<Textview | |
android:id="@+id/emailDaPessoa" | |
android:width="wrap_content" | |
android:height="wrap_content" /> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package br.com.geifferson.today; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.view.View; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import android.widget.Toast; | |
import com.facebook.AccessToken; | |
import com.facebook.login.LoginManager; | |
import com.squareup.picasso.Picasso; | |
public class MainActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
TextView nome = (TextView) findViewById(R.id.NomeDaPessoa); | |
ImageView imagem = (ImageView) findViewById(R.id.fotofacebook); | |
TextView email = (TextView) findViewById(R.id.emailDaPessoa); | |
if (getIntent().hasExtra("nome")){ | |
nome.setText(getIntent().getStringExtra("nome")); | |
email.setText(getIntent().getStringExtra("emailDaPessoa")); | |
Picasso.with(MainActivity.this).load(getIntent().getStringExtra("photoUrl")) | |
.into(imagem); | |
} | |
if (AccessToken.getCurrentAccessToken() == null) { | |
goLoginScreen(); | |
} | |
} | |
private void goLoginScreen() { | |
Intent intent = new Intent(this, LoginActivity.class); | |
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); | |
startActivity(intent); | |
} | |
public void link(View v) { | |
startActivity(new Intent(this, LinkActivity.class)); | |
} | |
public void logout(View view) { | |
LoginManager.getInstance().logOut(); | |
Toast.makeText(MainActivity.this, "Encerrado com Sucesso", Toast.LENGTH_SHORT).show(); | |
goLoginScreen(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment