package com.common.example;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
import com.common.utils.ContactActivity;
import com.common.utils.ProfileActivity;
import com.common.utils.R;
import com.common.utils.social.DialogListener;
import com.common.utils.social.LinkedInActivity;
import com.common.utils.social.SocialAuthAdapter;
import com.common.utils.social.SocialAuthError;
import com.common.utils.social.SocialAuthListener;
import org.brickred.socialauth.Contact;
import org.brickred.socialauth.Profile;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
import java.util.List;
public class CommonActivity extends Activity implements OnClickListener {
private TextView text1;
private TextView text2;
private TextView text3;
private TextView text4;
private TextView text5;
private TextView text6;
private TextView text7;
private TextView text8;
private SocialAuthAdapter adapter;
private int provider = 0;
private ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_common);
adapter = new SocialAuthAdapter(new ResponseListener());
pDialog = new ProgressDialog(this);
pDialog.setMessage("Please Wait");
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
text3 = (TextView) findViewById(R.id.text3);
text4 = (TextView) findViewById(R.id.text4);
text5 = (TextView) findViewById(R.id.text5);
text6 = (TextView) findViewById(R.id.text6);
text7 = (TextView) findViewById(R.id.text7);
text8 = (TextView) findViewById(R.id.text8);
text1.setOnClickListener(this);
text2.setOnClickListener(this);
text3.setOnClickListener(this);
text4.setOnClickListener(this);
text5.setOnClickListener(this);
text6.setOnClickListener(this);
text7.setOnClickListener(this);
text8.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == text1) {
Intent intent = new Intent(this, LinkedInActivity.class);
intent.putExtra("APIKEY", "bh82t52rdos6");
intent.putExtra("APISECRET", "zQ1LLrGbhDZ36fH8");
startActivityForResult(intent, 123);
// provider = 1;
// pDialog.show();
// adapter.authorize(CommonActivity.this, SocialAuthAdapter.Provider.LINKEDIN);
} else if (v == text2) {
text2.setVisibility(View.GONE);
adapter.signOut(CommonActivity.this, SocialAuthAdapter.Provider.LINKEDIN.toString());
} else if (v == text3) {
provider = 2;
pDialog.show();
adapter.authorize(CommonActivity.this, SocialAuthAdapter.Provider.FACEBOOK);
} else if (v == text4) {
text4.setVisibility(View.GONE);
adapter.signOut(CommonActivity.this, SocialAuthAdapter.Provider.FACEBOOK.toString());
} else if (v == text5) {
provider = 3;
pDialog.show();
adapter.authorize(CommonActivity.this, SocialAuthAdapter.Provider.TWITTER);
} else if (v == text6) {
text6.setVisibility(View.GONE);
adapter.signOut(CommonActivity.this, SocialAuthAdapter.Provider.TWITTER.toString());
} else if (v == text7) {
provider = 4;
pDialog.show();
adapter.authorize(CommonActivity.this, SocialAuthAdapter.Provider.GOOGLEPLUS);
} else if (v == text8) {
text8.setVisibility(View.GONE);
adapter.signOut(CommonActivity.this, SocialAuthAdapter.Provider.GOOGLEPLUS.toString());
}
}
@SuppressWarnings("UnusedAssignment")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 101) {
try {
JSONObject personJson = new JSONObject(data.getStringExtra("RESPONSE"));
Toast.makeText(CommonActivity.this, "LinkedIn Connected", Toast.LENGTH_SHORT).show();
// text4.setText(" Email id : " + personJson.getString("emailAddress") + " \n Name : " + personJson.getString("firstName") + " " + personJson.getString("lastName") + " \n id : " + personJson.getString("id"));
// Get Skills
JSONObject skillsJson = personJson.getJSONObject("skills");
JSONArray skillsArray = skillsJson.getJSONArray("values");
String personSkills;
StringBuilder sbSkills = new StringBuilder();
if (skillsArray != null && skillsArray.length() > 0) {
for (int i = 0; i < skillsArray.length(); i++) {
sbSkills.append(skillsArray.getJSONObject(i).getJSONObject("skill").getString("name")).append(",");
}
personSkills = sbSkills.toString();
if (personSkills.length() > 0
&& personSkills.charAt(personSkills.length() - 1) == ',') {
personSkills = personSkills.substring(0, personSkills.length() - 1);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
// To get status of message after authentication
private final class MessageListener implements SocialAuthListener<Integer> {
@Override
public void onExecute(String provider, Integer t) {
if (t == 200 || t == 201 || t == 204)
Toast.makeText(CommonActivity.this, "Message posted on" + provider, Toast.LENGTH_LONG).show();
else
Toast.makeText(CommonActivity.this, "Message not posted" + provider, Toast.LENGTH_LONG).show();
}
@Override
public void onError(SocialAuthError e) {
e.getInnerException().printStackTrace();
}
}
private final class ResponseListener implements DialogListener {
@Override
public void onComplete(Bundle values) {
Log.d("Custom-UI", "Successful");
pDialog.dismiss();
switch (provider) {
// case 1:
// Toast.makeText(CommonActivity.this, "LinkedIn Connected", Toast.LENGTH_SHORT).show();
// text2.setVisibility(View.VISIBLE);
// break;
case 2:
Toast.makeText(CommonActivity.this, "Facebook Connected", Toast.LENGTH_SHORT).show();
text4.setVisibility(View.VISIBLE);
break;
case 3:
Toast.makeText(CommonActivity.this, "Twitter Connected", Toast.LENGTH_SHORT).show();
text6.setVisibility(View.VISIBLE);
break;
case 4:
Toast.makeText(CommonActivity.this, "Google+ Connected", Toast.LENGTH_SHORT).show();
text8.setVisibility(View.VISIBLE);
break;
}
// Get Profile
// adapter.getUserProfileAsync(new ProfileDataListener());
// Get Contacts
// adapter.getContactListAsync(new ContactDataListener());
// Share Status
// adapter.updateStatus("Hi Test Status Update @" + Calendar.getInstance().getTimeInMillis(), new MessageListener(), false);
// Share Image
// try {
// Bitmap bitmap = Common.drawableTobitmap(CommonActivity.this, R.drawable.facebook);
// adapter.uploadImageAsync("Image Message", "icon.png", bitmap, 0, new UploadImageListener());
// } catch (Exception e) {
// e.printStackTrace();
// }
}
@Override
public void onError(SocialAuthError error) {
Log.d("Custom-UI", "Error");
pDialog.dismiss();
error.printStackTrace();
}
@Override
public void onCancel() {
Log.d("Custom-UI", "Cancelled");
pDialog.dismiss();
}
@Override
public void onBack() {
pDialog.dismiss();
Log.d("Custom-UI", "Dialog Closed by pressing Back Key");
}
}
private final class ContactDataListener implements SocialAuthListener<List<Contact>> {
@Override
public void onExecute(String provider, List<Contact> t) {
Log.d("Custom-UI", "Receiving Data");
// mDialog.dismiss();
if (t != null && t.size() > 0) {
Intent intent = new Intent(CommonActivity.this, ContactActivity.class);
intent.putExtra("provider", provider);
intent.putExtra("contact", (Serializable) t);
startActivity(intent);
} else {
Log.d("Custom-UI", "Contact List Empty");
}
}
@Override
public void onError(SocialAuthError e) {
}
}
// To receive the profile response after authentication
private final class ProfileDataListener implements SocialAuthListener<Profile> {
@Override
public void onExecute(String provider, Profile t) {
Log.d("Custom-UI", "Receiving Data");
// mDialog.dismiss();
Intent intent = new Intent(CommonActivity.this, ProfileActivity.class);
intent.putExtra("provider", provider);
intent.putExtra("profile", t);
startActivity(intent);
}
@Override
public void onError(SocialAuthError e) {
}
}
// To get status of image upload after authentication
private final class UploadImageListener implements SocialAuthListener<Integer> {
@Override
public void onExecute(String provider, Integer t) {
// mDialog.dismiss();
Log.d("Custom-UI", String.valueOf(t));
if (t == 200 || t == 201 || t == 204)
Toast.makeText(CommonActivity.this, "Image Uploaded", Toast.LENGTH_SHORT).show();
else
Toast.makeText(CommonActivity.this, "Image not Uploaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SocialAuthError e) {
}
}
}