Advertisement
Guest User

Untitled

a guest
Jul 24th, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.32 KB | None | 0 0
  1. package eu.owniidevelopment.quizwithfriends;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6.  
  7. import org.apache.http.NameValuePair;
  8. import org.apache.http.message.BasicNameValuePair;
  9. import org.json.JSONException;
  10. import org.json.JSONObject;
  11.  
  12. import android.app.Activity;
  13. import android.app.ProgressDialog;
  14. import android.content.Intent;
  15. import android.os.Bundle;
  16. import android.util.Log;
  17. import android.view.MenuItem;
  18. import android.view.View;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.TextView;
  22. import android.widget.Toast;
  23.  
  24. import com.facebook.Response;
  25. import com.facebook.Session;
  26. import com.facebook.SessionState;
  27. import com.facebook.UiLifecycleHelper;
  28. import com.facebook.model.GraphUser;
  29. import com.facebook.widget.LoginButton;
  30.  
  31. import eu.owniidevelopment.quizwithfriends.objects.Downloader;
  32. import eu.owniidevelopment.quizwithfriends.objects.Me;
  33. import eu.owniidevelopment.quizwithfriends.statics.MD5;
  34.  
  35. public class AccountActivity extends Activity implements View.OnClickListener {
  36.  
  37.     EditText etEmail, etPassword;
  38.     Button bLogin, bLogout;
  39.     TextView tvWelcomeRegister, tvRegister, tvForgotPassword;
  40.     Me me;
  41.     UiLifecycleHelper uiHelper;
  42.     LoginButton bFacebookLogin;
  43.     Session facebookSession;
  44.     Session.StatusCallback callback = new Session.StatusCallback() {
  45.         @Override
  46.         public void call(Session session, SessionState state, Exception exception) {
  47.             onSessionStateChange(session, state, exception);
  48.         }
  49.     };
  50.  
  51.     @Override
  52.     protected void onCreate(Bundle savedInstanceState) {
  53.         super.onCreate(savedInstanceState);
  54.         setContentView(R.layout.activity_account);
  55.                
  56.         me = new Me(this);     
  57.        
  58.         uiHelper = new UiLifecycleHelper(this, callback);
  59.         uiHelper.onCreate(savedInstanceState);
  60.  
  61.         etEmail = (EditText) findViewById(R.id.etEmail);
  62.         etPassword = (EditText) findViewById(R.id.etPassword);
  63.         bLogin = (Button) findViewById(R.id.bLogin);
  64.         bLogout = (Button)findViewById(R.id.bLogout);
  65.         tvRegister = (TextView)findViewById(R.id.tvRegister);
  66.         tvWelcomeRegister = (TextView)findViewById(R.id.tvWelcomeRegister);
  67.         tvForgotPassword = (TextView)findViewById(R.id.tvForgotPassword);
  68.         bFacebookLogin   = (LoginButton) findViewById(R.id.authButton);
  69.        
  70.         //Facebook Login Button
  71.         bFacebookLogin.setReadPermissions(Arrays.asList("email","public_profile","read_friendlists","user_friends "));
  72.        
  73.         bLogin.setOnClickListener(this);
  74.         tvRegister.setOnClickListener(this);
  75.         tvForgotPassword.setOnClickListener(this);
  76.         bLogout.setOnClickListener(this);
  77.        
  78.         getActionBar().setDisplayHomeAsUpEnabled(true);
  79.        
  80.         if(me.isLoggedIn())
  81.         {
  82.             etEmail.setVisibility(View.GONE);
  83.             etPassword.setVisibility(View.GONE);
  84.             bLogin.setVisibility(View.GONE);
  85.             tvRegister.setVisibility(View.GONE);
  86.             tvForgotPassword.setVisibility(View.GONE);
  87.             bLogout.setVisibility(View.VISIBLE);
  88.             tvWelcomeRegister.setText("Willst du dich wirklich abmelden?");
  89.            
  90.         }else{
  91.  
  92.             bLogout.setVisibility(View.GONE);
  93.         }
  94.        
  95.  
  96.     }
  97.    
  98.  
  99.  
  100.     @Override
  101.     public void onClick(View v) {
  102.         // TODO Auto-generated method stub
  103.        
  104.         // LoginButton is clicked
  105.         if( bLogin.getId() == v.getId() )
  106.         {
  107.             if(etEmail.getText().toString().length() > 0 && etPassword.getText().toString().length() > 0){
  108.                
  109.  
  110.                
  111.                 List<NameValuePair> post = new ArrayList<NameValuePair>();
  112.                
  113.                 post.add(new BasicNameValuePair("email", etEmail.getText().toString()));
  114.                 try {
  115.                     post.add(new BasicNameValuePair("password", MD5.hash(etPassword.getText().toString())));
  116.                 } catch (Exception e) {
  117.                     // TODO Auto-generated catch block
  118.                     e.printStackTrace();
  119.                 }
  120.                
  121.                 Downloader.download(this, "login", post, new Downloader.DownloadListener() {
  122.                    
  123.                     @Override
  124.                     public void completed(JSONObject json) throws JSONException {
  125.                        
  126.                         if(json.getBoolean("succeeded")){
  127.                             int userid = json.getInt("userid");
  128.                             String username = json.getString("username");
  129.                             Toast.makeText(AccountActivity.this, "Eingeloggt", Toast.LENGTH_LONG).show();
  130.                             me.logIn();
  131.                             me.setId(userid);
  132.                             me.setUsername(username);
  133.  
  134.                             finish();
  135.                            
  136.                         }
  137.                         else{
  138.                             Toast.makeText(AccountActivity.this, "Falsche Email oder falsches Passwort", Toast.LENGTH_LONG).show();
  139.                         }
  140.                        
  141.                     }
  142.                 });
  143.             }          
  144.         }
  145.        
  146.         // Register Text is clicked
  147.         if( tvRegister.getId() == v.getId() )
  148.         {
  149.             Intent registerActivity = new Intent(this, RegisterActivity.class);
  150.             startActivity(registerActivity);           
  151.         }
  152.        
  153.         // Forgot password Text is clicked
  154.         if( tvForgotPassword.getId() == v.getId() )
  155.         {
  156.             Intent resetPasswordActivity = new Intent(this, ResetPasswordActivity.class);
  157.             startActivity(resetPasswordActivity);          
  158.         }
  159.        
  160.         // Button Logout is clicked
  161.         if( bLogout.getId() == v.getId() )
  162.         {
  163.             me.logout();           
  164.         }
  165.        
  166.        
  167.     }
  168.  
  169.  
  170.     @Override
  171.     public boolean onOptionsItemSelected(MenuItem item) {
  172.        
  173.         switch(item.getItemId())
  174.         {
  175.             case android.R.id.home:
  176.                 finish();
  177.             break;
  178.         }
  179.        
  180.         return super.onOptionsItemSelected(item);
  181.        
  182.     }
  183.  
  184.     private void onSessionStateChange(Session session, SessionState state, Exception exception) {
  185.         if (state.isOpened()) {
  186.            
  187.             facebookSession = session;
  188.            
  189.             if( !me.isFacebookLoggedIn() )
  190.             {
  191.            
  192.                 final ProgressDialog dialog = ProgressDialog.show(this, "Laden", "Anmelden...");
  193.                 com.facebook.Request request =  com.facebook.Request.newMeRequest(facebookSession, new com.facebook.Request.GraphUserCallback() {
  194.                    
  195.                     @Override
  196.                     public void onCompleted(GraphUser user, Response response) {
  197.                         if( facebookSession == Session.getActiveSession() )
  198.                         {
  199.                             if( user != null )
  200.                             {
  201.                                 final String user_id = user.getId();
  202.                                 Log.i("custom", "facebook ID: " + user_id);
  203.                                 final String user_name = user.getName();
  204.                                
  205.  
  206.                                 List<NameValuePair> post = new ArrayList<NameValuePair>();
  207.                                 post.add(new BasicNameValuePair("fbID", user_id));
  208.                                 post.add(new BasicNameValuePair("userid", "" + me.getId()));
  209.                                 post.add(new BasicNameValuePair("fbName", user_name));
  210.                                
  211.                                 Downloader.download(AccountActivity.this, "fbLogin", post, new Downloader.DownloadListener() {
  212.                                    
  213.                                     @Override
  214.                                     public void completed(JSONObject json) throws JSONException {
  215.                                         if( json.getBoolean("succeeded") )
  216.                                         {
  217.                                             me.logInFacebook();
  218.                                         }
  219.                                         else
  220.                                         {
  221.                                             Toast.makeText(AccountActivity.this, "Fehlgeschlagen", Toast.LENGTH_SHORT).show();
  222.                                             facebookSession.close();                                               
  223.                                         }
  224.                                         dialog.dismiss();
  225.                                        
  226.                                     }
  227.                                 });
  228.                             }
  229.                         }
  230.                     }
  231.                 });
  232.                
  233.                 com.facebook.Request.executeBatchAsync(request);
  234.            
  235.             }
  236.        
  237.         } else if (state.isClosed()) {
  238.            
  239.             if( me.isFacebookLoggedIn() )
  240.             {
  241.                    
  242.                 final ProgressDialog dialog = ProgressDialog.show(this, "Laden", "Abmelden...");
  243.                
  244.                 List<NameValuePair> post = new ArrayList<NameValuePair>();
  245.                 post.add(new BasicNameValuePair("userid", ""+me.getId()));
  246.                
  247.                 Downloader.download(this, "fbLogout", post, new Downloader.DownloadListener() {
  248.                    
  249.                     @Override
  250.                     public void completed(JSONObject json) throws JSONException {
  251.                         dialog.dismiss();
  252.                         me.logOutFacebook();
  253.                        
  254.                     }
  255.                 });            
  256.             }
  257.            
  258.         }
  259.     }
  260.    
  261.     @Override
  262.     public void onResume() {
  263.         super.onResume();
  264.         Session session = Session.getActiveSession();
  265.         if (session != null &&
  266.                 (session.isOpened() || session.isClosed()) ) {
  267.              onSessionStateChange(session, session.getState(), null);
  268.          }
  269.  
  270.          uiHelper.onResume();
  271.     }
  272.  
  273.     @Override
  274.     public void onActivityResult(int requestCode, int resultCode, Intent data) {
  275.         super.onActivityResult(requestCode, resultCode, data);
  276.         uiHelper.onActivityResult(requestCode, resultCode, data);
  277.     }
  278.  
  279.     @Override
  280.     public void onPause() {
  281.         super.onPause();
  282.         uiHelper.onPause();
  283.     }
  284.  
  285.     @Override
  286.     public void onDestroy() {
  287.         super.onDestroy();
  288.         uiHelper.onDestroy();
  289.     }
  290.  
  291.     @Override
  292.     public void onSaveInstanceState(Bundle outState) {
  293.         super.onSaveInstanceState(outState);
  294.         uiHelper.onSaveInstanceState(outState);
  295.     }
  296.    
  297. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement