Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eu.owniidevelopment.quizwithfriends;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import org.apache.http.NameValuePair;
- import org.apache.http.message.BasicNameValuePair;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.facebook.Response;
- import com.facebook.Session;
- import com.facebook.SessionState;
- import com.facebook.UiLifecycleHelper;
- import com.facebook.model.GraphUser;
- import com.facebook.widget.LoginButton;
- import eu.owniidevelopment.quizwithfriends.objects.Downloader;
- import eu.owniidevelopment.quizwithfriends.objects.Me;
- import eu.owniidevelopment.quizwithfriends.statics.MD5;
- public class AccountActivity extends Activity implements View.OnClickListener {
- EditText etEmail, etPassword;
- Button bLogin, bLogout;
- TextView tvWelcomeRegister, tvRegister, tvForgotPassword;
- Me me;
- UiLifecycleHelper uiHelper;
- LoginButton bFacebookLogin;
- Session facebookSession;
- Session.StatusCallback callback = new Session.StatusCallback() {
- @Override
- public void call(Session session, SessionState state, Exception exception) {
- onSessionStateChange(session, state, exception);
- }
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_account);
- me = new Me(this);
- uiHelper = new UiLifecycleHelper(this, callback);
- uiHelper.onCreate(savedInstanceState);
- etEmail = (EditText) findViewById(R.id.etEmail);
- etPassword = (EditText) findViewById(R.id.etPassword);
- bLogin = (Button) findViewById(R.id.bLogin);
- bLogout = (Button)findViewById(R.id.bLogout);
- tvRegister = (TextView)findViewById(R.id.tvRegister);
- tvWelcomeRegister = (TextView)findViewById(R.id.tvWelcomeRegister);
- tvForgotPassword = (TextView)findViewById(R.id.tvForgotPassword);
- bFacebookLogin = (LoginButton) findViewById(R.id.authButton);
- //Facebook Login Button
- bFacebookLogin.setReadPermissions(Arrays.asList("email","public_profile","read_friendlists","user_friends "));
- bLogin.setOnClickListener(this);
- tvRegister.setOnClickListener(this);
- tvForgotPassword.setOnClickListener(this);
- bLogout.setOnClickListener(this);
- getActionBar().setDisplayHomeAsUpEnabled(true);
- if(me.isLoggedIn())
- {
- etEmail.setVisibility(View.GONE);
- etPassword.setVisibility(View.GONE);
- bLogin.setVisibility(View.GONE);
- tvRegister.setVisibility(View.GONE);
- tvForgotPassword.setVisibility(View.GONE);
- bLogout.setVisibility(View.VISIBLE);
- tvWelcomeRegister.setText("Willst du dich wirklich abmelden?");
- }else{
- bLogout.setVisibility(View.GONE);
- }
- }
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // LoginButton is clicked
- if( bLogin.getId() == v.getId() )
- {
- if(etEmail.getText().toString().length() > 0 && etPassword.getText().toString().length() > 0){
- List<NameValuePair> post = new ArrayList<NameValuePair>();
- post.add(new BasicNameValuePair("email", etEmail.getText().toString()));
- try {
- post.add(new BasicNameValuePair("password", MD5.hash(etPassword.getText().toString())));
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- Downloader.download(this, "login", post, new Downloader.DownloadListener() {
- @Override
- public void completed(JSONObject json) throws JSONException {
- if(json.getBoolean("succeeded")){
- int userid = json.getInt("userid");
- String username = json.getString("username");
- Toast.makeText(AccountActivity.this, "Eingeloggt", Toast.LENGTH_LONG).show();
- me.logIn();
- me.setId(userid);
- me.setUsername(username);
- finish();
- }
- else{
- Toast.makeText(AccountActivity.this, "Falsche Email oder falsches Passwort", Toast.LENGTH_LONG).show();
- }
- }
- });
- }
- }
- // Register Text is clicked
- if( tvRegister.getId() == v.getId() )
- {
- Intent registerActivity = new Intent(this, RegisterActivity.class);
- startActivity(registerActivity);
- }
- // Forgot password Text is clicked
- if( tvForgotPassword.getId() == v.getId() )
- {
- Intent resetPasswordActivity = new Intent(this, ResetPasswordActivity.class);
- startActivity(resetPasswordActivity);
- }
- // Button Logout is clicked
- if( bLogout.getId() == v.getId() )
- {
- me.logout();
- }
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch(item.getItemId())
- {
- case android.R.id.home:
- finish();
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- private void onSessionStateChange(Session session, SessionState state, Exception exception) {
- if (state.isOpened()) {
- facebookSession = session;
- if( !me.isFacebookLoggedIn() )
- {
- final ProgressDialog dialog = ProgressDialog.show(this, "Laden", "Anmelden...");
- com.facebook.Request request = com.facebook.Request.newMeRequest(facebookSession, new com.facebook.Request.GraphUserCallback() {
- @Override
- public void onCompleted(GraphUser user, Response response) {
- if( facebookSession == Session.getActiveSession() )
- {
- if( user != null )
- {
- final String user_id = user.getId();
- Log.i("custom", "facebook ID: " + user_id);
- final String user_name = user.getName();
- List<NameValuePair> post = new ArrayList<NameValuePair>();
- post.add(new BasicNameValuePair("fbID", user_id));
- post.add(new BasicNameValuePair("userid", "" + me.getId()));
- post.add(new BasicNameValuePair("fbName", user_name));
- Downloader.download(AccountActivity.this, "fbLogin", post, new Downloader.DownloadListener() {
- @Override
- public void completed(JSONObject json) throws JSONException {
- if( json.getBoolean("succeeded") )
- {
- me.logInFacebook();
- }
- else
- {
- Toast.makeText(AccountActivity.this, "Fehlgeschlagen", Toast.LENGTH_SHORT).show();
- facebookSession.close();
- }
- dialog.dismiss();
- }
- });
- }
- }
- }
- });
- com.facebook.Request.executeBatchAsync(request);
- }
- } else if (state.isClosed()) {
- if( me.isFacebookLoggedIn() )
- {
- final ProgressDialog dialog = ProgressDialog.show(this, "Laden", "Abmelden...");
- List<NameValuePair> post = new ArrayList<NameValuePair>();
- post.add(new BasicNameValuePair("userid", ""+me.getId()));
- Downloader.download(this, "fbLogout", post, new Downloader.DownloadListener() {
- @Override
- public void completed(JSONObject json) throws JSONException {
- dialog.dismiss();
- me.logOutFacebook();
- }
- });
- }
- }
- }
- @Override
- public void onResume() {
- super.onResume();
- Session session = Session.getActiveSession();
- if (session != null &&
- (session.isOpened() || session.isClosed()) ) {
- onSessionStateChange(session, session.getState(), null);
- }
- uiHelper.onResume();
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- uiHelper.onActivityResult(requestCode, resultCode, data);
- }
- @Override
- public void onPause() {
- super.onPause();
- uiHelper.onPause();
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- uiHelper.onDestroy();
- }
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- uiHelper.onSaveInstanceState(outState);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement