Android Open Source - android-oauth-linkedin-example Profile Activity






From Project

Back to project page android-oauth-linkedin-example.

License

The source code is released under:

MIT License

If you think the Android project android-oauth-linkedin-example 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 co.uk.manifesto.linkedinauthexample;
/*  ww w .  j  a  v  a 2 s. c  o m*/
import java.io.IOException;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class ProfileActivity extends Activity {

  private static final String PROFILE_URL = "https://api.linkedin.com/v1/people/~";
  private static final String OAUTH_ACCESS_TOKEN_PARAM ="oauth2_access_token";
  private static final String QUESTION_MARK = "?";
  private static final String EQUALS = "=";
  
  private TextView welcomeText;
  private ProgressDialog pd;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile);
    welcomeText = (TextView) findViewById(R.id.activity_profile_welcome_text);
    
    //Request basic profile of the user
    SharedPreferences preferences = this.getSharedPreferences("user_info", 0);
    String accessToken = preferences.getString("accessToken", null);
    if(accessToken!=null){
      String profileUrl = getProfileUrl(accessToken);
      new GetProfileRequestAsyncTask().execute(profileUrl);
    }
  }
  
  private static final String getProfileUrl(String accessToken){
    return PROFILE_URL
        +QUESTION_MARK
        +OAUTH_ACCESS_TOKEN_PARAM+EQUALS+accessToken;
  }
  
  private class GetProfileRequestAsyncTask extends AsyncTask<String, Void, JSONObject>{

    @Override
    protected void onPreExecute(){
      pd = ProgressDialog.show(ProfileActivity.this, "", ProfileActivity.this.getString(R.string.loading),true);
    }
    
    @Override
    protected JSONObject doInBackground(String... urls) {
      if(urls.length>0){
        String url = urls[0];
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(url);
        httpget.setHeader("x-li-format", "json");
        try{
          HttpResponse response = httpClient.execute(httpget);
          if(response!=null){
            //If status is OK 200
            if(response.getStatusLine().getStatusCode()==200){
              String result = EntityUtils.toString(response.getEntity());
              //Convert the string result to a JSON Object
              return new JSONObject(result);
            }
          }
        }catch(IOException e){
          Log.e("Authorize","Error Http response "+e.getLocalizedMessage());  
        } catch (JSONException e) {
          Log.e("Authorize","Error Http response "+e.getLocalizedMessage());  
        }
      }
      return null;
    }
    
    @Override
    protected void onPostExecute(JSONObject data){
      if(pd!=null && pd.isShowing()){
        pd.dismiss();
      }
      if(data!=null){
        
        try {
          String welcomeTextString = String.format(getString(R.string.welcome_text),data.getString("firstName"),data.getString("lastName"),data.getString("headline"));
          welcomeText.setText(welcomeTextString);
        } catch (JSONException e) {
          Log.e("Authorize","Error Parsing json "+e.getLocalizedMessage());  
        }
      }
    }
    
    
  };
}




Java Source Code List

co.uk.manifesto.linkedinauthexample.MainActivity.java
co.uk.manifesto.linkedinauthexample.ProfileActivity.java