Android Open Source - Twitter-Android Login






From Project

Back to project page Twitter-Android.

License

The source code is released under:

Apache License

If you think the Android project Twitter-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package info.mahmoudhossam.twitter.Activities;
/* w  w  w . ja  v  a 2s.  c o  m*/
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;
import info.mahmoudhossam.twitter.R;
import info.mahmoudhossam.twitter.TwitterBackend;
import twitter4j.auth.AccessToken;

public class Login extends Activity {

  private static final int OAUTH_REQUEST = 1;
  private static final String PREFS = "prefs";
  private TwitterBackend backend;
  private SharedPreferences prefs;
  static String consumerKey;
  static String consumerSecret;
  private AccessToken token;
  
  private void initializeVariables() {
    consumerKey = getResources().getString(R.string.consumer_key);
    consumerSecret = getResources().getString(R.string.consumer_secret);
    backend = new TwitterBackend(consumerKey, consumerSecret);
    prefs = getSharedPreferences(PREFS, MODE_PRIVATE);
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        if (!checkNetwork()) {
            AlertDialog dialog = createDialog();
            dialog.show();
        } else {
            initializeVariables();
            if (tokenExists()) {
                getToken();
                backend.twitterInit(token);
                finish();
                startActivity(new Intent(getApplicationContext(), MainActivity.class));
            } else {
                login();
            }
        }

  }

    private boolean checkNetwork() {
        ConnectivityManager connMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = connMgr.getActiveNetworkInfo();
        if (info == null) {
            return false;
        } return info.isConnected();
    }

    private AlertDialog createDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("No connectivity");
        builder.setMessage("Cannot connect to twitter.");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
                finish();
            }
        });
        return builder.create();
    }

  private void login() {
    Intent intent = new Intent(getApplicationContext(), Browser.class);
    String url = backend.getAuthorizationURL();
    intent.putExtra("url", url);
    startActivityForResult(intent, OAUTH_REQUEST);
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == OAUTH_REQUEST && resultCode == RESULT_OK) {
      Uri url = Uri.parse(data.getExtras().getString("url"));
      String verifier = url.getQueryParameter("oauth_verifier");
      backend.setAccessToken(verifier);
      backend.twitterInit();
      saveToken();
      finish();
      startActivity(new Intent(getApplicationContext(), MainActivity.class));
    } else if (resultCode == RESULT_CANCELED) {
      Toast.makeText(this,
          "Cannot connect to twitter, app not authorized",
          Toast.LENGTH_SHORT).show();
    }
  }

  private boolean tokenExists() {
    return prefs.contains("oauth_token") && prefs.contains("oauth_secret");
  }

  private void saveToken() {
    token = backend.getAccessToken();
    if (token != null) {
      Editor editor = prefs.edit();
      editor.putString("oauth_token", token.getToken());
      editor.putString("oauth_secret", token.getTokenSecret());
      editor.commit();
    }
  }

  private void getToken() {
    String accessToken = prefs.getString("oauth_token", null);
    String secret = prefs.getString("oauth_secret", null);
    if (accessToken != null && secret != null) {
      token = new AccessToken(accessToken, secret);
    }
    
  }

}




Java Source Code List

info.mahmoudhossam.twitter.MyEndlessAdapter.java
info.mahmoudhossam.twitter.TweetAdapter.java
info.mahmoudhossam.twitter.TwitterBackend.java
info.mahmoudhossam.twitter.Activities.Browser.java
info.mahmoudhossam.twitter.Activities.Login.java
info.mahmoudhossam.twitter.Activities.MainActivity.java
info.mahmoudhossam.twitter.Activities.PostStatus.java
info.mahmoudhossam.twitter.Activities.Tweet.java
info.mahmoudhossam.twitter.Fragments.HomeTweets.java
info.mahmoudhossam.twitter.Fragments.Mentions.java
info.mahmoudhossam.twitter.Fragments.TweetFragment.java
info.mahmoudhossam.twitter.Fragments.UserTweets.java